History log of /external/autotest/site_utils/status_history.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2c9b113db51cfdb59293e688d279b9717805172b 10-Jul-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Change DUT status reporting to detect unused hosts.

This adds new handling to status_history.HostJobHistory objects to
return a status of UNUSED when a host is found to be working but
unused in the time range of interest. This will cause DUTs that
remain locked for an extended period of time to be treated as "not
working" for most purposes.

BUG=chromium:487428
TEST=run `dut-status` against a variety of DUTs.

Change-Id: Ibda0c0ec335750648bffb8a9fe28634cfb1cc8a0
Reviewed-on: https://chromium-review.googlesource.com/284861
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/status_history.py
8abbfd638af09a39bb65fc28e819fc46199a8281 23-Jun-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Add dut-status --diagnosis.

This adds a new --diagnosis option to the dut-status command that
automatically displays all logs in a sequence leading to a DUT
failure.

This change also plumbs in a new RPC call needed to support the
feature.

BUG=chromium:492662
TEST=Run the command with the new option using a local RPC server

Change-Id: Ibb7431199bd0f8bbfe06fb8fffcb59512b01ab5b
Reviewed-on: https://chromium-review.googlesource.com/281205
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/site_utils/status_history.py
6948ed3288dc7a363671e711f6a68c594d589153 06-May-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] In lab inventory, ignore DUTs with no board.

From time to time (twice so far), we've had cases of hosts being
added to the database with a pool: label, but no board: label.
That caused failures when gathering inventory, because
status_history.HostJobHistory assumed (without particular
justification) that every board has board: and pool: labels,
and nowhere was there a check to deal with it.

This changes the code so that the host_board and host_pool
properties in HostJobHistory will return `None` when there's no
appropriate label, and changes lab inventory gathering to skip hosts
with no board label.

BUG=chromium:480026
TEST=Unit tests

Change-Id: Ic1065a34ba0e4a2d2019bf8ea89507b277499af6
Reviewed-on: https://chromium-review.googlesource.com/269609
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Mungyung Ryu <mkryu@google.com>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/site_utils/status_history.py
8dbd6d30d9a874a000778db9db3e3afef7baa1e8 01-May-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Convert status_history to use get_host_status_task().

This converts the status_history module to use the new
'get_host_status_task' RPC function, as the previous API was flawed.

BUG=chromium:483485
TEST=test against local instance pointed at production database

Change-Id: Ic15bcfb49e8b0f5d221e38876f4be65bc83f0947
Reviewed-on: https://chromium-review.googlesource.com/268774
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Mungyung Ryu <mkryu@google.com>
Reviewed-by: Dan Shi <dshi@chromium.org>
/external/autotest/site_utils/status_history.py
3d0590adb50cd0af0c53007c64eeaa6cddfbf5e9 29-Apr-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] In status_history, convert some methods to properties.

This converts HostJobHistory.get_host_board() and get_host_pool()
to @property methods. Also add a new host property.

BUG=None
TEST=run unit tests

Change-Id: I42f8d0792ee7f83655581225584e86ea3065cd08
Reviewed-on: https://chromium-review.googlesource.com/268350
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/site_utils/status_history.py
bc9a79521993c4b475bedfa4ac4478d6b59f7be9 17-Apr-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Convert dut_status to the new get_status_task RPC.

This change converts the dut_status command and other clients of the
status_history module to use the new get_status_task() RPC call.
This call offers improved accuracy of diagnosis, and is
significantly faster than the previous method.

This change can't be committed until the previous change enabling
the RPC call is pushed to prod.

BUG=hromium:463632
TEST=Run dut_status using a local instance pointed at the prod database

Change-Id: I0a686b68498938a2cad747ff1f82152d3ea6d48a
Reviewed-on: https://chromium-review.googlesource.com/266096
Reviewed-by: Mungyung Ryu <mkryu@google.com>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/site_utils/status_history.py
39255faa9eebb1b64da7b21fc5874414ad6bad83 15-Apr-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Create a new get_status_task RPC to improve dut_status.

Previously, status was determined by fetching all jobs in a given
time range, and then searching back through the returned list for
a job that indicated host status. This had two drawbacks:
* If the job indicating status was earlier than the start time
of the query, no status could be determined.
* The extra data returned in the query slowed it down.

This adds a new RPC that finds the task through a single database
query searching for the specific necessary condition. This should
largely eliminate the '--' status, and is notably faster (possibly 4
times faster, or more).

This also changes the rules for what constitues a diagnostic job or
task, by changing the diagnosis associated with test jobs. This
is done because
* It makes determining status possible with a query to a single
table.
* The experience has been that test jobs don't indicate a
diagnosis anyway.

This is the first of two parts; this change creates the server
side of the new RPC. This change must be pushed to prod before
the follow-on change for the client side.

BUG=chromium:463632
TEST=Run dut_status using a local instance pointed at the prod database

Change-Id: Ifc61387f0cdc46ceb32062663c6a73c5d4bcfb4f
Reviewed-on: https://chromium-review.googlesource.com/265783
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/site_utils/status_history.py
9f10c9fca4bfab70483d7212937c271f4e934fe3 14-Apr-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Convert dut-status to get_host_special_tasks().

This is stage two of a three stage process to create a new
get_host_special_tasks() RPC call. This change converts dut-status
to use the new API call, while maintaining compatibility with old
versions of the command.

This change can't be committed until the previous change is in prod.

BUG=None
TEST=Test dut-status on a local instance using the prod database

Change-Id: Icda500a83ffa1a98a9bf8d4b4fc5a0302d7673f6
Reviewed-on: https://chromium-review.googlesource.com/265574
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/site_utils/status_history.py
96db349a945e8a595567223840271f1e6a5412b5 28-Mar-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Create lab_inventory for inventory cron jobs

This converts the core of the run-board-inventory and
run-pool-inventory scripts to python. The new scripts produce
output that is largely similar, but not identical to the old
bash scripts.

The scripts provide some performance advantage, and some flexibilty:
The bash scripts needed >75 minutes to generate board inventory; the
new python script can generate pool and board inventories at the
same time, and finishes in ~30 minutes.

BUG=None
TEST=unit tests, plus full command-line against cautotest

Change-Id: Id4f5443d7efb8b538bfe4453256201cce2f81bcf
Reviewed-on: https://chromium-review.googlesource.com/263594
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/site_utils/status_history.py
fa27f5ba41ac278d0fc52b2e5037334fee931a20 24-Mar-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Separate portions of dut_status.py into status_history.py

This is mere refactoring to separate out the helper classes in
dut_status.py into a new module, so that they can be reused.

BUG=None
TEST=Run dut_status.py, see it work

Change-Id: Ibd9a1f12f0f99bf110d576df3e0b8e06253eaec7
Reviewed-on: https://chromium-review.googlesource.com/262066
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Mungyung Ryu <mkryu@google.com>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/site_utils/status_history.py