blob: 67d1887ae5bf4517b48316385eb29e5e0e95a771 [file] [log] [blame]
# By default, we're invoked without arguments. This is how the cron
# job does it, and means we should generate output and mail it to
# the default mail alias.
#
# Invoking with arguments is for testing: It allows running through
# the full logic and output generation, without spamming the alert
# aliases.
OPTIONS=""
if [ $# -eq 0 ]; then
# TODO(jrbarnette): Really, this feels like a hack. The cron job
# that invokes the inventory scripts is installed and enabled on
# both a primary and backup server, meaning the e-mail will be
# generated twice. We don't want that, so unless this is the
# primary server, quash this job.
if ! cli/atest server list $(hostname) 2>&1 |
grep -q '^Status *: *primary'; then
exit 0
fi
POOL_INTEREST=(
chromeos-infra-eng@grotations.appspotmail.com
chromeos-build-alerts+dut-pool@google.com
)
MODEL_INTEREST=(
englab-sys-cros@google.com
chromeos-build-alerts+dut-pool@google.com
)
else
MODEL_INTEREST=( "$@" )
POOL_INTEREST=( "$@" )
OPTIONS=--debug
fi
# Options to be used for different script invocations. Inventory
# runs are relatively expensive, so operations that happen rarely
# also bundle operations that happen more frequently.
# + REPAIR_LOOP_DETECT happens with every run. It looks for
# and reports DUTs that do no work other than to fail, then repair
# successfully.
# + MODEL_NOTIFY happens less often. This adds a full model
# inventory count to REPAIR_LOOP_DETECT.
# + POOL_NOTIFY happens least often. It adds per-pool inventory
# counts, as well as individual DUT repair recommendations to
# MODEL_NOTIFY.
REPAIR_LOOP_DETECT=( --repair-loops )
MODEL_NOTIFY=(
"${REPAIR_LOOP_DETECT[@]}"
--model-notify $(echo "${MODEL_INTEREST[@]}" | sed 's/ /,/g')
)
POOL_NOTIFY=(
"${MODEL_NOTIFY[@]}"
--recommend=40
--pool-notify $(echo "${POOL_INTEREST[@]}" | sed 's/ /,/g')
)