• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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