[PATCH] remember used harness after reboot v3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Jan Stancek <jstancek@xxxxxxxxxx>

If autotest client is run with custom harness, its name is stored
in state file. This allows autotest to continue (e.g. after reboot)
with harness that was specified on first run.

If "--harness" option is present on command line, this
option is used regardless of what is stored in state file.
Added log info about used harness.

Changes from v1: Put the harness debug statement inside the harness
module
Changes from v2: Fix unittest breakage this test was causing. The
underlying unittest code was expecting the default value for the
harness to be None rather than an empty string.

Signed-off-by: Jan Stancek <jstancek@xxxxxxxxxx>
---
 client/bin/harness.py |    4 +++-
 client/bin/job.py     |   15 ++++++++++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/client/bin/harness.py b/client/bin/harness.py
index b4c9dfd..bcb4f96 100644
--- a/client/bin/harness.py
+++ b/client/bin/harness.py
@@ -5,7 +5,7 @@ The interface between the client and the server when hosted.
 
 __author__ = """Copyright Andy Whitcroft 2006"""
 
-import os, sys
+import os, sys, logging
 import common
 
 class harness(object):
@@ -86,6 +86,8 @@ def select(which, job):
     if not which:
         which = 'standalone'
 
+    logging.debug('Selected harness: %s' % which)
+
     harness_name = 'harness_%s' % which
     harness_module = common.setup_modules.import_module(harness_name,
                                                         'autotest_lib.client.bin')
diff --git a/client/bin/job.py b/client/bin/job.py
index 127ed94..23de98c 100644
--- a/client/bin/job.py
+++ b/client/bin/job.py
@@ -174,7 +174,20 @@ class base_client_job(base_job.base_job):
         self._next_step_index = 0
         self._load_state()
 
-        self.harness = harness.select(options.harness, self)
+        # harness is chosen by following rules:
+        # 1. explicitly specified via command line
+        # 2. harness stored in state file (if continuing job '-c')
+        # 3. default harness
+        selected_harness = None
+        if options.harness:
+            selected_harness = options.harness
+            self._state.set('client', 'harness', selected_harness)
+        else:
+            stored_harness = self._state.get('client', 'harness', None)
+            if stored_harness:
+                selected_harness = stored_harness
+
+        self.harness = harness.select(selected_harness, self)
 
         # set up the status logger
         def client_job_record_hook(entry):
-- 
1.7.3.5

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux