You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ga...@apache.org on 2015/05/27 14:57:51 UTC

git commit: updated refs/heads/master to d406e5b

Repository: cloudstack
Updated Branches:
  refs/heads/master 646e0d99d -> d406e5b83


CLOUDSTACK-8518: Fix issues in testpath_disable_enable_zone.py

Signed-off-by: Gaurav Aradhye <ga...@clogeny.com>
This closes #319


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d406e5b8
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d406e5b8
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d406e5b8

Branch: refs/heads/master
Commit: d406e5b83e1886493750f9400f89bd9c753da3e5
Parents: 646e0d9
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Wed May 27 18:25:18 2015 +0530
Committer: Gaurav Aradhye <ga...@clogeny.com>
Committed: Wed May 27 18:27:21 2015 +0530

----------------------------------------------------------------------
 .../maint/testpath_disable_enable_zone.py       | 253 +++++++++++--------
 1 file changed, 145 insertions(+), 108 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d406e5b8/test/integration/component/maint/testpath_disable_enable_zone.py
----------------------------------------------------------------------
diff --git a/test/integration/component/maint/testpath_disable_enable_zone.py b/test/integration/component/maint/testpath_disable_enable_zone.py
index aff3ae9..91b31f0 100644
--- a/test/integration/component/maint/testpath_disable_enable_zone.py
+++ b/test/integration/component/maint/testpath_disable_enable_zone.py
@@ -19,7 +19,8 @@
 
 from nose.plugins.attrib import attr
 from marvin.cloudstackTestCase import cloudstackTestCase
-from marvin.lib.utils import (cleanup_resources)
+from marvin.lib.utils import (cleanup_resources,
+                              validateList)
 from marvin.lib.base import (Account,
                              VirtualMachine,
                              ServiceOffering,
@@ -53,6 +54,7 @@ from marvin.codes import (ENABLED,
                           DISABLED,
                           ENABLE,
                           DISABLE,
+                          PASS
                           )
 import time
 from marvin.sshClient import SshClient
@@ -66,6 +68,9 @@ class TestDisableEnableZone(cloudstackTestCase):
         cls.apiclient = testClient.getApiClient()
         cls.testdata = testClient.getParsedTestDataConfig()
         cls.hypervisor = cls.testClient.getHypervisorInfo()
+        cls.snapshotSupported = True
+        if cls.hypervisor.lower() in ["hyperv", "lxc"]:
+            cls.snapshotSupported = False
 
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.apiclient)
@@ -114,7 +119,7 @@ class TestDisableEnableZone(cloudstackTestCase):
     def tearDownClass(cls):
         try:
             zoneList = Zone.list(cls.apiclient, id=cls.zone.id)
-            if zoneList[0].allocationstate == DISABLED:
+            if zoneList[0].allocationstate.lower() == DISABLED.lower():
                 cmd = updateZone.updateZoneCmd()
                 cmd.id = zoneList[0].id
                 cmd.allocationstate = ENABLED
@@ -221,19 +226,20 @@ class TestDisableEnableZone(cloudstackTestCase):
             listall=True
         )
 
-        Snapshot.create(
-            self.apiclient,
-            root_volume[0].id)
+        if self.snapshotSupported:
+            Snapshot.create(
+                self.apiclient,
+                root_volume[0].id)
 
-        snapshots = list_snapshots(
-            self.apiclient,
-            volumeid=root_volume[0].id,
-            listall=True)
+            snapshots = list_snapshots(
+                self.apiclient,
+                volumeid=root_volume[0].id,
+                listall=True)
 
-        Template.create_from_snapshot(
-            self.apiclient,
-            snapshots[0],
-            self.testdata["privatetemplate"])
+            Template.create_from_snapshot(
+                self.apiclient,
+                snapshots[0],
+                self.testdata["privatetemplate"])
 
         builtin_info = get_builtin_template_info(self.apiclient, self.zone.id)
         self.testdata["privatetemplate"]["url"] = builtin_info[0]
@@ -280,10 +286,11 @@ class TestDisableEnableZone(cloudstackTestCase):
             listall=True
         )
 
-        with self.assertRaises(Exception):
-            Snapshot.create(
-                self.userapiclient,
-                root_volume[0].id)
+        if self.snapshotSupported:
+            with self.assertRaises(Exception):
+                Snapshot.create(
+                    self.userapiclient,
+                    root_volume[0].id)
 
         with self.assertRaises(Exception):
             Template.register(
@@ -331,19 +338,20 @@ class TestDisableEnableZone(cloudstackTestCase):
                             "running",
                             "Verify that admin should create new VM")
 
-        Snapshot.create(
-            self.apiclient,
-            root_volume[0].id)
+        if self.snapshotSupported:
+            Snapshot.create(
+                self.apiclient,
+                root_volume[0].id)
 
-        snapshots = list_snapshots(
-            self.apiclient,
-            volumeid=root_volume[0].id,
-            listall=True)
+            snapshots = list_snapshots(
+                self.apiclient,
+                volumeid=root_volume[0].id,
+                listall=True)
 
-        Template.create_from_snapshot(
-            self.apiclient,
-            snapshots[0],
-            self.testdata["privatetemplate"])
+            Template.create_from_snapshot(
+                self.apiclient,
+                snapshots[0],
+                self.testdata["privatetemplate"])
 
         Template.register(
             self.apiclient,
@@ -382,14 +390,15 @@ class TestDisableEnableZone(cloudstackTestCase):
                             "running",
                             "Verify that admin should create new VM")
 
-        Snapshot.create(
-            self.userapiclient,
-            root_volume[0].id)
+        if self.snapshotSupported:
+            Snapshot.create(
+                self.userapiclient,
+                root_volume[0].id)
 
-        snapshots = list_snapshots(
-            self.userapiclient,
-            volumeid=root_volume[0].id,
-            listall=True)
+            snapshots = list_snapshots(
+                self.userapiclient,
+                volumeid=root_volume[0].id,
+                listall=True)
 
         Template.register(
             self.userapiclient,
@@ -479,7 +488,7 @@ class TestDisableEnablePod(cloudstackTestCase):
     def tearDownClass(cls):
         try:
             podList = Pod.list(cls.apiclient, id=cls.pod.id)
-            if podList[0].allocationstate == DISABLED:
+            if podList[0].allocationstate.lower() == DISABLED.lower():
                 cmd = updatePod.updatePodCmd()
                 cmd.id = podList[0].id
                 cmd.allocationstate = ENABLED
@@ -575,19 +584,20 @@ class TestDisableEnablePod(cloudstackTestCase):
             listall=True
         )
 
-        Snapshot.create(
-            self.apiclient,
-            root_volume[0].id)
+        if self.snapshotSupported:
+            Snapshot.create(
+                self.apiclient,
+                root_volume[0].id)
 
-        snapshots = list_snapshots(
-            self.apiclient,
-            volumeid=root_volume[0].id,
-            listall=True)
+            snapshots = list_snapshots(
+                self.apiclient,
+                volumeid=root_volume[0].id,
+                listall=True)
 
-        Template.create_from_snapshot(
-            self.apiclient,
-            snapshots[0],
-            self.testdata["privatetemplate"])
+            Template.create_from_snapshot(
+                self.apiclient,
+                snapshots[0],
+                self.testdata["privatetemplate"])
 
         builtin_info = get_builtin_template_info(self.apiclient, self.zone.id)
         self.testdata["privatetemplate"]["url"] = builtin_info[0]
@@ -633,10 +643,11 @@ class TestDisableEnablePod(cloudstackTestCase):
             listall=True
         )
 
-        with self.assertRaises(Exception):
-            Snapshot.create(
-                self.userapiclient,
-                root_volume[0].id)
+        if self.snapshotSupported:
+            with self.assertRaises(Exception):
+                Snapshot.create(
+                    self.userapiclient,
+                    root_volume[0].id)
 
         with self.assertRaises(Exception):
             Template.register(
@@ -687,19 +698,20 @@ class TestDisableEnablePod(cloudstackTestCase):
                             "Verify that admin should be able \
                                     to create new VM")
 
-        Snapshot.create(
-            self.apiclient,
-            root_volume[0].id)
+        if self.snapshotSupported:
+            Snapshot.create(
+                self.apiclient,
+                root_volume[0].id)
 
-        snapshots = list_snapshots(
-            self.apiclient,
-            volumeid=root_volume[0].id,
-            listall=True)
+            snapshots = list_snapshots(
+                self.apiclient,
+                volumeid=root_volume[0].id,
+                listall=True)
 
-        Template.create_from_snapshot(
-            self.apiclient,
-            snapshots[0],
-            self.testdata["privatetemplate"])
+            Template.create_from_snapshot(
+                self.apiclient,
+                snapshots[0],
+                self.testdata["privatetemplate"])
 
         Template.register(
             self.apiclient,
@@ -737,14 +749,15 @@ class TestDisableEnablePod(cloudstackTestCase):
                             "running",
                             "Verify that admin should create new VM")
 
-        Snapshot.create(
-            self.userapiclient,
-            root_volume[0].id)
+        if self.snapshotSupported:
+            Snapshot.create(
+                self.userapiclient,
+                root_volume[0].id)
 
-        snapshots = list_snapshots(
-            self.userapiclient,
-            volumeid=root_volume[0].id,
-            listall=True)
+            snapshots = list_snapshots(
+                self.userapiclient,
+                volumeid=root_volume[0].id,
+                listall=True)
 
         Template.register(
             self.userapiclient,
@@ -841,7 +854,7 @@ class TestDisableEnableCluster(cloudstackTestCase):
     def tearDownClass(cls):
         try:
             clusterList = Cluster.list(cls.apiclient, id=cls.cluster.id)
-            if clusterList[0].allocationstate == DISABLED:
+            if clusterList[0].allocationstate.lower() == DISABLED.lower():
                 cmd = updateCluster.updateClusterCmd()
                 cmd.id = clusterList[0].id
                 cmd.allocationstate = ENABLED
@@ -955,19 +968,20 @@ class TestDisableEnableCluster(cloudstackTestCase):
             listall=True
         )
 
-        Snapshot.create(
-            self.apiclient,
-            root_volume[0].id)
+        if self.snapshotSupported:
+            Snapshot.create(
+                self.apiclient,
+                root_volume[0].id)
 
-        snapshots = list_snapshots(
-            self.apiclient,
-            volumeid=root_volume[0].id,
-            listall=True)
+            snapshots = list_snapshots(
+                self.apiclient,
+                volumeid=root_volume[0].id,
+                listall=True)
 
-        Template.create_from_snapshot(
-            self.apiclient,
-            snapshots[0],
-            self.testdata["privatetemplate"])
+            Template.create_from_snapshot(
+                self.apiclient,
+                snapshots[0],
+                self.testdata["privatetemplate"])
 
         builtin_info = get_builtin_template_info(self.apiclient, self.zone.id)
         self.testdata["privatetemplate"]["url"] = builtin_info[0]
@@ -1015,10 +1029,11 @@ class TestDisableEnableCluster(cloudstackTestCase):
             listall=True
         )
 
-        with self.assertRaises(Exception):
-            Snapshot.create(
-                self.userapiclient,
-                root_volume[0].id)
+        if self.snapshotSupported:
+            with self.assertRaises(Exception):
+                Snapshot.create(
+                    self.userapiclient,
+                    root_volume[0].id)
 
         with self.assertRaises(Exception):
             Template.register(
@@ -1070,9 +1085,10 @@ class TestDisableEnableCluster(cloudstackTestCase):
                             "running",
                             "Verify that admin should create new VM")
 
-        Snapshot.create(
-            self.apiclient,
-            root_volume[0].id)
+        if self.snapshotSupported:
+            Snapshot.create(
+                self.apiclient,
+                root_volume[0].id)
 
         # Non root user
         user_vm_new = VirtualMachine.create(
@@ -1089,9 +1105,10 @@ class TestDisableEnableCluster(cloudstackTestCase):
                             "running",
                             "Verify that admin should create new VM")
 
-        Snapshot.create(
-            self.userapiclient,
-            root_volume[0].id)
+        if self.snapshotSupported:
+            Snapshot.create(
+                self.userapiclient,
+                root_volume[0].id)
 
         # Step 3
 
@@ -1151,10 +1168,11 @@ class TestDisableEnableCluster(cloudstackTestCase):
             listall=True
         )
 
-        with self.assertRaises(Exception):
-            Snapshot.create(
-                self.userapiclient,
-                root_volume[0].id)
+        if self.snapshotSupported:
+            with self.assertRaises(Exception):
+                Snapshot.create(
+                    self.userapiclient,
+                    root_volume[0].id)
 
         with self.assertRaises(Exception):
             Template.register(
@@ -1244,6 +1262,7 @@ class TestDisableEnableHost(cloudstackTestCase):
             cls.testdata["ostype"])
 
         cls._cleanup = []
+        cls.disabledHosts = []
 
         try:
             cls.service_offering = ServiceOffering.create(
@@ -1280,6 +1299,17 @@ class TestDisableEnableHost(cloudstackTestCase):
     @classmethod
     def tearDownClass(cls):
         try:
+            for hostid in cls.disabledHosts:
+                hosts = Host.list(cls.apiclient,
+                                  id=hostid)
+                assert validateList(hosts)[0] == PASS, "hosts\
+                        list validation failed"
+                if hosts[0].resourcestate.lower() == DISABLED.lower():
+                    cmd = updateHost.updateHostCmd()
+                    cmd.id = hostid
+                    cmd.resourcestate = ENABLED
+                    cmd.allocationstate = ENABLE
+                    cls.apiclient.updateHost(cmd)
             cleanup_resources(cls.apiclient, cls._cleanup)
         except Exception as e:
             raise Exception("Warning: Exception during cleanup : %s" % e)
@@ -1341,6 +1371,9 @@ class TestDisableEnableHost(cloudstackTestCase):
         cmd.resourcestate = DISABLED
         cmd.allocationstate = DISABLE
         self.apiclient.updateHost(cmd)
+
+        self.disabledHosts.append(hostid)
+
         hostList = Host.list(self.apiclient, id=hostid)
 
         self.assertEqual(hostList[0].resourcestate,
@@ -1390,16 +1423,18 @@ class TestDisableEnableHost(cloudstackTestCase):
             listall=True
         )
 
-        Snapshot.create(
-            self.apiclient,
-            root_volume[0].id)
+        if self.snapshotSupported:
+            Snapshot.create(
+                self.apiclient,
+                root_volume[0].id)
 
         # non-admin user should fail to create vm, snap, temp etc
 
-        with self.assertRaises(Exception):
-            Snapshot.create(
-                self.userapiclient,
-                root_volume[0].id)
+        if self.snapshotSupported:
+            with self.assertRaises(Exception):
+                Snapshot.create(
+                    self.userapiclient,
+                    root_volume[0].id)
 
         # Step 2
         cmd.resourcestate = ENABLED
@@ -1430,9 +1465,10 @@ class TestDisableEnableHost(cloudstackTestCase):
             "running",
             "Verify that admin should create new VM in running state")
 
-        Snapshot.create(
-            self.apiclient,
-            root_volume[0].id)
+        if self.snapshotSupported:
+            Snapshot.create(
+                self.apiclient,
+                root_volume[0].id)
 
         # Non root user
         user_vm_new = VirtualMachine.create(
@@ -1449,9 +1485,10 @@ class TestDisableEnableHost(cloudstackTestCase):
                             "running",
                             "Verify that admin should create new VM")
 
-        Snapshot.create(
-            self.userapiclient,
-            root_volume[0].id)
+        if self.snapshotSupported:
+            Snapshot.create(
+                self.userapiclient,
+                root_volume[0].id)
 
         # Step 4
         # reconnect the host