From: David Huff <dhuff@redhat.com>
To: kvm@vger.kernel.org
Cc: David Huff <dhuff@redhat.com>
Subject: [PATCH] [KVM_Autotest] Added functionality to the preprocessor to run scripts
Date: Thu, 21 May 2009 16:22:17 -0400 [thread overview]
Message-ID: <1242937337-20457-1-git-send-email-dhuff@redhat.com> (raw)
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
next reply other threads:[~2009-05-21 20:22 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-21 20:22 David Huff [this message]
[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] <91999434.1061671244009504146.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-06-03 6:14 ` [PATCH][KVM_AUTOTEST] " Michael Goldish
2009-06-03 6:45 ` Avi Kivity
2009-06-03 23:31 ` Lucas Meneghel Rodrigues
[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] <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] <837206814.1138871244056506696.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-06-03 19:15 ` Michael Goldish
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1242937337-20457-1-git-send-email-dhuff@redhat.com \
--to=dhuff@redhat.com \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.