History log of /external/autotest/server/hosts/servo_host.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c2d99cf743c86fe0519f155ffbcad54df31bd742 18-Nov-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Remove the concept of 'protection level' from repair.

In original Autotest, hosts have a 'protection level' that is
passed to repair jobs in order to limit the specific kinds of repair
that can be done. For the CrOS lab, this concept is largely not
useful; we want a uniform repair procedure determined by the kind of
DUT being repaired, not by a database configuration.

This removes the concept of 'protection level' from the repair flow;
repair steps are now determined only by the class of Host that
handles the operation. The protection level remains in the
database, but the only meaningful value is 'Do not verify'. That
setting on a host will prevent it from running any verify, cleanup,
or repair tasks. This is done for the sake of non-DUT hosts that
exist in the CrOS lab AFE database.

BUG=None
TEST=unit tests, and run repair in a local instance

Change-Id: I1d512eb2b1fe604b70fec00b3a290f5f6b9d9beb
Reviewed-on: https://chromium-review.googlesource.com/312979
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
0880a67a92dca8e6b455525bc1548ff931c9b313 03-Nov-2015 Tom Wai-Hong Tam <waihong@chromium.org> [autotest] Skip reboot to the default label on servo repair flow

The reboot method supports to reboot to a specific label (a label
here means a specific kernel). By default, it reboots to the latest
label. In Chrome OS world, we don't use this mechanism and should
skip it totally.

Otherwise, an error happens, complaining permission denied as the
tool for this reboot mechanism is placed to /tmp and Chrome OS
disables /tmp exec permission.

BUG=chromium:534882
TEST=Ran the following Python code for a DUT needs servo repair.
import common
from autotest_lib.server import hosts
host = hosts.create_host(DUT_HOSTNAME, servo_args={})

Change-Id: Ie918062c3fe59f590e7f5b677148f3cac9f4031e
Reviewed-on: https://chromium-review.googlesource.com/310553
Commit-Ready: Wai-Hong Tam <waihong@chromium.org>
Tested-by: Wai-Hong Tam <waihong@chromium.org>
Reviewed-by: danny chan <dchan@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
9af1963458b7ba2cb59c401e055aecb0b29bfbbc 25-Sep-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Add SSHHost.run_background()

A common idiom for certain commands is to say "start this command in
the background, but don't wait for completion". This occurs most
commonly with commands such as reboot that will cause a temporary
loss of network connectivity. Because of certain obscure sshd
behaviors, the idiom is more complicated than a mere '&' in the
command.

This change adds SSHHost.run_background() to provide a method to
implement the idiom correctly, consistently, and understandably.
This also changes all instances of the idiom to use the method.

BUG=None
TEST=test_that platform_BootPerfServer

Change-Id: I0edaf36dc10ac67541aa55cf8cc4c6542878fb79
Reviewed-on: https://chromium-review.googlesource.com/302417
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/server/hosts/servo_host.py
b795b5aac05f39a5f429afee2adc5d72a509ea8e 24-Sep-2015 Dan Shi <dshi@chromium.org> [autotest] Add a check in servo_host to skip image update if running in moblab

BUG=None
TEST=unittest

Change-Id: Ie5dc255a58fe9fdda34fcb2708428a15fe7bdeb0
Reviewed-on: https://chromium-review.googlesource.com/302233
Commit-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
/external/autotest/server/hosts/servo_host.py
9046635ba5a49e552bcb425fb33a497c07cd3d49 23-Sep-2015 Dan Shi <dshi@chromium.org> [autotest] Confirm servo is properly initialized in provision_FirmwareUpdate.

If a provision job updates both CrOS and FW, the CrosHost object created in
provision special task has required_by_test set to False, thus servo is not
verified. That leads to the provision_FirmwareUpdate to fail.

This change add a check (confirm_servo) in provision_FirmwareUpdate to make
sure servo object is created with required_by_test set to True, which
guarantees the servo is initialized and verified.

BUG=chromium:520656
TEST=local run and unittest

Change-Id: Ia4b86fa36b914efa2beec768099de91e5d3dcef8
Reviewed-on: https://chromium-review.googlesource.com/301296
Commit-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
/external/autotest/server/hosts/servo_host.py
5401d2ed7438310a761d98c41eb8de3591ff523a 11-Sep-2015 Dan Shi <dshi@chromium.org> [autotest] Fix a bug in deciding if servo is required.

Autotest running in moblab changes servo_args when calling create_servo_host.
This breaks the logic to determine if servo is required by test. Thus, verify
will fail in moblab is servod is not running.

This change checks if servo_args is None before it's changed for moblab.

BUG=None
TEST=moblab test

Change-Id: I92f1e4242590cfd78b9c66021f3d041cb52a0cdf
Reviewed-on: https://chromium-review.googlesource.com/299002
Commit-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
/external/autotest/server/hosts/servo_host.py
961c0c5e24ef3ab5061998fd89dc5f7cacc9d369 10-Sep-2015 Dan Shi <dshi@chromium.org> Revert "[autotest] Fix a bug in deciding if servo is required."

This reverts commit 1e1d0b9ad61baedf714e2cab0232900c06be06fd.

This change breaks the moblab verify task and test_that run when servo args are not passed in.

Change-Id: I7fc6ef6bb772bde9982bf4a269867417f53be109
Reviewed-on: https://chromium-review.googlesource.com/299030
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
1e1d0b9ad61baedf714e2cab0232900c06be06fd 10-Sep-2015 Dan Shi <dshi@chromium.org> [autotest] Fix a bug in deciding if servo is required.

Autotest running in moblab changes servo_args when calling create_servo_host.
This breaks the logic to determine if servo is required by test. Thus, verify
will fail in moblab is servod is not running.

BUG=None
TEST=moblab test

Change-Id: Ica17d893b4b13a13fe79aff2aff6b6de318ac042
Reviewed-on: https://chromium-review.googlesource.com/298609
Commit-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
/external/autotest/server/hosts/servo_host.py
3b2adf6aaee44ebf74750327f469f6438dfa54f1 03-Sep-2015 Dan Shi <dshi@chromium.org> [autotest] Convert localhost to host IP if test runs inside container.

FAFT tests in moblab uses servo_host from host attributes. The value could be
set to localhost. When the test runs inside container, autoserv failed to
make servo call as the servo is not localhost for container, rather, it should
be the IP of the moblab. This CL adds such necessary conversion.

BUG=None
TEST=local moblab

Change-Id: I8ea614209a82ae9c8cca1fe927c8c96de4c00879
Reviewed-on: https://chromium-review.googlesource.com/296836
Commit-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
2261286f3d5f7bf4c631dee3ae7bb46d2a7698cd 20-Aug-2015 Cheng-Yi Chiang <cychiang@chromium.org> [autotest] Fix logic of host name for servo_host and chameleon_host

When an IP address is passed in as CrosHost host name, it can not be used
to make Chameleon or Servo host name. E.g, 192-chameleon.168.1.2 makes
no sense.
Also, in this case, we can not check if it is in lab becase we use
<first part of hostname>.cros.corp.google.com to check if it is in lab.
So we just assume it is not in lab.

BUG=chromium:521443
TEST=run audio_AudioBasicHeadphone test using IP address as Cros host
name, and see the test will not stuck at checking if servo host and
chameleon host are in lab.

Change-Id: I3956eec2631f32f017aa31f23f598c64abf3f5ba
Reviewed-on: https://chromium-review.googlesource.com/295020
Reviewed-by: Hung-ying Tyan <tyanh@chromium.org>
Commit-Queue: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>
/external/autotest/server/hosts/servo_host.py
e0b08e6170b57f90262726eb7f04e059cb47419c 11-Aug-2015 Hsinyu Chao <hychao@chromium.org> Revert "autotest: move constants to common_lib"

This reverts commit a4ac7a8f67d61f8a616724f9426dbc0fce71ce69.

BUG=chromium:519353

Change-Id: Iec2873ad22b5bb90e46a9e5b323f9626a2c07d9b
Reviewed-on: https://chromium-review.googlesource.com/292347
Reviewed-by: Hsinyu Chao <hychao@chromium.org>
Commit-Queue: Hsinyu Chao <hychao@chromium.org>
Tested-by: Hsinyu Chao <hychao@chromium.org>
Reviewed-by: Sonny Rao <sonnyrao@chromium.org>
Commit-Queue: Sonny Rao <sonnyrao@chromium.org>
Tested-by: Sonny Rao <sonnyrao@chromium.org>
/external/autotest/server/hosts/servo_host.py
a4ac7a8f67d61f8a616724f9426dbc0fce71ce69 06-Aug-2015 Eric Caruso <ejcaruso@chromium.org> autotest: move constants to common_lib

This file gets imported from lots of server-side tests and
infrastructure so it shouldn't be hiding in client/cros. This
moves the file and fixes all imports.

BUG=chromium:485834
TEST=run many tests, make sure there are no problems importing
constants

Change-Id: I5c2b2a0bef6ebc998e62f40162a6ec9cc4436480
Reviewed-on: https://chromium-review.googlesource.com/291302
Trybot-Ready: Eric Caruso <ejcaruso@chromium.org>
Commit-Queue: Eric Caruso <ejcaruso@chromium.org>
Tested-by: Eric Caruso <ejcaruso@chromium.org>
Reviewed-by: Chris Sosa <sosa@google.com>
/external/autotest/server/hosts/servo_host.py
848953993452a7d0d8cc913093a14e7f281a171b 30-Apr-2015 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Update servo based on the stable_version table.

This switches servo_host updates to use the afe_stable_versions
database table to select the target version for update. This is
the same table used for selecting repair images for DUTs.

Previously, selection was done by asking the devserver for the
latest staged image for beaglebone_servo. This would fail if the
devserver had not already staged the image.

Additionally, this removes some outstanding dead code that was
previously used to find the URL for a test image for use in servo
repair.

BUG=None
TEST=Force the flow on a local autotest instance; see servo update

Change-Id: I5cc4395c9b173e1dace13eee97f337b7f0a58b26
Reviewed-on: https://chromium-review.googlesource.com/268543
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
0942b1df911f6d78b0bc4277456de01ebbf9e5ec 31-Mar-2015 Dan Shi <dshi@chromium.org> [autotest] Add get_release_version method to servo_host

get_build_id method in autoupdater was removed. Add the new method for
servo_host to use.

BUG=chromium:472135
TEST=local servo test, confirm verify servo works

Change-Id: Ic255dce3b7bfa361204bd6dd7bb03b8f86ec6c5e
Reviewed-on: https://chromium-review.googlesource.com/263245
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
0739d68fcbd84d02839a85ce3c594e774e82c602 26-Feb-2015 Simran Basi <sbasi@google.com> Moblab: Servo Support via Host Attributes.

Moblab devices will look for servo_args inside a host's host
attributes.

Host attributes can be set via the CLI or the Web Frontend.

CLI to see attributes:
atest host stat <host>

CLI to set attribute:
atest host mod --attribute <attribute> --value <value> <host>

Updated the afe's management system so that it properly configures
the admin interface to allow editing of host attributes.

BUG=chromium:394544
TEST=local moblab setup. Tested both CLI and AFE host attribute
manipulation. Launched Servod, and ensure servo host is only
created when the attribute is applied to the host.

Change-Id: Ie3cccab31aa7518435ef0abc6ce206363406c272
Reviewed-on: https://chromium-review.googlesource.com/255550
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
/external/autotest/server/hosts/servo_host.py
211c5acb05537a3a0835e60a3c42c12aa5e08e8e 03-Mar-2015 Simran Basi <sbasi@chromium.org> Revert "Moblab: Servo Support via Host Attributes."

This reverts commit 71f190bc31be36311c1c59d762a13a28754d7ea9.

Reverting as the db migration does not work on systems that have not touched the afe at all.

Change-Id: I0c6875ec17f9362b7e646471b6ae5d06c70b770d
Reviewed-on: https://chromium-review.googlesource.com/255350
Reviewed-by: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
/external/autotest/server/hosts/servo_host.py
71f190bc31be36311c1c59d762a13a28754d7ea9 26-Feb-2015 Simran Basi <sbasi@google.com> Moblab: Servo Support via Host Attributes.

Moblab devices will look for servo_args inside a host's host
attributes.

Host attributes can be set via the CLI or the Web Frontend.

CLI to see attributes:
atest host stat <host>

CLI to set attribute:
atest host mod --attribute <attribute> --value <value> <host>

For the Web Frontend, we require a DB change to make the host
attributes panel visible in the admin interface.

BUG=chromium:394544
TEST=local moblab setup. Tested both CLI and AFE host attribute
manipulation. Launched Servod, and ensure servo host is only
created when the attribute is applied to the host.
DEPLOY=migrate

Change-Id: I9fb3e8ab6d386104c7e9ed555eaa110a0ae72b02
Reviewed-on: https://chromium-review.googlesource.com/253760
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
/external/autotest/server/hosts/servo_host.py
1e1c41b1b4a1b97c0b7086b8430856ed45e064d3 05-Feb-2015 Gabe Black <gabeblack@chromium.org> graphite: Separate out configuration from the statsd classes.

The new version of the statsd classes should be created using an instance of
the new Statsd class which sets up some defaults without having to specify
them over and over. This makes it essentially compatible with the existing
usage in autotest, but will allow chromite to configure things differently and
avoid having side effects from importing the module or global state.

BUG=chromium:446291
TEST=Ran unit tests, ran stats_es_functionaltest.py, ran the
stats_mock_unittest, ran a butterfly-paladin tryjob with --hwtest, testing by
fdeng.
DEPLOY=apache,scheduler,host-scheduler

Change-Id: I1071813db197c0e5e035b4d8db615030386f1c1c
Reviewed-on: https://chromium-review.googlesource.com/246428
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
/external/autotest/server/hosts/servo_host.py
e545abb10dd2f2083e3f56850de5cbdbda0cdf49 31-Dec-2014 Fang Deng <fdeng@chromium.org> [autotest] Make test faster by avoiding unnecessary servo check

Looking at dummy_Pass, you will see we do servo check
three times. They come from create_host in control segments of
client_wrapper, crashdumps, and verify_job_repo_url. If a test
choose to log sysinfo, in test.py there are two calls of
create_host which will trigger two more servo check.
None of them really need servo.

This CL allows code to explicitly skip servo when initializing
a host. Each servo check takes 10-20 seconds.
By doing this, I anticipate we can save 30~60 seconds per
test (which has servo), ~20secs on provision.

TEST=Run verify, repair, cleanup, provision
TEST=Test doesn't need servo don't check servo:
Run dummy_Pass, observe no servo check in the log
TEST=Test that need servo do check servo:
Run infra_ServoDiagnosis.py on a host with servo, servo check
was run.
TEST=Run infra_ServoDiagnosis.py on a host with servo,
manually pass servo_args={} in its control file,
fail the servo verify, and make sure servo repair is triggered.
TEST=Run a dummy suite with run_suite.
BUG=chromium:445677, chromium:426141

Change-Id: I06ec28e81b3abb20637f36c717f0d32e2310bd9d
Reviewed-on: https://chromium-review.googlesource.com/238223
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Trybot-Ready: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
/external/autotest/server/hosts/servo_host.py
0d21e30d5f9c74c16e6636d4354b3d54d28e82a3 10-Sep-2014 J. Richard Barnette <jrbarnette@chromium.org> [autotest] Drop the USB stick check from ServoHost.verify_software().

The check was meant to look out for regressions in an old bug seen
on Ubuntu kernels, chromium:225932. However, that problem hasn't
been seen in ages, and maintaining code that can _correctly_
find regressions is now causing more problems than it solves.

So, we're deleting the code.

BUG=chrome-os-partner:31799
TEST=None

Change-Id: I3788e45c2f4ee39b9e883f1fc505430ab5051376
Reviewed-on: https://chromium-review.googlesource.com/217499
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Yusuf Mohsinally <mohsinally@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/server/hosts/servo_host.py
18040e4aab5367670245b13f5ed9ce08f6ef61be 03-Sep-2014 Dan Shi <dshi@chromium.org> [autotest] update _check_servod_status to allow multiple servod processes.

BUG=chromium:410141
TEST=test_that in local setup

Change-Id: If736a80f92627aab6e17d3ff8a713e8a89f94720
Reviewed-on: https://chromium-review.googlesource.com/216220
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
e41d5e5ede248e7431071bbd82e4b748adb83281 30-Aug-2014 J. Richard Barnette <jrbarnette@chromium.org> Make sure Servo is initialized before checking the USB stick state.

One of the verification steps for Servo is to confirm that the
USB stick isn't wedged as for crbug.com/225932. The check
pre-supposed standard initialization, which unplugs the USB stick,
but the initialization didn't happen until after the check. This
made it possible for units to fail incorrectly in some cases.

This change re-orders the code to insure initialization prior to
the USB check.

BUG=chromium:409292
TEST=trigger repair in local instance with a plugged-in, corrupted USB stick

Change-Id: I8c8099742cfc32fcd1f7f3f3669d801924011dac
Reviewed-on: https://chromium-review.googlesource.com/215698
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/server/hosts/servo_host.py
e5b3c51bf3b972cb6f7b4834a595d1c67a7686d4 21-Aug-2014 Dan Shi <dshi@chromium.org> [autotest] Check servod process's status in verify_software

We've seen servo verification took very long time when servod is actually not
running. This adds a lot of overhead to the test. The timeout can be as long
as 2 minutes and servo verification is done 3 times in each test.

This CL add a check of actual servod process in servo_host.verify_software.
If servod is not running, servo host object will fail to be verified without
waiting for actual servo call to timeout in servo.initialize_dut, e.g.,
self.set('dut_hub_pwren', 'on')

Also add a timeout around servo.initialize_dut for 30 seconds.

BUG=chromium:404209
TEST=local servo setup and test_that

Change-Id: I46d2d10cd188db57c73b749c688d3d788a6df305
Reviewed-on: https://chromium-review.googlesource.com/213671
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/server/hosts/servo_host.py
8f19b396571599ad329af2526ee97696b48147f2 11-Aug-2014 J. Richard Barnette <jrbarnette@chromium.org> Don't make any servo XMLPRC calls during Servo contructor.

In order to test servo, it can be necessary to create a servo object
for a servo host where servod isn't working. This changes the Servo
constructor not to fail in that case, allowing the callers to have
control over when and how to test for a working servod.

BUG=chromium:388458
TEST=run various test cases on a local instance

Change-Id: I8e5c51be2287ec4b93a6519144540c90846b88d4
Reviewed-on: https://chromium-review.googlesource.com/211875
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Yusuf Mohsinally <mohsinally@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/server/hosts/servo_host.py
cef1f90167d65bfda82c5dbfb36a97b0aa4d9818 19-Jun-2014 Christopher Wiley <wiley@chromium.org> Ping servo before waiting 60 seconds for ssh to timeout

There are some number of devices in the test lab that have DNS
names for servos but no actual servos. When we run tests against
these hosts, we pay minutes of time just to wait for the SSH timeout
of 60 seconds when we try to ssh_ping() these servos to establish their
deadness.

BUG=chromium:380773
TEST=This makes wifitests against hosts as described above not take 5
minutes for a 30 second test.

Change-Id: I3759395dad15f54341b4312cb499db8991022af0
Reviewed-on: https://chromium-review.googlesource.com/204684
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
/external/autotest/server/hosts/servo_host.py
86b8018d4bf029e1207774b8bf95bdf6945e0d5e 13-Jun-2014 Ricky Liang <jcliang@chromium.org> Ignore servo config check failure on non-CrOS host.

The servod config in /var/lib/servod is created by upstart script on
beaglebone_servo hosts. The config file does not necessarily exist
on a non-CrOS host.

BUG=none
TEST=make sure servo_host module runs correcly inside chroot.

Change-Id: I4d99fdeeb6323b17293ed342ea02c185d6e46abe
Reviewed-on: https://chromium-review.googlesource.com/203618
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Ricky Liang <jcliang@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
33412a8417078bd6f9a98a4cea15e1b30c673f75 11-Jun-2014 Dan Shi <dshi@chromium.org> [autotest] Check if servo config file exists before trying to verify servod

This is added to help the performance of servo verification. For boards like
butterfly and parrot, servo is not ready and servod config file is not created
intentionally. If this config file is not there, there is no need to verify
servod.

BUG=chromium:380773
TEST=local servo test.

Change-Id: I616389e1ca42872b817273cd115b09f241e3af64
Reviewed-on: https://chromium-review.googlesource.com/203281
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
da8c60af1e1e3ee97170c700d0b72991687e35a2 03-Jun-2014 Michael Liang <michaelliang@chromium.org> [autotest] Migrate graphite directory to client/common_lib/cros

This change allows us to report stats in client tests.
1. Change import paths for all files that import modules from graphite
2. Clean up some unused modules
Related CL: https://chromium-review.googlesource.com/#/c/202467/
BUG=chromium:237255
TEST=Ran scheduler locally, scheduled reboot jobs, verified stats such as monitor_db_cleanup.user_cleanup._cleanup were reported on chromeos-stats.
DEPLOY = apache, scheduler, host_scheduler
Change-Id: Iebfe3b8acc1c363a0b70ea555744e85d1367cb67
Reviewed-on: https://chromium-review.googlesource.com/202727
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Michael Liang <michaelliang@chromium.org>
Tested-by: Michael Liang <michaelliang@chromium.org>
/external/autotest/server/hosts/servo_host.py
04be2bd5e4666a5c253e9c30ab20555e04286032 08-May-2014 Ilja H. Friedel <ihf@chromium.org> Autotest: Change logging.warn() to logging.warning().

logging.warn() is deprecated. See
http://bugs.python.org/issue13235

Substitution was performed via
~/cros/src/third_party/autotest/files$ find ./ -type f | xargs sed -i 's/logging.warn(/logging.warning(/'

BUG=None.
TEST=There should be one-- and preferably only one --obvious way to do it.

Change-Id: Ie5665743121a49f7fbd5d1f47896a7c65e87e489
Reviewed-on: https://chromium-review.googlesource.com/198793
Commit-Queue: Ilja Friedel <ihf@chromium.org>
Tested-by: Ilja Friedel <ihf@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
/external/autotest/server/hosts/servo_host.py
ddd7a0e14cf0d1877f703cbab5b81fca3cd44be7 29-Apr-2014 Dan Shi <dshi@chromium.org> [autotest] Do not log servo reboot during servo update

If servo reboot is logged, i.e., we wait for reboot to complete, a failed reboot
will leave a failure record in status.log, and that leads to test job failure
even if the test is already finished and does not require servo.

The fix is to reboot servo without waiting in self.reboot call, thus avoid
logging the reboot record.

BUG=chromium:367997
TEST=None
The local setup with test network makes it impossible to reboot a local servo
without hacking the code.

Change-Id: Iaab2b5c09a5793ba7c6a757cc16c1291cc433baa
Reviewed-on: https://chromium-review.googlesource.com/197526
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
cc58969d8af706b043a1a0c3982078966e928ed3 22-Apr-2014 Alex Miller <milleral@chromium.org> [autotest] All host.reboot() methods should do the same thing.

Where the same thing is return None on succes, and raise on failure.
Because that is what remote does.

BUG=chromium:318306
TEST=Ran generic_RebootTest on a cros host

Change-Id: I83e7cbdd97c8691897441b344363359122ae260a
Reviewed-on: https://chromium-review.googlesource.com/196166
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
/external/autotest/server/hosts/servo_host.py
bbb0cb6e1b8ce8fa0e81c1e0504897c5835a8ccd 25-Mar-2014 Dan Shi <dshi@chromium.org> [autotest] only repair servo if the servo is required and in lab

Only raise exception if servo is required.

BUG=chromium:355824
TEST=None

Change-Id: I53ba122144b0f002fe1776361a160da95dd387c5
Reviewed-on: https://chromium-review.googlesource.com/191373
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
0a1e059b6521407c8b7391a4dad0183c4593e2be 06-Mar-2014 Dan Shi <dshi@chromium.org> [autotest] ServoHost initialization should raise an exception if a servo is required by the test and not in lab

BUG=chromium:350094
TEST=create a test job for platform_InstallTestImage on a dut without servo.
The test should fail server job with exception:
AutotestRunError: Servo is required, but failed to verify.

Change-Id: Iaafcef1e5b04cad1f6544059c744656d327ff78f
Reviewed-on: https://chromium-review.googlesource.com/189145
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
4d47852f4660577ec652da58ea2873834a1a04ce 14-Feb-2014 Dan Shi <dshi@chromium.org> [autotest] Allow servo to be initialized without attempt to repair.

When CrosHost is initialized, try to initialize servo but not attempt to repair
it if servo is not required for the test. Servo initialization is necessary to
reset the servo's status, e.g., switching the USB stick away from the DUT.

BUG=chromium:340565,345934
TEST=local test that with overide in _create_servo_host by returning:
ServoHost(servo_host='localhost', is_in_lab=True, required_by_test=False)

Change-Id: I8da7f3ef541e243e4da5f3f6f76c83a69a1eddab
Reviewed-on: https://chromium-review.googlesource.com/186658
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
0cf92c8b4340baab34d07b60192edd6557a26f88 21-Feb-2014 Dan Shi <dshi@chromium.org> [autotest] Disable _powercycle_to_repair for servo host

Due to bug 336606, servo is not able to be repaired by power cycle through POE.
So remove _powercycle_to_repair from the repair function in servo host for now
until that bug is fixed.

BUG=chromium:345475
TEST=None

Change-Id: I5ca1692f626fa56c1227fb3edba360f6c7fdbc64
Reviewed-on: https://chromium-review.googlesource.com/187318
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
/external/autotest/server/hosts/servo_host.py
5e8c45adeeaaa493462262a1138e53d42caae014 18-Dec-2013 beeps <beeps@chromium.org> [autotest] Give servo hosts the ability to update.

Since we're now staging the latest beaglebone build on the devservers
we can update all servo_hosts that are running chromeos via update engine.
This cl forces the beaglebone to check for new updates on each reset/verify,
and if one is available, download and apply it.

TEST=Update a beaglebone with and without servo(v2).
Confirmed servod came up after the update.
BUG=chromium:272354
CQ-DEPEND=CL:178534

Change-Id: I09d0b85b81f0f60318c02e44f42b2daabe1cead4
Reviewed-on: https://chromium-review.googlesource.com/180562
Tested-by: Prashanth B <beeps@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
/external/autotest/server/hosts/servo_host.py
f0ea614594826f9fcbcc7cd89660ab5f4851fc34 11-Oct-2013 Fang Deng <fdeng@chromium.org> [autotest] Add stats to servo host repair

Add stats to trace how often servo host repair fails/succeeds.

TEST=locally run servo host repair flow, confirm stats show up in
graphite.
BUG=chromium:254429

Change-Id: I0d7e9733923ae01bacb005858d20c7c138caebad
Reviewed-on: https://chromium-review.googlesource.com/172734
Reviewed-by: Dan Shi <dshi@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
/external/autotest/server/hosts/servo_host.py
d4fe7396332d3cc6681d3d9c8aa34e17bbe907a5 20-Sep-2013 Fang Deng <fdeng@chromium.org> [autotest] Repair servo host via PoE.

Use the rpm infrastructure to power cycle the beaglebone via PoE.

TEST=Manually mock out power_cycle() and call _powercycle_to_repair.
power_cycle is simulated by sleeping for ten seconds and
manually power cycling the beaglebone during the sleep.
Cover the cases when the servo host is fixed after power cycling
for one time, multiple times, and the case when the servo host
never comes back.
BUG=chromium:278602

Change-Id: I37f84d8750c12bd60a96bf145d2bcaffb44f0ac2
Reviewed-on: https://chromium-review.googlesource.com/170781
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
/external/autotest/server/hosts/servo_host.py
5d518f4399bc77916591cd02ca15b4d394f56f96 02-Aug-2013 Fang Deng <fdeng@chromium.org> [autotest] Add servo repair process

This CL has the core logic of servo repair process.
A new type of host class, ServoHost, is created for interacting
with our beaglebones. With this class, we can verify and repair
a beaglebone.

CrosHost._initialize now checks whether a servo is required by
a test (see inline comments about how this is achieved).
If a servo is required and the servo is in our lab,
it will attempt to repair bad servo. It will raise an exception
if the servo couldn't be fixed.

CrosHost.repair_full now attempts to repair the servo as well.
If a servo can't be fixed, the repair job will fail leaving the
DUT in "Repair Failed" status.

BUG=chromium:245320
TEST=1)Manually make cros_host believe it is dealing with a lab servo,
and test with repair job, and platform_InstallTestImage.
Confirm when servo is broken, it goes through the servo repair flow.
2) Use local servo by setting servo_args with local servo ip.
Test with repair job and platform_InstallTestImage.
Confirm when servo is broken, it throws a exception.
3) Manually test ServoHost.run, Servo.system, Servo.system_output,
Servo, Servo._scp_image, ensure they work after refactoring.

Change-Id: I9abc3320ba84a604a6534b75d16156bda30b09b5
Reviewed-on: https://chromium-review.googlesource.com/66891
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
/external/autotest/server/hosts/servo_host.py