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 9 OPTIONS="" 10 if [ $# -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 (a] google.com 23 ) 24 MODEL_INTEREST=( 25 englab-sys-cros (a] google.com 26 chromeos-test-monitors (a] google.com 27 ) 28 else 29 MODEL_INTEREST=( "$@" ) 30 POOL_INTEREST=( "$@" ) 31 OPTIONS=--debug 32 fi 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 46 UNTESTABLE_DETECT=( --report-untestable ) 47 48 MODEL_NOTIFY=( 49 "${UNTESTABLE_DETECT[@]}" 50 --model-notify $(echo "${MODEL_INTEREST[@]}" | sed 's/ /,/g') 51 ) 52 53 POOL_NOTIFY=( 54 "${MODEL_NOTIFY[@]}" 55 --recommend=40 56 --pool-notify $(echo "${POOL_INTEREST[@]}" | sed 's/ /,/g') 57 ) 58