blob: 5b7a7da5e171c6f2ad7d30be6b0b643f9228c580 [file] [log] [blame]
#!/bin/bash
# Copyright 2015 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
testing_bots() {
for i in {1..5}; do
BOTS[i]="cros-testing$i-c2"
done
}
prod_bots() {
local bot_ids=( {1..50} 101 102 )
for i in ${bot_ids[@]}; do
BOTS[i]="cros$i-c2"
done
}
# Change this to work on different BOT groups.
# declare -a BOTS
# testing_bots
# **********YOU ARE RELAUNCHING PROD BOTS! REALLY! *************
# prod_bots
ssh_command() {
local -r instance_id=$1
shift
gcloud compute ssh --project chromeos-bot --zone us-east1-a -q \
"${instance_id}" --ssh-flag=-q --command "$*"
}
remote_uname() {
ssh_command "$1" echo $(hostname && uname -a)
}
relaunch_instance() {
local -r ip=$(gcloud compute instances describe --project chromeos-bot --zone us-east1-a $1 | awk '{if ($1 == "natIP:") print $2}')
../../compute/cros_compute instances delete -q --instance $1
../../compute/cros_compute instances create --instance $1 --address "${ip}" --config cros-bot
}
print_image_tag() {
image=$(gcloud compute instances describe --project chromeos-bot --zone us-east1-a \
"$i" | grep value)
echo $i: $image
}
for_all_bots() {
for i in "${BOTS[@]}"; do
echo "parallel: $* $i"
$* $i &
done
echo "Waiting for parallel processes to finish"
wait
echo "Done!"
}
BOTS=( "$@" )
for_all_bots relaunch_instance
echo
echo
echo "Please verify that all instances were launched with the new image:"
for_all_bots print_image_tag