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