1# By default, we're invoked without arguments. This is how the cron 2# job does it, and means we should generate output and mail it to 3# the default mail alias. 4# 5# Invoking with arguments is for testing: It allows running through 6# the full logic and output generation, without spamming the alert 7# aliases. 8 9OPTIONS="" 10if [ $# -eq 0 ]; then 11 # TODO(jrbarnette): Really, this feels like a hack. The cron job 12 # that invokes the inventory scripts is installed and enabled on 13 # both a primary and backup server, meaning the e-mail will be 14 # generated twice. We don't want that, so unless this is the 15 # primary server, quash this job. 16 if ! cli/atest server list $(hostname) 2>&1 | 17 grep -q '^Status *: *primary'; then 18 exit 0 19 fi 20 21 POOL_INTEREST=( 22 chromeos-infra-eng@grotations.appspotmail.com 23 chromeos-build-alerts+dut-pool@google.com 24 ) 25 MODEL_INTEREST=( 26 englab-sys-cros@google.com 27 chromeos-build-alerts+dut-pool@google.com 28 ) 29else 30 MODEL_INTEREST=( "$@" ) 31 POOL_INTEREST=( "$@" ) 32 OPTIONS=--debug 33fi 34 35# Options to be used for different script invocations. Inventory 36# runs are relatively expensive, so operations that happen rarely 37# also bundle operations that happen more frequently. 38# + REPAIR_LOOP_DETECT happens with every run. It looks for 39# and reports DUTs that do no work other than to fail, then repair 40# successfully. 41# + MODEL_NOTIFY happens less often. This adds a full model 42# inventory count to REPAIR_LOOP_DETECT. 43# + POOL_NOTIFY happens least often. It adds per-pool inventory 44# counts, as well as individual DUT repair recommendations to 45# MODEL_NOTIFY. 46 47REPAIR_LOOP_DETECT=( --repair-loops ) 48 49MODEL_NOTIFY=( 50 "${REPAIR_LOOP_DETECT[@]}" 51 --model-notify $(echo "${MODEL_INTEREST[@]}" | sed 's/ /,/g') 52) 53 54POOL_NOTIFY=( 55 "${MODEL_NOTIFY[@]}" 56 --recommend=40 57 --pool-notify $(echo "${POOL_INTEREST[@]}" | sed 's/ /,/g') 58) 59