public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
[parent not found: <837206814.1138871244056506696.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>]
[parent not found: <1680667705.1130361244052268822.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>]
[parent not found: <1788153169.1063471244013561944.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>]
[parent not found: <91999434.1061671244009504146.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>]
* [PATCH] [KVM_Autotest] Added functionality to the preprocessor to run scripts
@ 2009-05-21 20:22 David Huff
  0 siblings, 0 replies; 14+ messages in thread
From: David Huff @ 2009-05-21 20:22 UTC (permalink / raw)
  To: kvm; +Cc: David Huff

This patch will run pre and post scripts
defined in config file with the parameter pre_command
and post_command post_command.

Also exports all the prameters in preprocess for passing
arguments to the script.
---
 client/tests/kvm_runtest_2/kvm_preprocessing.py |   31 +++++++++++++++++++++-
 1 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/client/tests/kvm_runtest_2/kvm_preprocessing.py b/client/tests/kvm_runtest_2/kvm_preprocessing.py
index c9eb35d..02df615 100644
--- a/client/tests/kvm_runtest_2/kvm_preprocessing.py
+++ b/client/tests/kvm_runtest_2/kvm_preprocessing.py
@@ -135,8 +135,7 @@ def postprocess_vm(test, params, env, name):
                 "Waiting for VM to kill itself..."):
             kvm_log.debug("'kill_vm' specified; killing VM...")
         vm.destroy(gracefully = params.get("kill_vm_gracefully") == "yes")
-
-
+        
 def process(test, params, env, image_func, vm_func):
     """Pre- or post-process VMs and images according to the instructions in params.
 
@@ -169,6 +168,7 @@ def preprocess(test, params, env):
     params -- a dict containing all VM and image parameters
     env -- the environment (a dict-like object)
 
+    Also, runs any setup command defined in the parameter pre_command
     Also, collect some host information, such as the KVM version.
     """
     # Verify the identities of all living VMs
@@ -192,6 +192,22 @@ def preprocess(test, params, env):
             vm.destroy()
             del env[key]
 
+   #execute any pre_commands
+    pre_command = params.get("pre_command")
+    if pre_command:
+        # export environment vars
+        for k in params.keys():
+            kvm_log.info("Adding KVM_TEST_%s to Environment" % (k))
+            os.putenv("KVM_TEST_%s" % (k), str(params[k]))
+
+        # execute command
+        kvm_log.info("Executing command '%s'..." % pre_command)
+        (status, pid, output) = kvm_utils.run_bg("cd %s; %s" % (test.bindir, pre_command),
+                                                 None, kvm_log.debug, "(pre_command) ", timeout=600)
+        if status != 0:
+            kvm_utils.safe_kill(pid, signal.SIGTERM)
+            raise error.TestError, "Custom processing pre_command failed"
+
     # Preprocess all VMs and images
     process(test, params, env, preprocess_image, preprocess_vm)
 
@@ -232,6 +248,8 @@ def postprocess(test, params, env):
     test -- an Autotest test object
     params -- a dict containing all VM and image parameters
     env -- the environment (a dict-like object)
+    
+    Also, runs any command defined in the parameter post_command
     """
     process(test, params, env, postprocess_image, postprocess_vm)
 
@@ -241,6 +259,15 @@ def postprocess(test, params, env):
         kvm_log.debug("'keep_ppm_files' not specified; removing all PPM files from results dir...")
         kvm_utils.run_bg("rm -vf %s" % os.path.join(test.debugdir, "*.ppm"), None, kvm_log.debug, "(rm) ", timeout=5.0)
 
+    #execute any post_commands
+    post_command = params.get("post_command")
+    if post_command:
+        kvm_log.info("Executing command '%s'..." % post_command)
+        (status, pid, output) = kvm_utils.run_bg("cd %s; %s" % (test.bindir, post_command),
+                                                 None, kvm_log.debug, "(post_command) ", timeout=600)
+        if status != 0:
+            kvm_utils.safe_kill(pid, signal.SIGTERM)
+            raise error.TestError, "Custom processing command failed"
 
 def postprocess_on_error(test, params, env):
     """Perform postprocessing operations required only if the test failed.
-- 
1.6.0.6


^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2009-06-03 23:31 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1222268607.226581242993156722.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-05-22 11:58 ` [PATCH] [KVM_Autotest] Added functionality to the preprocessor to run scripts Michael Goldish
2009-05-26 16:07   ` David Huff
2009-05-26 21:08     ` [PATCH][KVM_AUTOTEST] " David Huff
2009-05-31 11:23       ` Avi Kivity
2009-05-27 17:13     ` [PATCH] [KVM_Autotest] " sudhir kumar
     [not found] <837206814.1138871244056506696.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-06-03 19:15 ` [PATCH][KVM_AUTOTEST] " Michael Goldish
     [not found] <1680667705.1130361244052268822.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-06-03 18:05 ` Michael Goldish
2009-06-03 18:17   ` Avi Kivity
     [not found] <1788153169.1063471244013561944.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-06-03  7:21 ` Michael Goldish
2009-06-03  8:13   ` Avi Kivity
     [not found] <91999434.1061671244009504146.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-06-03  6:14 ` Michael Goldish
2009-06-03  6:45   ` Avi Kivity
2009-06-03 23:31   ` Lucas Meneghel Rodrigues
2009-05-21 20:22 [PATCH] [KVM_Autotest] " David Huff

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox