Add a new Archiving stage to the scheduler, which runs after Parsing. This stage is responsible for copying results to the results server in a drone setup, a task currently performed directly by the scheduler, and allows for site-specific archiving functionality, replacing the site_parse functionality. It does this by running autoserv with a special control file (scheduler/archive_results.control.srv), which loads and runs code from the new scheduler.archive_results module. The implementation was mostly straightfoward, as the archiving stage is fully analogous to the parser stage. I did make a couple of refactorings:
* factored out the parser throttling code into a common superclass that the ArchiveResultsTask could share
* added some generic flags to Autoserv to duplicate special-case functionality we'd added for the --collect-crashinfo option -- namely, specifying a different pidfile name and specifying that autoserv should allow (and even expect) an existing results directory. in the future, i think it'd be more elegant to make crashinfo collection run using a special control file (as archiving works), rather than a hard-coded command-line option.
* moved call to server_job.init_parser() out of the constructor, since this was an easy source of exceptions that wouldn't get logged.
Note I believe some of the functional test changes slipped into my previous change there, which is why that looks smaller than you'd expect.
Signed-off-by: Steve Howard <showard@google.com>
==== (deleted) //depot/google_vendor_src_branch/autotest/tko/site_parse.py ====
git-svn-id: http://test.kernel.org/svn/autotest/trunk@4070 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/scheduler/drone_utility.py b/scheduler/drone_utility.py
index 82f8b79..0ada995 100755
--- a/scheduler/drone_utility.py
+++ b/scheduler/drone_utility.py
@@ -322,7 +322,7 @@
(hostname, source_path, destination_path))
- def _sync_send_file_to(self, hostname, source_path, destination_path,
+ def sync_send_file_to(self, hostname, source_path, destination_path,
can_fail):
host = create_host(hostname)
try:
@@ -350,7 +350,7 @@
def send_file_to(self, hostname, source_path, destination_path,
can_fail=False):
- self.run_async_command(self._sync_send_file_to,
+ self.run_async_command(self.sync_send_file_to,
(hostname, source_path, destination_path,
can_fail))