History log of /external/autotest/client/common_lib/base_job.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd36ae0a377f228c69f58d7c5c854ee1a7abf94b 10-Nov-2017 Xixuan Wu <xixuan@chromium.org> autotest: Enable passing in parameters from create job page.

BUG=chromium:782501
TEST=Ran client job & suite job on local autotest. Verify that fast is
injected into control file.
Ran unittest.

Change-Id: I061694392fb3b789a5135ad2af241f2b0886123a
Reviewed-on: https://chromium-review.googlesource.com/764431
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Dan Shi <dshi@google.com>
/external/autotest/client/common_lib/base_job.py
f53d1269ad7321116eadcb0167d81dbea9bf4bef 19-Jun-2017 Dan Shi <dshi@google.com> [autotest] Allow control file to specify maximum test results to collect

Control file can set an attribute MAX_RESULT_SIZE_KB to specify the maximum
test result size to collect. By default, it will be 20MB if
`enable_result_throttling` is set to True in global config.

BUG=chromium:716218
TEST=unittest, local run dummy tests

Change-Id: Ia6b9a04d92ec91179ceb99466b5e9d6a5d1b3ef3
Reviewed-on: https://chromium-review.googlesource.com/540196
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Dan Shi <dshi@google.com>
/external/autotest/client/common_lib/base_job.py
f0c8224364e104aabe3ff76525e0cc7a39be2a6c 19-May-2017 Aviv Keshet <akeshet@chromium.org> autotest: (base_job) delete TAPReport and all callers

This looks unused.

BUG=None
TEST=None

Change-Id: I7ceff7c4c546eba72ab6c24e66abe759077a758c
Reviewed-on: https://chromium-review.googlesource.com/509013
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Keith Haddow <haddowk@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
/external/autotest/client/common_lib/base_job.py
6ae02f0988f60b893b47a5059738060ca3773b02 03-Nov-2016 xixuan <xixuan@chromium.org> Autotest: Let status_log_entry not raise exception in parsing error msg.

Status_log_entry will raise exception when getting an error msg which includes
bad characters, which leads to a traceback exicting in status.log. This may
prevent tko parser to parse the status log and upload it to tko database.

This CL replaces the bad characters with space, and won't raise exception for
this case.

BUG=chromium:662108
TEST=Ran python commands locally, Ran unittest.

Change-Id: I4fbb4bcc2fb8eea566e80c5fe28f229e092242bb
Reviewed-on: https://chromium-review.googlesource.com/406458
Commit-Ready: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
/external/autotest/client/common_lib/base_job.py
9aec6930955ea7d3d345cf2d214f9e6982f84cb8 03-Jun-2016 Richard Barnette <jrbarnette@chromium.org> [autotest] Remove the last of the support for kernel selection.

This removes all the vestiges related to support selecting a kernel
for test from client side code. This completes removal of all such
code from the Chrome OS fork of Autotest.

N.B. It's possible that there are still design concepts within the
code that exist primarily for the benefit of kernel selection.
Finding and simplifying those design concepts are left for the
next intrepid developer.

BUG=chromium:266704
TEST=Run push_to_prod suite in a local instance.

Change-Id: I7a8bbee0f58c14c4826689d5d04999b3708ad5f6
Reviewed-on: https://chromium-review.googlesource.com/349710
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
/external/autotest/client/common_lib/base_job.py
9603cd19499048c30856f2de2f821c937b33cb6f 07-Dec-2015 Christopher Wiley <wiley@google.com> Remove conmux

It isn't clear what the original authors had in mind for this code, but
we don't seem to use it. Remove one more piece of cruft from the
autotest codebase.

BUG=None
TEST=None

Change-Id: I35e9d212feb54106fa6f27f36f075e4f1924d567
Reviewed-on: https://chromium-review.googlesource.com/316430
Commit-Ready: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/client/common_lib/base_job.py
70647cafbd061a7754ac304fd9dc067f2b6dbab4 17-Jul-2015 Dan Shi <dshi@chromium.org> [autotest] Save parent job id, build, board and suite info to tko_jobs.

parent job id is passed in through autoserv commandline. autoserv saves the
value to keyval file in results folder. The parser job then reads the parent
job id from keyval file.

build, board and suite info are parsed from job name. The label column in
tko_jobs is essentially the job name. However, that column has a size limit of
100 characters, thus the name could be truncated. This CL parse the actual job
name to get the build, board and suite info and save to tko_jobs table.

BUG=chromium:509770,chromium:509901
TEST=local test
CQ-DEPEND=CL:285026

Change-Id: I06b073b052a9d07ffd36308b1682a7bc12699898
Reviewed-on: https://chromium-review.googlesource.com/286265
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Mungyung Ryu <mkryu@google.com>
Commit-Queue: Dan Shi <dshi@chromium.org>
/external/autotest/client/common_lib/base_job.py
edb26bf0efd528c0f00dd16affac5154b05550f5 03-Dec-2013 Christopher Wiley <wiley@chromium.org> autotest: Remove ancient config files from client package

These files haven't been touched since 2010 and have no references in
the autotest codebase.

BUG=chromium:324963
TEST=None
CQ-DEPEND=CL:178608

Change-Id: I453fb2442ab226801b73b4abf2689635105c64f5
Reviewed-on: https://chromium-review.googlesource.com/178564
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
/external/autotest/client/common_lib/base_job.py
d9a056fe72b1a6aa2ccf9acbc3a1918dbbe07028 29-Oct-2013 Fang Deng <fdeng@chromium.org> [autotest] Server side job uses /tmp as tmpdir

Currently server/tmp is used for server job's tmpdir.
server/tmp doesn't come with autotest repo. We are hitting
the following error if server/tmp doesn't exist on server side:

MissingDirectoryException: Directory /usr/local/autotest/server/tmp
does not exist

This CL tries to fix the problem by using system temporary directory
for server job's tmpdir.

BUG=chromium:276552
TEST= 1) Without the fix, delete server/tmp, run
/usr/local/autotest/server/autoserv '-r' '/tmp/1038-fdeng' '-s'
-m LOCAL_MACHINE A_SERVER_SIDE_CONTROL_FILE
Confirm the exception is raised.
2) Apply the fix, confirm that autoserv runs successfully.
3) Confirm client side test still works.
4) unittest

Change-Id: I7906546cc0dbd0ddd121adb7345b38f89f135f48
Reviewed-on: https://chromium-review.googlesource.com/174987
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
/external/autotest/client/common_lib/base_job.py
36bf74a318bf182573ee8d7e0a389293f172c3ff 16-Aug-2013 Aviv Keshet <akeshet@chromium.org> [autotest] server-side test dirs do not need to be writable

This CL causes autoserv to no longer assert that a server side tests's
test directory is writable (since at no point does autoserv actually
need to write to it). Removing this assertion allows test_that to run
VMTests on the builders (run_remote_tests.sh, which previously ran those
tests, has the obscure side-effect of chmodding the server side test
directories).

BUG=chromium:274014
TEST=This patch allowed VMTest to get passed the directory-writable
assertion failure referenced in the bug.

Change-Id: I1b3aa0460f56a13452a22807a22b12adfb86aaaa
Reviewed-on: https://gerrit.chromium.org/gerrit/66003
Tested-by: Aviv Keshet <akeshet@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Aviv Keshet <akeshet@chromium.org>
/external/autotest/client/common_lib/base_job.py
91493c88a1506729a6728660d90cfae591cd52aa 25-Jan-2013 Scott Zawalski <scottz@google.com> Introduce a mechanism for retrying tests at the control file level.

If a test returns unsuccessfully and --retry-test > 0 is specified the test
will be rerun. Options were added to autoserv and are passed through to the
client side job by modifying the base_job.

Tests that fail and then succeed within the --retry-test limits will have a
test keyval set with the number of attempts |test_retries_before_success|.

--retry-test can be utilized immediately in run_remote_test but will need to
be piped through the RPC system and down to the scheduler to provide the proper
--retry-test value from the scheduler's perspective.

Fixed random pylint errors consisting mostly of unused imports.

TEST=unittests
created a randomly failing client and server side test and ran it on devices
BUG=chromium-os:37158

Change-Id: Ibec3935b5f6fd28fc1b6eb7be55de27a571ad777
Reviewed-on: https://gerrit.chromium.org/gerrit/42043
Commit-Queue: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
/external/autotest/client/common_lib/base_job.py
74a314b490ff542c4dd2ae4aa0d11c6394d92960 23-Jun-2011 Dale Curtis <dalecurtis@chromium.org> Upstream Autotest merge.

As titled, a merge up to 93fc426ca133e775eb495f34d138fc57d92fb55e.

- Removes a bunch of deprecated code.
- Moves several private utilities into the private repo.
- Couple changes ported upstream and resynced.

BUG=None
TEST=In progress... will spin up new Autotest server and use
run_remote_tests for bvt, regression, smoke.

Change-Id: Id3e2ad529bb7b05f148e5d98aea46bb9ea828200
Reviewed-on: http://gerrit.chromium.org/gerrit/3350
Tested-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
/external/autotest/client/common_lib/base_job.py
d656d56473f50b9c1a9f5e2b2f5a9472181ee342 20-Apr-2011 Eric Li <ericli@chromium.org> Merge remote branch 'autotest-upstream/master' into autotest-merge

Merged to autotest upstream @5317.

BUG=none
TEST=
1. utils/unittest_suite.py
2. utils/packager.py --all upload -r /tmp/pkgs
3. utils/compile_gwt_clients.py

enter_chroot
emerge-x86-generic autotest-*
emerge-arm-generic autotest-*

run_remote_test suite_Smoke
run_remote_test bvt

Review URL: http://codereview.chromium.org/6883035

Change-Id: I03240d8652ffdfde4d6c8fbf474e2fad7f3cda10
/external/autotest/client/common_lib/base_job.py
861b2d54aec24228cdb3895dbc40062cb40cb2ad 04-Feb-2011 Eric Li <ericli@chromium.org> Merge remote branch 'cros/upstream' into master

Merged to upstream autotest @4749~@5215.

The entire change list description is too big to enlist here. Please refer to upstream (http://autotest.kernel.org/browser) for more details.

BUG=
TEST=emerged both x86 and arm build.
Tested emerged x86 build bvt against a chromeos device.

Review URL: http://codereview.chromium.org/6246035

Change-Id: I8455f2135c87c321c6efc232e2869dc8f675395e
/external/autotest/client/common_lib/base_job.py
bdaab795cffa33f9a37995bb283047cb03699272 07-Jan-2011 Kenneth Waters <kwaters@chromium.org> Revert "Merge remote branch 'cros/upstream' into autotest-rebase"

This reverts commit 7edb30498d75a29a3287fe07070f2b51a116c5d4.

TEST=Built for tegra2_seaboard
BUG=10756

Review URL: http://codereview.chromium.org/6124004

Change-Id: Ifcd1a2279f5a62b99552a8f961c1430889a3a928
/external/autotest/client/common_lib/base_job.py
7edb30498d75a29a3287fe07070f2b51a116c5d4 07-Jan-2011 Eric Li <ericli@chromium.org> Merge remote branch 'cros/upstream' into autotest-rebase

Merged to upstream trunk@5066, from trunk@4749.

There is no way I could enlist each individual CL from the upstream here since it will blow up the changelist description field.

BUG=
TEST=
Had patched this CL into a fresh cut client to avoid any side effect.
run_remote_test bvt from both emerged location and third_party/autotest/file.

Both test passed!

We should also keep any eye on this to see how it gets propagated into cautotest server.
TBR=dalecurtis

Change-Id: I72f2bc7a9de530178484aea1bfb5ace68bcad029
/external/autotest/client/common_lib/base_job.py
bbb026c9fbd2d3907205f4b66232a849d8a424b3 19-Jul-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a bug in the base_job logging where it indents all lines of logs
instead of just the "real" status lines. This causes extra non-status
lines to look like status lines to the parser, which then falls over
trying to parse them. This is a regression from the pre-refactored
code.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@4724 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
2a89dac0b6e319ef58d41c7a591c3d88cf6dd8a1 11-Jun-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Refactor the server_job code to use the base_job implementation of
record.

The two main features that the server job code added on top of the
basic job record were the ability to inject client job records into
the server job record, and the ability to inject console/vlm warnings
into the record.

The Autotest injection was implemented by adding a parse classmethod
to the status_log_entry class that does the inverse of the render
method, so that the Autotest class can construct status_log_entries
from the raw text status logs it gets from the client. The server then
re-records the messages, rather than using a low-level method to
bypass the old job.record rendering.

The warning injection was implemented by using the record_hook; to
make it work better it was moved to be called before the entry is
logged, not after. This required a slightly more involved hook, as it
was useful to be able to call job.record directly from the hook and so
the hook was wrapped in a callable class that prevents recursion.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4605 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
4afc3676e5735bd52303c0612b1cbc62c2d6fba8 30-Apr-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Yet another round of extraction of job code up into base_job.py in the common
library. This focuses on pulling job.record up from the client job into the
base, with an eye towards doing the same with the server job.record code (thus
providing a single unified implementation).

Currently I extracted all the job.record code from the client out into a
status_log_entry and status_logger class. The idea was that all the code that
knows how to convert status,subdir,operation,etc. parameters into a string to
go into the status log would be in the status_log_entry class, and all the
code that actually knows how to write an entry into the log files would be in
the status_logger class. It also pulls all the code for tracking the nesting
into the status_logger class, instead of scattering increment and decrement
calls throughout the job class.

This multi-class separation might seem a little overdesigned, but it made it
easier to write good unit tests that don't throw up a million mocks
all over the place. I also think it will be easier to extend when I
try to make this work for server jobs as well; the server has to mix
together job.record calls, status logs from client jobs, and injected
WARNs, so separating out the entry class and the class that actually
writes out the logs should be helpful for supporting that model.

The CL also contains a lot of generic docstring cleanup that I had to do
while working on the classes.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4455 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
808f4b1663600ba7e735c4d78125825c52bb804f 10-Apr-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Expose args as a proper job property, fix up some unit tests. In the
future I'm just going to start reverting patches that break tests.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4396 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
caf94a7cb2b4cce5c609d2685ad76cd8c7c90508 04-Feb-2010 lmr <lmr@592f7852-d20e-0410-864c-8624ca9c26a4> base_job: Removing some state file debug messages

With recent changes on base_job code:

* Each time a state file is written, a debug message is printed
* Each time the in-memory state is replaced by on-disk state,
a debug message is printed

Since the above 2 operations happen *a lot* during a client
execution, we get an abnormally high number of messages
regarding those events, distracting the user from other
relevant events. So my proposal is to just get rid of those
debug messages.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4209 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
a087eaedccf3bf2a89808f22254d282bd7147f8c 29-Jan-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Use flock, not lockf, for locking in base_job. lockf doesn't work very well
when the actual length and contents of the file are in flux, since we're
really just trying to use the file as one big cross-process semaphore.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4179 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
a2c994965280e84061c5e0502b711947f780bb02 27-Jan-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Change the job.postprocess_job_state to catch OSError and not IOError, since
OSError is what os.remove throws when the file does not exist.

It also cleans up some more of the backing file locking for job_state, so
that the read and write code in server_job is compliant as well. The main

difference is that while read_from_file does not provide generally safe
locking and synching behaviour, it does do so for its final synchronization.
This makes it easier for non-job_state code to be safe, since it only needs
to lock the file it passes in.

It also moves the locking decorator out of the class, to make it easier to
use on the fly. It also separates out the with-lock and with-sync code.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4173 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
b830fee7954ca11d3533970e1148685bd86d97c3 26-Jan-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Update the job.resultdir docstring to reflect the fact that the attribute will
always point to a writable directory.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4169 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
fa2e889be2e704a8b3c723900f26cfe33a9cbb7d 26-Jan-2010 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Wrap all state-dependent method in job_state with a decorator that
ensures that file access is properly serialized and that the
in-memory and on-disk state are correctly synchronized at the start
and end of the method.

Note that this specifically does not address:
1) thread safety
2) race conditions involving multiple processes trying to alter the
same state
In both these cases the offending code need to do its own locking. I
don't recommend doing either one, in any case.

The main use case this is trying to address is to ensure that state
set in child processes propogates back up to the parent processes.
In particular, we want to make sure that state set in a client test
propogates back up to the client job code, since the client test is
run in a forked subprocess.

Risk: Low
Visibility: Eliminates a variety of cross-process job state issues.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4168 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
9de6ed7ab19c29b5072d52439f434453df16bec0 11-Jan-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Eliminate the last uses of the public state managment interface for
storing private job state. This does it for the last bits of
client-only state.

It also changes job.record to use a _record_prefix value, instead of
a group level value, for tracking the "current" indentation of status
logging. It's only a minimal change to record, I have more significant
refactoring in mind for getting rid of the massive duplication of
the job.record infrastructure, I just targetted this specific aspect
to get rid of the last of the "old" state management.

Note that unlike the other stateful properties, job._record_prefix is
NOT a single, global value automatically shared between the server
and client job; the client puts the stateful property in the client
namespace to keep its value independent of the server one.

Risk: Medium
Visibility: Clears out the last of the "old-style" use of storing
private job state in the public state area.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4086 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
fc3da5bbdcd63840cd224282812c050c5520db11 06-Jan-2010 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> More refactoring of the job state code to try and reduce duplication.
In the process this also refactors a bunch of job.run_test duplication,
specifically the handling of job tags (there's still lots more
duplicate code left).

The main state refactorings are:
* Storing client job steps in __steps and special-casing its removal
in autotest.py is gone. Instead the client job code stores it
directly in the client.steps state, and the autotest.py generically
removes the entire client.* namespace.
* Moving this out of the publicly-visible state and into a private
namespace allows us to drop has_state and discard_state, which
were really only needed so that we could make sure __steps was
not persisted across jobs.
* All of this client-job state managment was moved out of autotest.py
and into server_job.py. All the data this code was getting and
setting was in the job object, so it seemed like a better place
to put it. This also let us drop load_state and save_state, which
were really only there to make it easier to push and pull data
out of the server job object.
* Eliminate get_run_number and set_run_number in favour of a generic
use_sequence_number boolean property (that works on both client
and server automatically). The get_ and set_ code was only being
used to enable and disable an auto-incrementing sequence number to
be tagged to each test run, so we can just make the public
interface a boolean and handle the sequencing under the covers.
* Drop all the test_tag and test_tag_prefix code in favour of a
persistent automatic_test_tag property. Also drops the
show_kernel_in_test_tag flag in favour of just implementing this
in the control file generator using automatic_test_tag.
* Refactor all the test name tagging code into base_job, unifying
the tagging portion of the job.run_test code.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4075 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
fbf73aecdd357094ae05e7d1e4ea99b1ecf93ee4 19-Dec-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Refactor all of the persistent state managing code in the client job
class into the common_lib base job class. The major change is that all
the details of the job state implementation are pulled into a class
base_job.job_state. This class handles all the internal details of the
state managment that job.get_state and job.set_state did, and also
provides a mechanism for creating job properties which are automatically
backed by job state.

This also includes a major change to the semantics of state passed
between autoserv and any Autotest clients it ran. Previously the code
was a bit of a hack, with code in server/autotest.py that would
pre-generate a state file with some pre-set values, and code that would
pull back the state file after the client job and extract some values
from it, as well as some more code that would prepend a bunch of
state initialization calls at the start of the client control file.
Instead of all these hacks, autotest.py now just pushes all of the
state out to the client at the start, and pulls it all back at the end
(with a special exception for __steps that's difficult to eliminate at
this time). So any state set on the server is automatically available
on the client, and any state set on the client is automatically
available on the server.

There are a couple of outstanding issues:
* More of the set_state/get_state code needs to be refactored
to either use the automatic properties, or the job-internal state
API (so that all the internal state is not leaked into the "public"
state visible through get_state and set_state).
* The job_state class is perhaps somewhat overengineered. It's really
just a big, automatically persistect dict-of-dicts. But most of it
is actually code that was being used before, it was just scattered
all over server/autotest.py and client/bin/job.py so it was less
obvious how overgrownt he state managment is.

Risk: High
Visibility: Replaces a bunch of get_*+set_*+default_* methods with
persistent properties, refactors all of the state managment
into a single implementation consistently used in both the
server and client.

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@4022 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
8054b0da315c94d249aaf80512bc133d4cb55b92 25-Nov-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fix a race in _ensure_valid.

Signed-off-by: Josh Gilkerson <jwg@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3975 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
c4e4bd2ae0fcc68af246b18edf58ecf5fc26a861 12-Nov-2009 lmr <lmr@592f7852-d20e-0410-864c-8624ca9c26a4> Get rid of the job.libdir and test.libdir attributes

Get rid of the job.libdir and test.libdir directories. Nothing really uses
them and they don't work properly with what's in SVN right now anyway.

Risk: Low
Visibility: No more job.libdir and test.libdir attributes

Signed-off-by: John Admanski <jadmanski@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3940 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py
da2f143ff7658eca507041cd2393ead3b68cfa5e 06-Nov-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Added a couple of files that were missed in the r3916 commit.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3918 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/common_lib/base_job.py