[autotest] Disable post-test and iteration sysinfo in provisioning

Sysinfo is taking 2 mins in provisioning. Post-provisioning
sysinfo is not that interesting. And in case a provisioning job
fails, the following repair will still collect logs.

Also disable per-iteration sysinfo which doesn't make sense
for provisioning since it only run once.

BUG=chromium:426141
TEST=Run a provisioning job and observe only pre-test sysinfo
is collected.

Change-Id: I57c95abb410a3be31b34e093f6a67e668ea4249c
Reviewed-on: https://chromium-review.googlesource.com/243361
Reviewed-by: Fang Deng <[email protected]>
Tested-by: Fang Deng <[email protected]>
Commit-Queue: Fang Deng <[email protected]>
diff --git a/server/site_tests/provision_AutoUpdate/control b/server/site_tests/provision_AutoUpdate/control
index 04895a6..f6ab4cf 100644
--- a/server/site_tests/provision_AutoUpdate/control
+++ b/server/site_tests/provision_AutoUpdate/control
@@ -38,8 +38,13 @@
     job.sysinfo.add_logdir(constants.AUTOUPDATE_PRESERVE_LOG)
 
     host = hosts.create_host(machine, initialize=False)
+    # Only collect pre-test sysinfo to save time.
     job.run_test('provision_AutoUpdate', host=host, value=value,
-                 disable_sysinfo=False)
+                 disable_sysinfo=False,
+                 disable_before_test_sysinfo=False,
+                 disable_before_iteration_sysinfo=True,
+                 disable_after_test_sysinfo=True,
+                 disable_after_iteration_sysinfo=True)
 
 
 job.parallel_simple(run, machines)
diff --git a/server/test.py b/server/test.py
index c184d65..f9cbdf4 100644
--- a/server/test.py
+++ b/server/test.py
@@ -228,11 +228,33 @@
 
 
 def runtest(job, url, tag, args, dargs):
+    """Server-side runtest.
+
+    @param job: A server_job instance.
+    @param url: URL to the test.
+    @param tag: Test tag that will be appended to the test name.
+                See client/common_lib/test.py:runtest
+    @param args: args to pass to the test.
+    @param dargs: key-val based args to pass to the test.
+    """
+
+    disable_before_test_hook = dargs.pop('disable_before_test_sysinfo', False)
+    disable_after_test_hook = dargs.pop('disable_after_test_sysinfo', False)
+    disable_before_iteration_hook = dargs.pop(
+            'disable_before_iteration_sysinfo', False)
+    disable_after_iteration_hook = dargs.pop(
+            'disable_after_iteration_sysinfo', False)
+
     if not dargs.pop('disable_sysinfo', False):
         logger = _sysinfo_logger(job)
-        logging_args = [logger.before_hook, logger.after_hook,
-                        logger.before_iteration_hook,
-                        logger.after_iteration_hook]
+        logging_args = [
+            logger.before_hook if not disable_before_test_hook else None,
+            logger.after_hook if not disable_after_test_hook else None,
+            (logger.before_iteration_hook
+                 if not disable_before_iteration_hook else None),
+            (logger.after_iteration_hook
+                 if not disable_after_iteration_hook else None),
+        ]
     else:
         logger = None
         logging_args = [None, None, None, None]