History log of /external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
29a1699233e8ab15056d3d820dbad76728c8e4a6 22-Sep-2015 Dan Shi <dshi@chromium.org> [autotest] Enable job_retry in suite_scheduler

With this change, one can add "job_retry: True" in suite_scheduler.ini to enable
job retry. file_bugs should also be set to True for job retry to work.

BUG=chromium:534742
TEST=unittest

DEPOLY=suite_scheduler

Change-Id: I0b4fa5d2c797abef23ce668e09bc1a16891ef03e
Reviewed-on: https://chromium-review.googlesource.com/301387
Commit-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Mungyung Ryu <mkryu@google.com>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
a25e0d48f2c15b7c4d430b671aaee9cb56c8fb1e 24-Jul-2015 Dan Shi <dshi@chromium.org> [autotest] Support scheduling suite jobs need firmware update in suite_scheduler.

Sample entry in suite_scheduler.ini will be like:

This should create faft_ec suite when new build created on firmware branch,
tot CrOS build is used. Test is from ChromeOS branch.
Test command:
/usr/local/autotest/site_utils/suite_scheduler/suite_scheduler.py -b \
-d /usr/local/autotest/logs -f /usr/local/autotest/test_suite_scheduler.ini \
-r /tmp/_autotmp_0Wmh0i_suite_scheduler --e new_build \
-i veyron_jerry-firmware/R41-6588.106.0

[faft]
run_on: new_build
suite: faft_ec
branch_specs: firmware
cros_build_spec: tot
test_source: cros
boards: veyron_jerry
pool: faft_test

This should create faft_ec suite when new build created on R44 branch,
tot firmware build on firmware branch is used. Test is from firmware branch.
Test command:
/usr/local/autotest/site_utils/suite_scheduler/suite_scheduler.py -b \
-d /usr/local/autotest/logs -f /usr/local/autotest/test_suite_scheduler.ini \
-r /tmp/_autotmp_0Wmh0i_suite_scheduler --e new_build \
-i veyron_jerry-release/R44-7077.90.0

[faft2]
run_on: new_build
suite: faft_ec
branch_specs: ==tot-2
firmware_rw_build_spec: firmware
test_source: firmware
boards: veyron_jerry
pool: faft_test

BUG=chromium:513409
TEST=local run suite_scheduler command as mentioned in commit message.

Change-Id: I8976c5af6ff771cd0ca409e55ffbbe1634c4cf4d
Reviewed-on: https://chromium-review.googlesource.com/288900
Trybot-Ready: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Wai-Hong Tam <waihong@chromium.org>
Reviewed-by: Simran Basi <sbasi@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Dan Shi <dshi@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
d8f940e43413b52c7ba508423b939295ef74ce34 30-Apr-2015 Fang Deng <fdeng@chromium.org> [autotest] Consolidate Suite scheduler bug.

Suite scheduler bug now contains clearer and more helpful information
about what is the problem and how to fix.

For each <build, suite, type of control file error>, only one bug will be filed.
Example:
https://code.google.com/p/autotest-bug-filing-test/issues/detail?id=2271

TEST=Unittest;File a SuiteSchedulerBug.

>> import common
>> from autotest_lib.client.common_lib import error
>> e = error.ControlFileNotFound('A mesage')
>> from autotest_lib.server.cros.dynamic_suite import reporting
>> b = reporting.SuiteSchedulerBug('bvt', 'R43-6332.0.0', 'x86-alex', e)
>> reporting.Reporter().report(b, ignore_duplicate=True)

BUG=chromium:406434
DEPLOY=suite schedueler;

Change-Id: I6e89c24b49541fed89906974ff44b319d7faf459
Reviewed-on: https://chromium-review.googlesource.com/268636
Tested-by: Fang Deng <fdeng@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
a5d645670d2766765ce73f39b5ab9e7f46886c4d 27-Aug-2014 Alex Miller <milleral@chromium.org> [autotest] suite_scheduler: Don't die on a TimeoutException.

If we happen to not be able to contact the AFE, just conservatively
assume that we shouldn't run that request. This way, if we happen to
time out while scheduling nightly suites, we don't just crash and give
up on scheduling all of them.

BUG=chromium:407701
DEPLOY=suite_scheduler
TEST=unit

Change-Id: I29884be237cc8697f614352295e5b7891e64de7f
Reviewed-on: https://chromium-review.googlesource.com/214322
Tested-by: Alex Miller <milleral@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
b6ec8ae8b13902110f664cf51e3a1d9b43c9f8f3 23-Apr-2014 Simran Basi <sbasi@chromium.org> [autotest]: Run suites from AFE.

* Updated the AFE to allow for suite runs. When an image is provided
the create_job RPC will redirect to the create_suite_job RPC instead.

* Updated create_suite_job to allow for a control_file to be supplied.
create_suite_job will use this control file rather than what the
devserver stages when it creates the suite job.

* Removed the parameterized job code from create_job as it is not used
and broken.

* The create_job page now includes a 'Pool' text box to specify for
these jobs.

BUG=chromium:358579
TEST=Able to launch suite jobs from run_suite and AFE. And regular tests
kicked off via the AFE still work as well. rpc_interface and
site_rpc_interface unittests, suite_scheduler unittests.
DEPLOY=apache,afe,suite_scheduler

Change-Id: I53312419c32740e78fc07598babeb497c162ba81
Reviewed-on: https://chromium-review.googlesource.com/194349
Reviewed-by: Simran Basi <sbasi@chromium.org>
Commit-Queue: Simran Basi <sbasi@chromium.org>
Tested-by: Simran Basi <sbasi@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
6de2bdedc42b9c6226730ad9ba3e64a8a0bd104d 26-Mar-2014 Prashanth B <beeps@google.com> [autotest] Pipe file bugs through suite_scheduler.

With the introduction of no-wait we lost the ability to file
bugs on suite_scheduler tests. This cl fixes it by piping
file_bugs from the ini file through the create_suite_job request,
and setting no-wait appropriately.

This cl also turns on bug filing for kernel_daily_benchmark.

TEST=Ran unittests, added unittest, ran a suite through
a simulated event and filed bugs.
BUG=chromium:326606, chromium:356444

Change-Id: Iaab008ef1b8c5964fa34c2e95551d29258b508db
Reviewed-on: https://chromium-review.googlesource.com/191633
Reviewed-by: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
abbe09600d73d77af92157027a20661c035be01e 11-Dec-2013 J. Richard Barnette <jrbarnette@chromium.org> Allow lab status to block based on a build regex.

Previously, the lab status could contain a string to block testing
based on the board. With this change, the status can block any
build that matches a regex in the status. This allows closing the
lab to either a build or a milestone. It also allows closing the
lab for other more specific conditions, for anyone desperate enough
to want to.

BUG=chromium:220934
TEST=unit tests

Change-Id: I8a44f5e9be504415a7c5bd73c714c778bf684d2c
Reviewed-on: https://chromium-review.googlesource.com/179544
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Richard Barnette <jrbarnette@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
334f08229806e279c7107b86ab1847625577e0ea 03-Dec-2013 Dan Shi <dshi@chromium.org> [autotest] Change suite job to not waiting for results in suite scheduler.

This CL changes the default behavior of suite job to not waiting for each test
job's result. This helps to reduce the number of hostless job in drone.

BUG=chromium:316990
TEST=unittest
DEPLOY=suite_scheduler

Change-Id: I61f7eba1e1b2fb761e9077ecdbdf74ed04cd0424
Reviewed-on: https://chromium-review.googlesource.com/178669
Commit-Queue: Dan Shi <dshi@chromium.org>
Tested-by: Dan Shi <dshi@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
fe023260259bf7e80bd8a1a3c66eab2fff4e234e 29-Sep-2013 beeps <beeps@chromium.org> [autotest] Deduping scheduler cannot file bugs with owner=sheriff.

Sometimes the sheriff isn't available because the waterfall is managed
by the channel. The bug filer is unforgiving when we try to assign the
bug to an invalid id (eg:foo@chromium.org), but will silently move on
if we try to cc an invalid id.

This cl cc's the sheriff to deduping_scheduler bugs, and adds the Hardware-lab
label so these bugs don't go unnoticed when the waterfall is managed by the
channel. It also fixes the error message in the bug filer to surface bad owner
failures.

TEST=Filed bugs with an invalid sheriff as cc.
BUG=chromium:301140

Change-Id: I6a588cd0601cb9d4e62d0bcf38d336766341bddf
Reviewed-on: https://chromium-review.googlesource.com/171008
Reviewed-by: Prashanth B <beeps@chromium.org>
Commit-Queue: Prashanth B <beeps@chromium.org>
Tested-by: Prashanth B <beeps@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
c7bcf8bf70d6e40aa4d37528f75b5a98b0f7a00e 08-Sep-2013 Alex Miller <milleral@chromium.org> [autotest] Set timeout and priority based on frequency of scheduling.

Out-of-band suites now have variable priority and duration based on the
event that kicks off the task.

Event | Priority | Duration
new_build | PostBuild | 12 hours
nightly | Daily | One day
weekly | Weekly | One week

This will mean that out-of-band suites will have lower priority than
user-created jobs in the lab (which are made with the Default priority)
and much lower than the inline build processes. The ability for a
Weekly suite to live for a whole week is to compensate for this drop in
priority.

I expect that this will fix a lot of the problems we have with
overlapping pools. Now if we overlapped pool:bvt with pool:suites, we
wouldn't see out-of-band suites starving the BVT out of machines, as BVT
would have a higher priority and thus preempt the out-of-band suites.

BUG=chromium:221264
DEPLOY=suite_scheduler
TEST=unit, force build and saw timeouts and priorities appear correctly

Change-Id: I604b7869d7fe16859f09a9effb11cbcb33980e99
Reviewed-on: https://chromium-review.googlesource.com/168569
Reviewed-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
7d658cf6bade565c1098fd7b47075e96e7b542ca 05-Sep-2013 Alex Miller <milleral@chromium.org> [autotest] Thread priority from create_suite_job through to create_job.

This schedules a suite job itself at the same priority level of its
tests, and also injects the priority value into the suite control files.

The change to thread priority through from dynamic_suite into create_job
needs to happen concurrently, because the type of `priority` is changing
from a string to an int. This also means everything that passes in a
priority gets fixed up in this CL.

suite_scheduler has also been tweaked to schedule all tests at the
PostBuild priority (for now...).

This also does all of the work to get priority to show up by name
instead of by integral value. In the create_job pane, we disallow
anyone to schedule a job at a priority that would preempt major build
processes (anything coming from a waterfall). However, all old jobs are
shown at the integral value, because showing two seperate priority
scales at the same time would be incredibly confusing. (Especially
since URGENT would be incredibly low priority)

BUG=chromium:250583
DEPLOY=afe, apache, suite_scheduler
TEST=unit, run_suite with a priority level

Change-Id: I9ecf5ceed5c58bd8ee0815c6d15f4aba300082fe
Reviewed-on: https://chromium-review.googlesource.com/168143
Reviewed-by: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
Commit-Queue: Alex Miller <milleral@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
a776c8bae51a0b5472602bf66ebd903dc779a6ab 27-Aug-2013 Keyar Hood <keyar@chromium.org> [autotest] Create generic bug filer function.

This makes it easier to file simple generic bugs. The user doesn't need to
create the Bug, create the Reporter and then call report().

BUG=None
TEST=Unittests. Manual test for passing_experimental.py.

Change-Id: I6d27cfa6a72b8dd4d22d8301b1c3105b90363a5a
Reviewed-on: https://chromium-review.googlesource.com/67009
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Tested-by: Keyar Hood <keyar@chromium.org>
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
8c350449210e6235d5922c61fce347f5a160e81f 09-Aug-2013 Keyar Hood <keyar@chromium.org> [autotest]: Refactor bug filing.

This creates a new Bug class that TestFailure now derives from. This allows us
to file bugs for issues that are not test failures.

BUG=chromium:254256
TEST=Unit tests and ran the dummy suite and saw that the tests were deduped.

Change-Id: I104489e9627a64506fc9c206392f1297fa538c44
Reviewed-on: https://gerrit.chromium.org/gerrit/65898
Reviewed-by: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Keyar Hood <keyar@chromium.org>
Tested-by: Keyar Hood <keyar@chromium.org>
Commit-Queue: Keyar Hood <keyar@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
8f84d13b337b4a5a15c3de912e1843a3b14169b5 11-Aug-2013 beeps <beeps@chromium.org> [autotest] Remove Milestone from automatic bugs.

This cl also does:
1. Cleanup: removed the old tracker completely, since we've been
using phapi for ~ a month and things are fine.
2. Fixes unittest: New unittest only verify basic control flow
for filing a new issue/deduping an issuei, since the core bug
filer is dependent on several external modules and a functional
test on a fake project is far more effective than unittests.

TEST=Ran a suite and filed/deduped bugs.
BUG=chromium:267560, chromium:271070

Change-Id: I5e238d647608c8321f4308eede309d58b94ab3a3
Reviewed-on: https://gerrit.chromium.org/gerrit/65551
Tested-by: Prashanth Balasubramanian <beeps@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Commit-Queue: Prashanth Balasubramanian <beeps@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
3197b39f82eb92afff33c7d44b805afe120c7627 26-Jun-2013 Fang Deng <fdeng@chromium.org> [autotest] Suite scheduler files bugs for exceptions raised in create_suite_job

This CL is to make suite scheduler file bugs using our bug filer for
several types of exceptions raised by create_suite_job. The exceptions are:
- ControlFileNotFound
- NoControlFileList
- ControlFileEmpty
- ControlFileMalformed

To enable bug filing, use '-b' option of suite_scheduler.py
Bug will be assgined to Lab sheriff.

This CL changes the private method _create_bug_report to public in
server/cros/dynamic_suite/reporting.py, so that we can file a general
bug that is not a test failure. After crbug.com/254256 is fixed,
the bug filing logic in deduping_scheduler.py should be modified.

This CL also moves ParseBuildName() from base_event.py to site_utils,
to avoid import loop. Callers of this methods are updated.

BUG=chromium:242569
TEST=deduping_scheduler_unittest.py;driver_unittest.py;base_event_unittest.py;
ran on chromeos-lab1.hot and confirm bug are properly filed.
DEPLOY=suite_scheduler

Change-Id: Ia57a2e625b7b39dcfe51892c208613c927f3a54e
Reviewed-on: https://gerrit.chromium.org/gerrit/60158
Commit-Queue: Fang Deng <fdeng@chromium.org>
Reviewed-by: Fang Deng <fdeng@chromium.org>
Tested-by: Fang Deng <fdeng@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
d83ef449fc80c663ce90a3a07aa15d6c25ee08a1 17-Jan-2013 Aviv Keshet <akeshet@chromium.org> [autotest] Only integer or None as num argument in create_suite_job

Cleanup to reduce confusion and type casting back and forth between int
and string.

BUG=chromium-os:37936
TEST=unit test that non-integer or None num arguments throw appropriate
exception; unit test that integer arguments get passed along correctly;
ran a suite locally to ensure rpc call still working

Change-Id: Id8b8e0dd5a08db2ebec67cdba13b2b1d8eb0b149
Reviewed-on: https://gerrit.chromium.org/gerrit/41791
Reviewed-by: Aviv Keshet <akeshet@chromium.org>
Tested-by: Aviv Keshet <akeshet@chromium.org>
Commit-Queue: David James <davidjames@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.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/site_utils/suite_scheduler/deduping_scheduler.py
3eeaf0a16652998b31c425bc5007fdc9fed60e38 09-Aug-2012 Chris Masone <cmasone@chromium.org> [autotest] suite_scheduler.py should accept, honor 'num' in Task definitions

The suite scheduler needs to allow a sharding factor (num) to be
specified in Task stanzas, and pass it through to create_suite_job()
if specified.

BUG=chromium-os:33194
TEST=unit
TEST=create a suite_scheduler config that provides a 'num' field for
TEST=at least one task. While running, watch the RPC log of the AFE
TEST=to ensure that your desired num is getting passed, but that
TEST=None is getting passed for other Tasks.
STATUS=Fixed

Change-Id: I049d76a835900df0c58502f40334a5b4c6c93401
Reviewed-on: https://gerrit.chromium.org/gerrit/29810
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
cd214e0d2fe515b3cc7faacc44e4e539142670ea 11-Jul-2012 Chris Masone <cmasone@chromium.org> [autotest] DedupingScheduler.GetHosts() should return results

We missed a return statement in GetHosts(), meaning it would always
return None. Whoops.

BUG=chromium-os:32459
TEST=unit
TEST=use suite_scheduler to force a new_build event on an R22 build. it should schedule suites.
STATUS=Fixed

Change-Id: I8792c17a3a99d43d78dd6ffbb8b7307a210fdc8b
Reviewed-on: https://gerrit.chromium.org/gerrit/27093
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Alex Miller <milleral@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
c15c6b4f2be888ff8631d43571d697ccf287efd1 09-Jul-2012 Scott Zawalski <scottz@google.com> Fix a few issues with some recent changes to suite_scheduler.

EnumeratorException was not fully referenced causing crashes.
In deduping_scheduler a function definition was missing self.

Start printing tracebacks in the error messages logged in emailed to make it
easier to track down issues like the above.

TEST=Unittests
BUG=None

Change-Id: Ieee88f9a18debedb1dafdd92fd811d271e4f3816
Reviewed-on: https://gerrit.chromium.org/gerrit/26943
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Tested-by: Scott Zawalski <scottz@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
511a9e3a1cfc2c6dd1263c8f6cb667ab12cd7a6f 03-Jul-2012 Alex Miller <milleral@chromium.org> [autotest] Check pool and board when scheduling a suite.

When scheduling a suite, check that a board of a certain type actually
exists in a pool before scheduling a test to run on that board.

BUG=chromium-os:30641
TEST=unit

Change-Id: If2776243e6893a9bdd4f23040effdbcb0a629dab
Reviewed-on: https://gerrit.chromium.org/gerrit/26684
Reviewed-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Alex Miller <milleral@chromium.org>
Tested-by: Alex Miller <milleral@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
6d388bce820b54792aa51e7294ac8c3c50bec036 14-May-2012 Chris Masone <cmasone@chromium.org> [autotest] Tighten up suite_scheduler's job deduping logic

The deduping logic in suite scheduler used to simply check for a
job name that began with the build name (e.g. x86-mario/R20-2226.0.0)
and ended with the suite name (e.g. 'bvt'). Since we have suites
named both 'regression' and 'kernel.daily.regression', that's not
good enough.

This Cl updates the logic to look for job names that end with
'control.<suite_name>'

BUG=chromium-os:30848
TEST=make a config that runs two suites whose names would conflict and test against a local autotest instance

Change-Id: I5061dca1f0bcd96107771a6a565a788e8caa9e4e
Reviewed-on: https://gerrit.chromium.org/gerrit/22579
Tested-by: Chris Masone <cmasone@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
67f06d6003bb11f03f925810272f595d79dce44a 13-Apr-2012 Chris Masone <cmasone@chromium.org> [autotest] Enable forcing an event to fire and schedule suites

We need to ability to make the scheduler force an event, so we can backfill
test results, if need be. This is also handy for testing stuff.

Also, fix a bug in comparing build branch names to branch specifications
encoded in Tasks. Before, every Task would run on every release branch,
even if the Task said it should only run on factory and/or firmware.

BUG=chromium-os:27586
TEST=unit
TEST=./suite_scheduler.py -f suite_scheduler_test.ini -e nightly -i x86-mario-release/R20-2130.0.0-a1-b1905

Change-Id: I58217c358d8b85faf49a940d01bca184dc8590e0
Reviewed-on: https://gerrit.chromium.org/gerrit/20124
Commit-Ready: Chris Masone <cmasone@chromium.org>
Reviewed-by: Chris Masone <cmasone@chromium.org>
Tested-by: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
fad911ada4f6126280765f15204eaf8b3b4bc437 29-Mar-2012 Chris Masone <cmasone@chromium.org> [autotest] Add TriggerableJob and TimedTrigger to scheduler

The new scheduler will parse its config file and create a number
of TriggerableJob instances, which will be hung off of the
appropriate Trigger object. So, if your job kicks off 'nightly',
the scheduler will attach the TriggerableJob for your job to the
Nightly object. Then, every time the scheduler wakes up, it asks
each Trigger if it should be Fire()d. If so, the scheduler
will Fire() the Trigger, which will Trigger() every TriggerableJob.
Note also that, if a given Trigger() call returns false, the Trigger
will throw away the associated TriggerableJob. This allows for one-shot
Triggers.

BUG=chromium-os:27586
TEST=unit tests

Change-Id: Ibc892fd9afcd7a99594397000c6061224282b19f
Reviewed-on: https://gerrit.chromium.org/gerrit/19311
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py
fbdd0706636487d3c88cca67bac4cd82a81bd079 28-Mar-2012 Chris Masone <cmasone@chromium.org> [autotest] Add de-duping suite scheduling logic for new scheduler

In the new scheduler, we'll rely on naming conventions to detect
duplicate jobs. The DedupingScheduler class will schedule a job for a suite,
given the name, board and build to test -- unless it finds an existing
job.

For example, the existence of a job called:
x86-mario-release/R18-1647.0.0-a1-b1567-test_suites/control.bvt

would prevent us from scheduling a 'bvt' suite for build
'x86-mario-release/R18-1647.0.0-a1-b1567' on board 'x86-mario'.

BUG=chromium-os:27586
TEST=new unit tests

Change-Id: Ida87804dd34600410fef33200881d30f939d9fd0
Reviewed-on: https://gerrit.chromium.org/gerrit/19188
Tested-by: Chris Masone <cmasone@chromium.org>
Reviewed-by: Scott Zawalski <scottz@chromium.org>
Commit-Ready: Chris Masone <cmasone@chromium.org>
/external/autotest/site_utils/suite_scheduler/deduping_scheduler.py