History log of /external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
70e41600de0933f503f487bcb0231a9b93f89d6f 01-Nov-2017 Xixuan Wu <xixuan@chromium.org> autotest: Make ControlFileNotFound non-retryable at RPC level.

BUG=chromium:779275
TEST=Test on golo proxy server for suite-scheduler with 'run_suite.py'
command.

Change-Id: I7475933eb3ef604cd021c87ae01b8dc334c07410
Reviewed-on: https://chromium-review.googlesource.com/748706
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
b5f1c11c67b798972ab5a1b417900c008be2034e 25-May-2017 Aviv Keshet <akeshet@chromium.org> autotest: drop port # from retrying_afe destination_server stats

Local calls are having destination logged with with hostname and port
number. This has the potentially to cause a too-many-streams problem.

BUG=chromium:724529
TEST=None

Change-Id: I65203da04c99c5bc8ac9f1dc000a243db67cab78
Reviewed-on: https://chromium-review.googlesource.com/515046
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
3e41e80a1be59303a9d469e3ef43184c23485aa8 19-May-2017 xixuan <xixuan@chromium.org> autotest: add metrics from rpc client side for timeout RPCs.

BUG=chromium:724529
TEST=local run autotest, make an RPC call timeout, print the fields.
Ran unittest.

Change-Id: If75643800bcd75d993d13a68fe14e8427f68e7ba
Reviewed-on: https://chromium-review.googlesource.com/509931
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Commit-Queue: Xixuan Wu <xixuan@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
12aa4a2b1f3fbbdc419cce98f21c62ecc1df6d11 19-May-2017 Aviv Keshet <akeshet@chromium.org> autotest: consolidate in_mod_wsgi check, add it to utils _reset_sigpipe

The signal handler installation raises spam in our rpc error logs if
attempted within a wsgi enviornment. Fix that. Also, consolidate the
wsgi detection logic.

BUG=None
TEST=None

Change-Id: I452e1c7af2f7e95848a7e1c4d785ad3c49233307
Reviewed-on: https://chromium-review.googlesource.com/508820
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Trybot-Ready: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
3e9a6f9b794ae282db0b81517c6e4e192d7461e9 21-Apr-2017 Aviv Keshet <akeshet@chromium.org> autotest: don't use timeout_util.Timeout in wsgi environment

BUG=chromium:711806
TEST=None

Change-Id: I6b37abd5d110c963b1c0d78e6ba845fe12a67c2d
Reviewed-on: https://chromium-review.googlesource.com/483905
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Trybot-Ready: Aviv Keshet <akeshet@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
10ce09c325cc46c993929af23d2f54807862d005 09-Mar-2016 xixuan <xixuan@google.com> Autotest: Use SSH For Communication to Moblab

Create an ssh tunnel for autoserv to communicate to moblab. MoblabHost calls
rpc_server_tracker to create a safe ssh connection to moblab when it is
created or moblab is rebooted.

Related Change:

1. Refactoring rpc_server_tracker to seperate tunnel creating process
|_setup_tracker_for_rpc| and URL/host construction functions,
|_setup_rpc| or |tunnel_connect|.

2. Add a |enable_ssh_tunnel_for_moblab| to enable/disable ssh tunnel for
moblab.

BUG=chromium:593965
TEST=Ran verify&repair, moblab_RunSuite:dummyServer, on local moblab to
verify ssh tunnel for moblab. Ran network_WiFi_SimpleConnect.wifi_check11g
to make sure that rpc_server_tracker still works.

Change-Id: I0d35209c3ba7b27cca00bbdff1a714ed6d8d40d3
Reviewed-on: https://chromium-review.googlesource.com/331792
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
68af63fda17416fdeb77de25a3517d8c2d9438ce 22-Feb-2016 Dan Shi <dshi@google.com> [autotest] Handle chromite import failure in frontend_wrapper.

Some utility functions should not require users to build_external for
site-packages, e.g., chromite. One use case is to use
site_utils/control_file_preprocessor.py to create a suite job map in
Brillo builder. Updating all Brillo/Android branches to include
external/chromite project in manifest is too much trouble. Handle the
import failure and raise exception when it's needed is much easier.

BUG=b:26971750
TEST=rename site-packages folder and run:
python site_utils/control_file_preprocessor.py -a \
~/chromiumos/src/third_party/autotest/files -o map
run atest host list command to confirm AFE rpc fail as expected.
change site-packages folder name back, run atest host list command
again, confirm it works.

Change-Id: Ia951b5d4a41d8a12a1491d00316a1a5934b1002e
Reviewed-on: https://chromium-review.googlesource.com/328842
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Matthew Sartori <msartori@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
15d42311147778148e0a80b703e789abc6bbd12d 16-Dec-2015 Dan Shi <dshi@google.com> [autotest] Allow suite scheduler to process boards in parallel

suite scheduler processes each board in a single threaded fashion. Each board
takes about 2-10 mins to process for a single event (new_build, nightly or
weekly). We have over 100 boards in the lab, that leads to nightly run takes
almost 8 hours to finish, and weekly run takes more than 36 hours.

This CL changes suite scheduler driver to process boards in parallel, to
reduce the run time needed to handle each event.

BUG=chromium:560951
TEST=local run, confirm suite can be created.
/usr/local/autotest/site_utils/suite_scheduler/suite_scheduler.py -b \
-d /usr/local/autotest/logs -f /usr/local/autotest/t_suite_scheduler.ini \
-r /tmp/_autotmp_P5J9Zj_suite_scheduler
unittest

Change-Id: I3d7eea2b6449d3c4ea4a8c191ff980064e0301a6
Reviewed-on: https://chromium-review.googlesource.com/318503
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Simran Basi <sbasi@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
89cca5d6ef8df35f1b294b16bf536a8f3ffb5efb 18-Sep-2015 MK Ryu <mkryu@google.com> [autotest] Timeout support for RetryingAFE and shard_client.

shard_client uses RetryingAFE for a RPC client. RetryingAFE seems
to hang when trying to HTTP to overloaded apache server. This CL
makes RetryingAFE raises TimeoutError exception when timed out.
shard_client catches the exception and gets out of the hang.

BUG=chromium:501917
TEST=Runs shard_client in local machine.

Change-Id: Id7c0cf13df7960120d6b7e7910046847d0d11500
Reviewed-on: https://chromium-review.googlesource.com/300787
Commit-Ready: Mungyung Ryu <mkryu@google.com>
Tested-by: Mungyung Ryu <mkryu@google.com>
Reviewed-by: Mungyung Ryu <mkryu@google.com>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
ca9a1e919832f80adb55a781660fc027c57d0b0e 18-Sep-2015 MK Ryu <mkryu@google.com> [autotest] Skip RPC retry when getting JSONRPCException.

frontend.afe.json_rpc.proxy.ValidationError is a subclass of
JSONRPCException. Getting JSONRPCException for an RPC means
that the caller was able to call a function in the remote but
got an error. Because the remote function call was done but
got an error, retrying is not neccessary. Ohterwise, we will
get the same error again.
ValidationError is included in the blacklist for retry in such
a reason. We should make the blacklist wider to include
JSONRPCException.

BUG=chromium:532746
TEST=puppylab. Try ./cli/atest label remove -m test_host15 random_label

Change-Id: Ia24df450dd6b8f98788a51ee90d262dd527d13d8
Reviewed-on: https://chromium-review.googlesource.com/300601
Commit-Ready: Mungyung Ryu <mkryu@google.com>
Tested-by: Mungyung Ryu <mkryu@google.com>
Reviewed-by: Dan Shi <dshi@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
d188984d9aef5a4ff09d8d459b5b3a6c46789fb0 05-Jun-2015 Matthew Sartori <msartori@chromium.org> [autotest] Retry with backoff for RPCs

Use chromite.lib.retry_util to run RPCs with exponential
backoff. The chromite library cannot be safely imported into
client/common_lib, preventing us from adding to the retry module.
So, we use chromite's retry_util directly when issuing RPCs to
get the desired backoff behaviour.

BUG=chromium:493219
Test=Tested that test suites were runnable with these changes on
a moblab. Tested the new retry logic with a stubbed function to
retry.

Change-Id: Ia5aac84d3e475a022867b4ca43d8f6bb0fb05d7a
Reviewed-on: https://chromium-review.googlesource.com/275699
Tested-by: Matthew Sartori <msartori@chromium.org>
Reviewed-by: David James <davidjames@chromium.org>
Commit-Queue: Matthew Sartori <msartori@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
db550114d3137db4fca4b9b6ae8a95ef38292aea 02-Jun-2015 Matthew Sartori <msartori@chromium.org> [autotest] Retry with backoff for RPCs

Create a new retry function in the autotest retry module.
This function provides a very similar interface to the current
retry function. This new function does not rely on jittered delays,
but uses the chromite retry_util module to provide backoff behaviour.

BUG=chromium:493219
TEST=Tested with unittests.

Change-Id: I55642954d90e9b7dc14b2ea9f09691a5fa7dda56
Reviewed-on: https://chromium-review.googlesource.com/274864
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Matthew Sartori <msartori@chromium.org>
Tested-by: Matthew Sartori <msartori@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
d5dde48725dae3292fac669a93d4ab53285a3262 20-Nov-2014 Tom Wai-Hong Tam <waihong@chromium.org> Remove the non-client dependency from the retry module

The client module retry depends on a non-client module, i.e. the proxy module
of frontend.afe.json_rpc. This dependency prevents any client-side code
from importing the retry module.

Searching for the entire code base of Autotest, this proxy thing is used
only by the frontend_wrappers. So moved it to the frontend_wrappers.

Also fixed its unit test.

BUG=chromium:434943
TEST=retry_unittest.py passed.

Change-Id: Id9963068ea328ce357df6521d186fd9fa6d0a72b
Reviewed-on: https://chromium-review.googlesource.com/231152
Tested-by: Wai-Hong Tam <waihong@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Wai-Hong Tam <waihong@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
aa12ea10e8e33b55349354f926138dd2327d2daa 30-Jul-2014 Simran Basi <sbasi@chromium.org> [autotest] Fix frontend_wrappers timeout/delay_sec args.

Currently frontend_wrappers is ignoring the specified timeout
and delay_sec arguments.

This change ensures they are passed to the decorator properly.

BUG=chromium:398638
TEST=Verified timeouts now work in the interpreter.

Change-Id: Id8b41064c198b0a3a0dde330f51bc25cce64f58f
Reviewed-on: https://chromium-review.googlesource.com/210410
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
e1a2a2947d23be05d2783611cd7a5f91be336330 21-Aug-2013 Alex Miller <milleral@chromium.org> [autotest] Suite scheduling should TEST_NA unschedulable tests.

This is preperation work for dropping tryjobs.

TEST_NA'ing tests that cannot run due to DEPENDENCIES is one of the
responsibilities of the code in reimager, which we're trying to do away
with. Now suite can handle this condition by itself, so the code in
reimager is no longer needed (and will be removed in a later CL).

BUG=chromium:250586
TEST=unit, (kicked off BVT locally with full patch stack, and create_job
failed and the tests were TEST_NA'd)

Change-Id: I92d0e00e1ee3291b1c88f353f88ee1e9b645bc4b
Reviewed-on: https://chromium-review.googlesource.com/66604
Tested-by: Alexander Miller <milleral@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Alexander Miller <milleral@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
241ae6c2481663364f2e4fbba76954db839911c5 01-May-2013 Fang Deng <fdeng@chromium.org> [autotest] retry takes a blacklist and doesn't retry on ImportError

retry decorator now takes a blacklist of exceptions. The decorated
function will not be retried if an exception falls into the list.
As such, we have the option to let the functions fail faster
on errors we know for sure we don't want to retry.

RetryingAFE and RetryingTKO now don't retry on ImportError.

TEST=locally ran run_suite.py w/ and w/o simplejson installed
BUG=chromium:236847

Change-Id: I7365ee4971611562c4b6ad56720c067a97b2a840
Reviewed-on: https://gerrit.chromium.org/gerrit/49759
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py
b493555db2d43e79d96e793cae9d1ffb822dd6c1 14-Aug-2012 Chris Masone <cmasone@chromium.org> [autotest] Move dynamic suite code into its own module

No big rewrite, just moving files around

BUG=chromium-os:30266
TEST=unit
TEST=successful run_suite.py run
TEST=suite_enumerator.py, suite_preprocessor.py, and suite_scheduler.py

Change-Id: I2fbcae0332104ce3adcb10a1e90ce94cb209aca8
Reviewed-on: https://gerrit.chromium.org/gerrit/30267
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/external/autotest/server/cros/dynamic_suite/frontend_wrappers.py