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-test-monitors@google.com 23 ) 24 MODEL_INTEREST=( 25 englab-sys-cros@google.com 26 chromeos-test-monitors@google.com 27 ) 28else 29 MODEL_INTEREST=( "$@" ) 30 POOL_INTEREST=( "$@" ) 31 OPTIONS=--debug 32fi 33 34# Options to be used for different script invocations. Inventory 35# runs are relatively expensive, so operations that happen rarely 36# also bundle operations that happen more frequently. 37# + UNTESTABLE_DETECT happens with every run. It looks for 38# and reports DUTs that for never run tests even though their 39# status indicates that they should. 40# + MODEL_NOTIFY happens less often. This adds a full model 41# inventory count to REPAIR_LOOP_DETECT. 42# + POOL_NOTIFY happens least often. It adds per-pool inventory 43# counts, as well as individual DUT repair recommendations to 44# MODEL_NOTIFY. 45 46UNTESTABLE_DETECT=( --report-untestable ) 47 48MODEL_NOTIFY=( 49 "${UNTESTABLE_DETECT[@]}" 50 --model-notify $(echo "${MODEL_INTEREST[@]}" | sed 's/ /,/g') 51) 52 53POOL_NOTIFY=( 54 "${MODEL_NOTIFY[@]}" 55 --recommend=40 56 --pool-notify $(echo "${POOL_INTEREST[@]}" | sed 's/ /,/g') 57) 58