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/04/29 13:39:43 UTC
git commit: updated refs/heads/master to 229f238
Repository: cloudstack
Updated Branches:
refs/heads/master 1664c9121 -> 229f23874
Merging all required changes for these test paths to run properly
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/229f2387
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/229f2387
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/229f2387
Branch: refs/heads/master
Commit: 229f23874a4c1ab9536a13414e421be4c1ffee74
Parents: 1664c91
Author: SrikanteswaraRao Talluri <ta...@apache.org>
Authored: Wed Apr 29 17:09:03 2015 +0530
Committer: SrikanteswaraRao Talluri <ta...@apache.org>
Committed: Wed Apr 29 17:09:03 2015 +0530
----------------------------------------------------------------------
.../testpaths/testpath_stopped_vm.py | 17 ++--
.../testpaths/testpath_storage_migration.py | 96 ++++++++++++--------
test/integration/testpaths/testpath_usage.py | 13 ++-
test/integration/testpaths/testpath_vmlc.py | 14 +--
.../testpaths/testpath_volumelifecycle.py | 24 +++--
5 files changed, 103 insertions(+), 61 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/229f2387/test/integration/testpaths/testpath_stopped_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/testpaths/testpath_stopped_vm.py b/test/integration/testpaths/testpath_stopped_vm.py
index 54f4025..c3a129d 100644
--- a/test/integration/testpaths/testpath_stopped_vm.py
+++ b/test/integration/testpaths/testpath_stopped_vm.py
@@ -125,7 +125,7 @@ class TestAdvancedZoneStoppedVM(cloudstackTestCase):
testClient = super(TestAdvancedZoneStoppedVM, cls).getClsTestClient()
cls.apiclient = testClient.getApiClient()
cls.testdata = testClient.getParsedTestDataConfig()
-
+ cls.hypervisor = testClient.getHypervisorInfo()
# Get Zone, Domain and templates
cls.domain = get_domain(cls.apiclient)
cls.zone = get_zone(cls.apiclient)
@@ -373,7 +373,7 @@ class TestAdvancedZoneStoppedVM(cloudstackTestCase):
self.assertTrue(response[0], response[1])
return
- @attr(tags=["advanced", "basic"], required_hardware="false")
+ @attr("simulator_only", tags=["advanced", "basic"], required_hardware="false")
def test_03_pt_deploy_vm_with_startvm_false(self):
""" Positive test for stopped VM test path - T2
@@ -415,7 +415,7 @@ class TestAdvancedZoneStoppedVM(cloudstackTestCase):
self.assertTrue(response[0], response[1])
return
- @attr(tags=["advanced", "basic"], required_hardware="false")
+ @attr("simulator_only", tags=["advanced", "basic"], required_hardware="false")
def test_04_pt_startvm_false_attach_disk(self):
""" Positive test for stopped VM test path - T3 and variant, T9
@@ -554,7 +554,7 @@ class TestAdvancedZoneStoppedVM(cloudstackTestCase):
)
return
- @attr(tags=["advanced", "basic"], required_hardware="false")
+ @attr("simulator_only", tags=["advanced", "basic"], required_hardware="false")
def test_05_pt_startvm_false_attach_disk_change_SO(self):
""" Positive test for stopped VM test path - T4
@@ -790,6 +790,11 @@ class TestAdvancedZoneStoppedVM(cloudstackTestCase):
# 4. Start the VM, verify that it is in running state
# 5. Verify that new password is generated for the VM
"""
+
+ if self.hypervisor.lower() in ['lxc']:
+ self.skipTest(
+ "feature is not supported in %s" %
+ self.hypervisor)
vm_for_template = VirtualMachine.create(
self.userapiclient,
self.testdata["small"],
@@ -888,7 +893,7 @@ class TestAdvancedZoneStoppedVM(cloudstackTestCase):
)
return
- @attr(tags=["advanced", "basic"], required_hardware="false")
+ @attr("simulator_only", tags=["advanced", "basic"], required_hardware="false")
def test_09_pt_destroy_stopped_vm(self):
""" Positive test for stopped VM test path - T11
@@ -939,7 +944,7 @@ class TestAdvancedZoneStoppedVM(cloudstackTestCase):
self.assertEqual(response[0], PASS, response[1])
return
- @attr(tags=["advanced", "basic"], required_hardware="false")
+ @attr("simulator_only", tags=["advanced", "basic"], required_hardware="false")
def test_10_max_account_limit(self):
""" Positive test for stopped VM test path - T12
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/229f2387/test/integration/testpaths/testpath_storage_migration.py
----------------------------------------------------------------------
diff --git a/test/integration/testpaths/testpath_storage_migration.py b/test/integration/testpaths/testpath_storage_migration.py
index 892b396..4d6c924 100644
--- a/test/integration/testpaths/testpath_storage_migration.py
+++ b/test/integration/testpaths/testpath_storage_migration.py
@@ -37,9 +37,11 @@ from marvin.lib.common import (get_domain,
list_virtual_machines,
list_storage_pools,
list_clusters,
- list_hosts
+ list_hosts,
+ validateList
)
-from marvin.codes import (ZONETAG1,
+from marvin.codes import (PASS,
+ ZONETAG1,
CLUSTERTAG1)
from marvin.cloudstackAPI import (deleteVolume)
@@ -412,20 +414,21 @@ class TestStorageMigration(cloudstackTestCase):
cls.testdata["ostype"])
cls._cleanup = []
+ cls.unsupportedHypervisor = False
+ cls.insuffPools = False
if cls.hypervisor.lower() not in [
"vmware",
"kvm",
"xenserver",
"hyper-v"]:
- raise unittest.SkipTest(
- "Storage migration not supported on %s" %
- cls.hypervisor)
-
+ cls.unsupportedHypervisor = True
+ return
try:
cls.pools = StoragePool.list(cls.apiclient, zoneid=cls.zone.id)
except Exception as e:
- raise unittest.SkipTest(e)
+ cls.insuffPools = True
+ return
try:
# Create an account
@@ -507,6 +510,9 @@ class TestStorageMigration(cloudstackTestCase):
def setUp(self):
self.apiclient = self.testClient.getApiClient()
self.dbclient = self.testClient.getDbConnection()
+ if self.unsupportedHypervisor or self.insuffPools:
+ self.skipTest("Skipping test because unsupported hypervisor\
+ %s" % self.hypervisor)
self.cleanup = []
def tearDown(self):
@@ -518,7 +524,7 @@ class TestStorageMigration(cloudstackTestCase):
raise Exception("Warning: Exception during cleanup : %s" % e)
return
- @attr(tags=["advanced", "basic"])
+ @attr(tags=["advanced", "basic"], required_hardware="True")
def test_01_migrate_root_and_data_disk_nonlive(self):
""" Test migrate Volume (root and data disk)
@@ -1205,7 +1211,7 @@ class TestStorageMigration(cloudstackTestCase):
), None, "VM list should be empty")
return
- @attr(tags=["advanced", "basic"])
+ @attr(tags=["advanced", "basic"], required_hardware="True")
def test_02_migration_nonlive_xenserver_supported(self):
""" Test migrate Volume (root and data disk) for Hypervisor Xenserver
@@ -1650,7 +1656,7 @@ class TestStorageMigration(cloudstackTestCase):
return
- @attr(tags=["advanced", "basic"])
+ @attr(tags=["advanced", "basic"], required_hardware="True")
def test_03_migrate_root_and_data_disk_nonlive_cwps_vmware(self):
""" Test migrate Volume (root and data disk)
@@ -2088,7 +2094,7 @@ class TestStorageMigration(cloudstackTestCase):
), None, "VM list should be empty")
return
- @attr(tags=["advanced", "basic"])
+ @attr(tags=["advanced", "basic"], required_hardware="True")
def test_04_migrate_root_and_data_disk_nonlive_zwps_vmware(self):
""" Test migrate Volume (root and data disk)
@@ -2279,15 +2285,15 @@ class NegativeTestStorageMigration(cloudstackTestCase):
cls.testdata["ostype"])
cls._cleanup = []
-
+ cls.unsupportedHypervisor = False
+ cls.insuffPools = False
if cls.hypervisor.lower() not in [
"vmware",
"kvm",
"xenserver",
"hyper-v"]:
- raise unittest.SkipTest(
- "Storage migration not supported on %s" %
- cls.hypervisor)
+ cls.unsupportedHypervisor = True
+ return
try:
cls.pools = StoragePool.list(cls.apiclient, zoneid=cls.zone.id)
@@ -2300,7 +2306,8 @@ class NegativeTestStorageMigration(cloudstackTestCase):
"There must be at least two cluster wide\
storage pools available in the setup"
except Exception as e:
- raise unittest.SkipTest(e)
+ cls.insuffPools = True
+ return
try:
# Create an account
@@ -2382,6 +2389,9 @@ class NegativeTestStorageMigration(cloudstackTestCase):
def setUp(self):
self.apiclient = self.testClient.getApiClient()
self.dbclient = self.testClient.getDbConnection()
+ if self.unsupportedHypervisor or self.insuffPools:
+ self.skipTest("Skipping test because unsupported hypervisor\
+ %s" % self.hypervisor)
self.cleanup = []
def tearDown(self):
@@ -2434,7 +2444,7 @@ class NegativeTestStorageMigration(cloudstackTestCase):
except Exception as e:
self.exceptionList.append(e)
- @attr(tags=["advanced", "basic"])
+ @attr(tags=["advanced", "basic"], required_hardware="True")
def test_01_migrate_data_disk_negative_test(self):
""" Negative test cases
@@ -2689,16 +2699,17 @@ class TestLiveStorageMigration(cloudstackTestCase):
cls.testdata["ostype"])
cls._cleanup = []
-
+ cls.unsupportedHypervisor = False
+ cls.insuffPools = False
if cls.hypervisor.lower() in ["kvm", "lxc"]:
- raise unittest.SkipTest(
- "Live Storage migration not supported on %s" %
- cls.hypervisor)
+ cls.unsupportedHypervisor = True
+ return
try:
cls.pools = StoragePool.list(cls.apiclient, zoneid=cls.zone.id)
except Exception as e:
- raise unittest.SkipTest(e)
+ cls.insuffPools = True
+ return
try:
# Create an account
@@ -2780,6 +2791,9 @@ class TestLiveStorageMigration(cloudstackTestCase):
def setUp(self):
self.apiclient = self.testClient.getApiClient()
self.dbclient = self.testClient.getDbConnection()
+ if self.unsupportedHypervisor or self.insuffPools:
+ self.skipTest("Skipping test because unsupported hypervisor\
+ %s" % self.hypervisor)
self.cleanup = []
def tearDown(self):
@@ -2979,7 +2993,7 @@ class TestLiveStorageMigration(cloudstackTestCase):
@unittest.skip(
"Requires setup with 2 pods - Each pod having 2 clusters. \
Yet to be tested")
- @attr(tags=["advanced", "basic"])
+ @attr(tags=["advanced", "basic"], required_hardware="True")
def test_02_migration_live_different_pods(self):
""" Test migrate Volume (root and data disk)
@@ -3573,35 +3587,37 @@ class TestStorageLiveMigrationVmware(cloudstackTestCase):
cls.testdata["ostype"])
cls._cleanup = []
-
+ cls.hypervisorNotSupported = False
+ cls.NoResource = False
if cls.hypervisor.lower() not in [
- "vmware",
- "kvm",
- "xenserver",
- "hyper-v"]:
- raise unittest.SkipTest(
- "Storage migration not supported on %s" %
- cls.hypervisor)
+ "vmware"]:
+ cls.hypervisorNotSupported = True
# Get Hosts in the cluster and iscsi/vmfs storages for that cluster
iscsi_pools = []
try :
list_vmware_clusters = list_clusters(cls.apiclient, hypervisor="vmware")
except Exception as e:
- raise unittest.SkipTest(e)
-
+ cls.NoResource = True
+ return
+ assert validateList(list_vmware_clusters)[0] == PASS
if len(list_vmware_clusters) < 1 :
- raise unittest.SkipTest("There is no cluster available in the setup")
+ cls.NoResource = True
+ return
else :
for cluster in list_vmware_clusters :
try:
list_esx_hosts = list_hosts(cls.apiclient, clusterid = cluster.id)
except Exception as e:
- raise unittest.SkipTest(e)
+ cls.NoResource = True
+ return
+ assert validateList(list_esx_hosts)[0] == PASS
if len(list_esx_hosts) > 1 :
try:
list_storage = list_storage_pools(cls.apiclient, clusterid = cluster.id)
except Exception as e:
- raise unittest.SkipTest(e)
+ cls.NoResource = True
+ return
+ assert validateList(list_storage)[0] == PASS
for storage in list_storage :
if storage.type == "VMFS" :
iscsi_pools.append(storage)
@@ -3611,7 +3627,8 @@ class TestStorageLiveMigrationVmware(cloudstackTestCase):
else :
iscsi_pools = []
if len(iscsi_pools) < 2 :
- raise unittest.SkipTest("Not enough resources available in the setup")
+ cls.NoResource = True
+ return
cls.hosts = list_esx_hosts
cls.pools = list_storage
@@ -3656,6 +3673,9 @@ class TestStorageLiveMigrationVmware(cloudstackTestCase):
def setUp(self):
self.apiclient = self.testClient.getApiClient()
self.dbclient = self.testClient.getDbConnection()
+ if self.unsupportedHypervisor or self.NoResource:
+ self.skipTest("Skipping test because unsupported hypervisor\
+ %s" % self.hypervisor)
self.cleanup = []
def tearDown(self):
@@ -3700,7 +3720,7 @@ class TestStorageLiveMigrationVmware(cloudstackTestCase):
return destinationHost
- @attr(tags=["advanced", "basic", "vmware", "vmfs"])
+ @attr(tags=["advanced", "basic", "vmware", "vmfs"], required_hardware="True")
def test_01_migrate_root_and_data_disk_live(self):
"""
Migrate VMs/Volumes on VMware with VMFS storage
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/229f2387/test/integration/testpaths/testpath_usage.py
----------------------------------------------------------------------
diff --git a/test/integration/testpaths/testpath_usage.py b/test/integration/testpaths/testpath_usage.py
index e45221c..1c3b1b4 100644
--- a/test/integration/testpaths/testpath_usage.py
+++ b/test/integration/testpaths/testpath_usage.py
@@ -84,8 +84,10 @@ class TestUsage(cloudstackTestCase):
cls.mgtSvrDetails = cls.config.__dict__["mgtSvr"][0].__dict__
isUsageJobRunning = cls.IsUsageJobRunning()
+ cls.usageJobNotRunning = False
if not isUsageJobRunning:
- raise unittest.SkipTest("Skipping, usage job is not running")
+ cls.usageJobNotRunning = True
+ return
if cls.testdata["configurableData"][
"setUsageConfigurationThroughTestCase"]:
@@ -188,6 +190,8 @@ class TestUsage(cloudstackTestCase):
self.apiclient = self.testClient.getApiClient()
self.dbclient = self.testClient.getDbConnection()
self.cleanup = []
+ if self.usageJobNotRunning:
+ self.skipTest("Skipping test because usage job not running")
# Create an account
self.account = Account.create(
self.apiclient,
@@ -424,7 +428,7 @@ class TestUsage(cloudstackTestCase):
)
return result
- @attr(tags=["advanced"], required_hardware="true")
+ @attr(tags=["advanced"], required_hardware="True")
def test_01_positive_tests_usage(self):
""" Positive test for usage test path
@@ -2963,8 +2967,9 @@ class TestUsageDirectMeteringBasicZone(cloudstackTestCase):
cls.mgtSvrDetails = cls.config.__dict__["mgtSvr"][0].__dict__
isUsageJobRunning = cls.IsUsageJobRunning()
+ cls.usageJobNotRunning = False
if not isUsageJobRunning:
- raise unittest.SkipTest("Skipping, usage job is not running")
+ cls.usageJobNotRunning = True
if cls.testdata["configurableData"][
"setUsageConfigurationThroughTestCase"]:
@@ -3025,6 +3030,8 @@ class TestUsageDirectMeteringBasicZone(cloudstackTestCase):
self.apiclient = self.testClient.getApiClient()
self.dbclient = self.testClient.getDbConnection()
self.cleanup = []
+ if self.usageJobNotRunning:
+ self.skipTest("Skipping test because usage job not running")
# Create an account
self.account = Account.create(
self.apiclient,
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/229f2387/test/integration/testpaths/testpath_vmlc.py
----------------------------------------------------------------------
diff --git a/test/integration/testpaths/testpath_vmlc.py b/test/integration/testpaths/testpath_vmlc.py
index 52fbab5..33e6860 100644
--- a/test/integration/testpaths/testpath_vmlc.py
+++ b/test/integration/testpaths/testpath_vmlc.py
@@ -316,7 +316,7 @@ class TestPathVMLC(cloudstackTestCase):
raise Exception("Warning: Exception during cleanup : %s" % e)
return
- @attr(tags=["advanced"], required_hardware="false")
+ @attr(tags=["advanced"], required_hardware="True")
@data(ISOLATED_NETWORK, VPC_NETWORK)
def test_01_positive_tests_vm_operations_advanced_zone(self, value):
""" Positive tests for VMLC test path - Advanced Zone
@@ -508,7 +508,7 @@ class TestPathVMLC(cloudstackTestCase):
self.fail("Exception while SSHing to VM: %s" % e)
return
- @attr(tags=["advanced"], required_hardware="false")
+ @attr(tags=["advanced"], required_hardware="True")
def test_01_positive_tests_vm_deploy_shared_nw(self):
""" Positive tests for VMLC test path - Advanced Zone in Shared Network
@@ -560,7 +560,7 @@ class TestPathVMLC(cloudstackTestCase):
)
return
- @attr(tags=["basic"], required_hardware="false")
+ @attr(tags=["basic"], required_hardware="True")
def test_01_positive_tests_vm_operations_basic_zone(self):
""" Positive tests for VMLC test path - Basic Zone
@@ -722,7 +722,7 @@ class TestPathVMLC(cloudstackTestCase):
self.fail("Exception while SSHing to VM: %s" % e)
return
- @attr(tags=["advanced"], required_hardware="false")
+ @attr(tags=["advanced"], required_hardware="True")
@data(ISOLATED_NETWORK, SHARED_NETWORK, VPC_NETWORK)
def test_02_negative_tests_destroy_VM_operations_advanced_zone(
self,
@@ -774,7 +774,7 @@ class TestPathVMLC(cloudstackTestCase):
return
- @attr(tags=["basic"], required_hardware="false")
+ @attr(tags=["basic"], required_hardware="True")
def test_02_negative_tests_destroy_VM_operations_basic_zone(self):
""" Negative tests for VMLC test path - destroy VM
@@ -817,7 +817,7 @@ class TestPathVMLC(cloudstackTestCase):
return
- @attr(tags=["advanced"], required_hardware="false")
+ @attr(tags=["advanced"], required_hardware="True")
@data(ISOLATED_NETWORK, SHARED_NETWORK, VPC_NETWORK)
def test_03_negative_tests_expunge_VM_operations_advanced_zone(
self,
@@ -875,7 +875,7 @@ class TestPathVMLC(cloudstackTestCase):
return
- @attr(tags=["basic"], required_hardware="false")
+ @attr(tags=["basic"], required_hardware="True")
def test_03_negative_tests_expunge_VM_operations_basic_zone(self):
""" Negative tests for VMLC test path - expunge VM
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/229f2387/test/integration/testpaths/testpath_volumelifecycle.py
----------------------------------------------------------------------
diff --git a/test/integration/testpaths/testpath_volumelifecycle.py b/test/integration/testpaths/testpath_volumelifecycle.py
index 55bfc89..70ca03f 100644
--- a/test/integration/testpaths/testpath_volumelifecycle.py
+++ b/test/integration/testpaths/testpath_volumelifecycle.py
@@ -33,7 +33,7 @@ from marvin.lib.base import (Account,
Resources)
from marvin.lib.utils import cleanup_resources, validateList
-# common - commonly used methods for all tests are listed here
+#common - commonly used methods for all tests are listed here
from marvin.lib.common import (get_zone,
get_domain,
get_template,
@@ -117,7 +117,6 @@ def verify_vm(self, vmid):
class TestPathVolume(cloudstackTestCase):
-
@classmethod
def setUpClass(cls):
testClient = super(TestPathVolume, cls).getClsTestClient()
@@ -128,10 +127,11 @@ class TestPathVolume(cloudstackTestCase):
cls.zone = get_zone(cls.apiclient)
cls.testdata["mode"] = cls.zone.networktype
cls.hypervisor = testClient.getHypervisorInfo()
+ cls.insuffStorage = False
#for LXC if the storage pool of type 'rbd' ex: ceph is not available, skip the test
if cls.hypervisor.lower() == 'lxc':
if not find_storage_pool_type(cls.apiclient, storagetype='rbd'):
- raise unittest.SkipTest("RBD storage type is required for data volumes for %s" % cls.hypervisor.lower())
+ cls.insuffStorage = True
cls.template = get_template(
cls.apiclient,
@@ -217,12 +217,19 @@ class TestPathVolume(cloudstackTestCase):
password=cls.testdata["account"]["password"]
)
assert response.sessionkey is not None
- # response should have non null value
+ #response should have non null value
except Exception as e:
- cls.tearDownClass()
- raise e
+ cls.tearDownClass()
+ raise e
return
+ def setUp(self):
+ self.apiclient = self.testClient.getApiClient()
+ self.dbclient = self.testClient.getDbConnection()
+ if self.unsupportedHypervisor or self.insuffPools:
+ self.skipTest("Skipping test because of insuff resources\
+ %s" % self.hypervisor)
+
@classmethod
def tearDownClass(cls):
try:
@@ -264,7 +271,10 @@ class TestPathVolume(cloudstackTestCase):
# 20.Detach data disks from VM2 and delete volume
"""
-
+ if self.hypervisor.lower() in ['lxc']:
+ self.skipTest(
+ "feature is not supported in %s" %
+ self.hypervisor)
# 1. Deploy a vm [vm1] with shared storage and data disk
self.virtual_machine_1 = VirtualMachine.create(
self.userapiclient,