Home | History | Annotate | Download | only in contrib
      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