You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ta...@apache.org on 2015/03/12 06:41:03 UTC
git commit: updated refs/heads/master to d8bb1fa
Repository: cloudstack
Updated Branches:
refs/heads/master 891b59760 -> d8bb1fad5
CLOUDSTACK-8286: Adding Basic validation test case to test deploying VM from ISO and correcting old regression test case to test HA VM from ISO
Signed-off-by: SrikanteswaraRao Talluri <ta...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d8bb1fad
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d8bb1fad
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d8bb1fad
Branch: refs/heads/master
Commit: d8bb1fad5ed1f2d31f38c632b436eb96f3930b3d
Parents: 891b597
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Thu Feb 26 02:11:52 2015 -0800
Committer: SrikanteswaraRao Talluri <ta...@apache.org>
Committed: Thu Mar 12 11:10:08 2015 +0530
----------------------------------------------------------------------
test/integration/component/test_stopped_vm.py | 12 +-
test/integration/smoke/test_deploy_vm_iso.py | 157 +++++++++++++++++++++
tools/marvin/marvin/config/test_data.py | 17 +--
3 files changed, 162 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d8bb1fad/test/integration/component/test_stopped_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_stopped_vm.py b/test/integration/component/test_stopped_vm.py
index 92822c3..89c8aec 100644
--- a/test/integration/component/test_stopped_vm.py
+++ b/test/integration/component/test_stopped_vm.py
@@ -857,20 +857,12 @@ class TestDeployHaEnabledVM(cloudstackTestCase):
"vm deploy from ISO feature is not supported on %s" %
self.hypervisor.lower())
- if not self.testdata["configurableData"][
- "bootableIso"][self.hypervisor.lower()]["url"]:
- self.skipTest(
- "Bootable Iso URL not present in test data for %s" %
- self.hypervisor)
-
- self.testdata["configurableData"]["bootableIso"]["url"] = self.testdata[
- "configurableData"]["bootableIso"][self.hypervisor.lower()]["url"]
-
self.iso = Iso.create(
self.apiclient,
self.testdata["configurableData"]["bootableIso"],
account=self.account.name,
- domainid=self.account.domainid
+ domainid=self.account.domainid,
+ zoneid=self.zone.id
)
try:
# Download the ISO
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d8bb1fad/test/integration/smoke/test_deploy_vm_iso.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_deploy_vm_iso.py b/test/integration/smoke/test_deploy_vm_iso.py
new file mode 100644
index 0000000..76ba2b7
--- /dev/null
+++ b/test/integration/smoke/test_deploy_vm_iso.py
@@ -0,0 +1,157 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+""" P1 for Deploy VM from ISO
+"""
+# Import Local Modules
+from nose.plugins.attrib import attr
+from marvin.cloudstackTestCase import cloudstackTestCase
+from marvin.lib.utils import cleanup_resources
+from marvin.lib.base import (Account,
+ VirtualMachine,
+ ServiceOffering,
+ Iso,
+ DiskOffering)
+from marvin.lib.common import (get_zone,
+ get_domain,
+ get_template)
+from marvin.codes import PASS
+
+
+class TestDeployVMFromISO(cloudstackTestCase):
+
+ @classmethod
+ def setUpClass(cls):
+
+ cls.testClient = super(TestDeployVMFromISO, cls).getClsTestClient()
+ cls.api_client = cls.testClient.getApiClient()
+
+ cls.testdata = cls.testClient.getParsedTestDataConfig()
+ # Get Zone, Domain and templates
+ cls.domain = get_domain(cls.api_client)
+ cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests())
+
+ cls.template = get_template(
+ cls.api_client,
+ cls.zone.id,
+ cls.testdata["ostype"]
+ )
+
+ # Create service, disk offerings etc
+ cls.service_offering = ServiceOffering.create(
+ cls.api_client,
+ cls.testdata["service_offering"]
+ )
+
+ cls.disk_offering = DiskOffering.create(
+ cls.api_client,
+ cls.testdata["disk_offering"]
+ )
+
+ cls._cleanup = [
+ cls.service_offering,
+ cls.disk_offering
+ ]
+ return
+
+ @classmethod
+ def tearDownClass(cls):
+ try:
+ cleanup_resources(cls.api_client, cls._cleanup)
+ except Exception as e:
+ raise Exception("Warning: Exception during cleanup : %s" % e)
+
+ def setUp(self):
+
+ self.apiclient = self.testClient.getApiClient()
+ self.dbclient = self.testClient.getDbConnection()
+ self.hypervisor = self.testClient.getHypervisorInfo()
+ self.testdata["virtual_machine"]["zoneid"] = self.zone.id
+ self.testdata["virtual_machine"]["template"] = self.template.id
+ self.testdata["iso"]["zoneid"] = self.zone.id
+ self.account = Account.create(
+ self.apiclient,
+ self.testdata["account"],
+ domainid=self.domain.id
+ )
+ self.cleanup = [self.account]
+ return
+
+ def tearDown(self):
+ try:
+ self.debug("Cleaning up the resources")
+ cleanup_resources(self.apiclient, self.cleanup)
+ self.debug("Cleanup complete!")
+ except Exception as e:
+ self.debug("Warning! Exception in tearDown: %s" % e)
+
+ @attr(
+ tags=[
+ "advanced",
+ "eip",
+ "advancedns",
+ "basic",
+ "sg"],
+ required_hardware="true")
+ def test_deploy_vm_from_iso(self):
+ """Test Deploy Virtual Machine from ISO
+ """
+
+ # Validate the following:
+ # 1. deploy VM using ISO
+ # 2. listVM command should return the deployed VM. State of this VM
+ # should be "Running".
+ self.hypervisor = self.testClient.getHypervisorInfo()
+ if self.hypervisor.lower() in ['lxc']:
+ self.skipTest(
+ "vm deploy from ISO feature is not supported on %s" %
+ self.hypervisor.lower())
+
+ self.iso = Iso.create(
+ self.apiclient,
+ self.testdata["configurableData"]["bootableIso"],
+ account=self.account.name,
+ domainid=self.account.domainid,
+ zoneid=self.zone.id
+ )
+ try:
+ # Download the ISO
+ self.iso.download(self.apiclient)
+
+ except Exception as e:
+ raise Exception("Exception while downloading ISO %s: %s"
+ % (self.iso.id, e))
+
+ self.debug("Registered ISO: %s" % self.iso.name)
+ self.debug("Deploying instance in the account: %s" %
+ self.account.name)
+ self.virtual_machine = VirtualMachine.create(
+ self.apiclient,
+ self.testdata["virtual_machine"],
+ accountid=self.account.name,
+ domainid=self.account.domainid,
+ templateid=self.iso.id,
+ serviceofferingid=self.service_offering.id,
+ diskofferingid=self.disk_offering.id,
+ hypervisor=self.hypervisor
+ )
+
+ response = self.virtual_machine.getState(
+ self.apiclient,
+ VirtualMachine.RUNNING)
+ self.assertEqual(response[0], PASS, response[1])
+ return
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d8bb1fad/tools/marvin/marvin/config/test_data.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/config/test_data.py b/tools/marvin/marvin/config/test_data.py
index 47eb453..a43021b 100644
--- a/tools/marvin/marvin/config/test_data.py
+++ b/tools/marvin/marvin/config/test_data.py
@@ -1501,23 +1501,12 @@ test_data = {
},
"bootableIso":
{
- "displaytext": "Test ISO",
+ "displaytext": "Test Bootable ISO",
"name": "testISO",
"bootable": True,
"ispublic": False,
- "kvm": {
- "url": ""
- },
- "vmware": {
- "url": ""
- },
- "xenserver": {
- "url": ""
- },
- "hyperv": {
- "url": ""
- },
- "ostype": 'CentOS 5.3 (64-bit)',
+ "url": "http://10.147.40.145/ISO/CentOS-6.3-x86_64-bin-DVD1.iso",
+ "ostype": 'CentOS 6.3 (64-bit)',
"mode": 'HTTP_DOWNLOAD'
},
"setHostConfigurationForIngressRule": False