diff mbox

[KVM-AUTOTEST] Add custom install option for kvm_install

Message ID 1242057061-26755-1-git-send-email-mburns@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Mike Burns May 11, 2009, 3:51 p.m. UTC
From: Michael Burns <mburns@redhat.com>


Signed-off-by: Michael Burns <mburns@redhat.com>
---
 client/tests/kvm_runtest_2/control        |   17 ++++++++++++++++-
 client/tests/kvm_runtest_2/kvm_install.py |   13 +++++++++++++
 2 files changed, 29 insertions(+), 1 deletions(-)

Comments

Lucas Meneghel Rodrigues May 11, 2009, 6:52 p.m. UTC | #1
Hi Mike

On Mon, 2009-05-11 at 11:51 -0400, Mike Burns wrote:
> From: Michael Burns <mburns@redhat.com>

The comments I had to make were pretty much covered by Eduardo and Mike
Goldish... 

 1 - We should support passing parameters by both environment variables
and command line arguments
 2 - test.bindir sounds like a better choice of path than the env
variable AUTODIR

> 
> Signed-off-by: Michael Burns <mburns@redhat.com>
> ---
>  client/tests/kvm_runtest_2/control        |   17 ++++++++++++++++-
>  client/tests/kvm_runtest_2/kvm_install.py |   13 +++++++++++++
>  2 files changed, 29 insertions(+), 1 deletions(-)
> 
> diff --git a/client/tests/kvm_runtest_2/control b/client/tests/kvm_runtest_2/control
> index fd68e94..5d022b5 100644
> --- a/client/tests/kvm_runtest_2/control
> +++ b/client/tests/kvm_runtest_2/control
> @@ -41,6 +41,18 @@ link_if_not_exist(pwd, qemu_img, 'qemu-img')
>  
>  # ---------------------
>  # Build and install kvm
> +#
> +# Details of Install options
> +#   Mode: custom
> +#   Description:  install from custom install script
> +#   Parameters needed:
> +#     install_script: 
> +#       location of script relative to the 
> +#       kvm-autotest/client directory
> +#   Note:  For custom parameters for your script, define them as params below.
> +#       They will be available as KVM_INSTALL_<name> in the OS environment
> +#       Example: install_script will be available as KVM_INSTALL_install_script
> +#
>  # ---------------------
>  params = {
>      "name": "kvm_install",
> @@ -57,7 +69,10 @@ params = {
>  
>      ## Install from git
>      "git_repo": 'git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm.git',
> -    "user_git_repo": 'git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm-userspace.git'
> +    "user_git_repo": 'git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm-userspace.git',
> +    
> +    ## Custom install
> +    "install_script": 'tests/kvm_runtest_2/custom_kvm_install.sh'
>  }
>  
>  # Comment the job.run_test line if you do not want to install kvm on the host.
> diff --git a/client/tests/kvm_runtest_2/kvm_install.py b/client/tests/kvm_runtest_2/kvm_install.py
> index 8be5a93..bb664b3 100755
> --- a/client/tests/kvm_runtest_2/kvm_install.py
> +++ b/client/tests/kvm_runtest_2/kvm_install.py
> @@ -77,6 +77,19 @@ def run_kvm_install(test, params, env):
>      elif install_mode == "localsrc":
>          __install_kvm(test, srcdir)
>  
> +    # install from custom script
> +    elif install_mode == "custom":
> +        install_script = params.get("install_script")
> +        script = os.path.join(os.environ['AUTODIR'],install_script)
> +        if not install_script:
> +            message = "Custom script filename not specified"
> +            kvm_log.error(message)
> +            raise error.TestError, message
> +        for k in params.keys():
> +          os.putenv("KVM_INSTALL_%s" % (k), str(params[k]))
> +	kvm_log.info("Running " + script + " to install kvm")
> +        os.system(script)
> +
>      # invalid installation mode
>      else:
>          message = "Invalid installation mode: '%s'" % install_mode

Lucas

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

Patch

diff --git a/client/tests/kvm_runtest_2/control b/client/tests/kvm_runtest_2/control
index fd68e94..5d022b5 100644
--- a/client/tests/kvm_runtest_2/control
+++ b/client/tests/kvm_runtest_2/control
@@ -41,6 +41,18 @@  link_if_not_exist(pwd, qemu_img, 'qemu-img')
 
 # ---------------------
 # Build and install kvm
+#
+# Details of Install options
+#   Mode: custom
+#   Description:  install from custom install script
+#   Parameters needed:
+#     install_script: 
+#       location of script relative to the 
+#       kvm-autotest/client directory
+#   Note:  For custom parameters for your script, define them as params below.
+#       They will be available as KVM_INSTALL_<name> in the OS environment
+#       Example: install_script will be available as KVM_INSTALL_install_script
+#
 # ---------------------
 params = {
     "name": "kvm_install",
@@ -57,7 +69,10 @@  params = {
 
     ## Install from git
     "git_repo": 'git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm.git',
-    "user_git_repo": 'git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm-userspace.git'
+    "user_git_repo": 'git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm-userspace.git',
+    
+    ## Custom install
+    "install_script": 'tests/kvm_runtest_2/custom_kvm_install.sh'
 }
 
 # Comment the job.run_test line if you do not want to install kvm on the host.
diff --git a/client/tests/kvm_runtest_2/kvm_install.py b/client/tests/kvm_runtest_2/kvm_install.py
index 8be5a93..bb664b3 100755
--- a/client/tests/kvm_runtest_2/kvm_install.py
+++ b/client/tests/kvm_runtest_2/kvm_install.py
@@ -77,6 +77,19 @@  def run_kvm_install(test, params, env):
     elif install_mode == "localsrc":
         __install_kvm(test, srcdir)
 
+    # install from custom script
+    elif install_mode == "custom":
+        install_script = params.get("install_script")
+        script = os.path.join(os.environ['AUTODIR'],install_script)
+        if not install_script:
+            message = "Custom script filename not specified"
+            kvm_log.error(message)
+            raise error.TestError, message
+        for k in params.keys():
+          os.putenv("KVM_INSTALL_%s" % (k), str(params[k]))
+	kvm_log.info("Running " + script + " to install kvm")
+        os.system(script)
+
     # invalid installation mode
     else:
         message = "Invalid installation mode: '%s'" % install_mode