# 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-test-monitors@google.com
  )
  MODEL_INTEREST=(
    englab-sys-cros@google.com
    chromeos-test-monitors@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.
#   + UNTESTABLE_DETECT happens with every run.  It looks for
#     and reports DUTs that for never run tests even though their
#     status indicates that they should.
#   + 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.

UNTESTABLE_DETECT=( --report-untestable )

MODEL_NOTIFY=(
  "${UNTESTABLE_DETECT[@]}"
  --model-notify $(echo "${MODEL_INTEREST[@]}" | sed 's/ /,/g')
)

POOL_NOTIFY=(
  "${MODEL_NOTIFY[@]}"
  --recommend=40
  --pool-notify $(echo "${POOL_INTEREST[@]}" | sed 's/ /,/g')
)
