1d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette#!/bin/bash
2d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette
3d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# Force a verify job for any host that hasn't seen activity in
4d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# the past day.
5d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette#
6d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# Various scripts/cron jobs look for DUTs that aren't working.  To
7d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# be conservative, those scripts assume that a DUT that hasn't run
8d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# any jobs within a reasonable time interval isn't working, since
9d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# some of the ways a DUT may be unavailable manifest as inactivity.
10d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette#
11d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# In some cases, we'd like to be more certain as to a DUT's status.
12d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# This script goes through the entire AFE hosts table, and
13d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# identifies unlocked hosts that would otherwise be flagged as "not
14d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# working due to lack of activity", and forces a Verify job.
15d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette#
16d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# Locked hosts are skipped because they can't run jobs, and because
17d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# we want them to show up as suspicious anyway.
18d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette
19d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette
20d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnettecd $(dirname $0)/..
21d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette
22d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# Gather all the hosts under supervision of the SKC fire team.
23d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# Basically, that's any host in the suites, bvt, cq, or pfq pool.
24d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette
25d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard BarnetteGET_HOSTS='
26d0631defd4c8e759d68dbab9f80e0fa24b25e0f4Xuhui Peng  /pool:(suites|bvt|cq|continuous|cts|arc-presubmit|crosperf|performance)/ {
27d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette    print $1
28d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette  }
29d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette'
30d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard BarnetteHOSTS=( $(cli/atest host list --unlocked | awk "$GET_HOSTS") )
31d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette
32d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette
33d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# Go through the gathered hosts, and use dut_status to find the
34d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# ones with unknown state (anything without a positive "OK" or
35d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# "NO" diagnosis).
36d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette
37d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard BarnetteNEED_VERIFY='
38d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette  /OK/ || /NO/ { next }
39d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette  /^chromeos/ {
40d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette    print $1
41d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette  }
42d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette'
43b4034342fda3ecee23ba47549e7ee9f7b2410576J. Richard BarnetteVERIFY=( $(site_utils/dut_status.py -d 19 "${HOSTS[@]}" | awk "$NEED_VERIFY") )
44d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette
45d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnette# Reverify the unknown hosts.
46d24b2fd7be16383236a214ee185ac8d0a9575d20J. Richard Barnettecontrib/reverify_hosts "${VERIFY[@]}"
47