You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by sw...@apache.org on 2016/04/28 22:04:10 UTC
[3/7] git commit: updated refs/heads/4.8 to d11194a
Modified test_volumes.py to include a hypervisor test for root attach/detach testing
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ec7a86b2
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ec7a86b2
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ec7a86b2
Branch: refs/heads/4.8
Commit: ec7a86b2de6716f1fa9d7ba2d10fe82d9e83c4f6
Parents: 0b7cc08
Author: David Mabry <dm...@ena.com>
Authored: Tue Apr 19 08:21:18 2016 -0500
Committer: David Mabry <dm...@ena.com>
Committed: Tue Apr 19 09:28:57 2016 -0500
----------------------------------------------------------------------
test/integration/component/test_volumes.py | 244 ++++++++++++------------
1 file changed, 127 insertions(+), 117 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec7a86b2/test/integration/component/test_volumes.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_volumes.py b/test/integration/component/test_volumes.py
index 941e225..1b1773c 100644
--- a/test/integration/component/test_volumes.py
+++ b/test/integration/component/test_volumes.py
@@ -613,124 +613,134 @@ class TestAttachDetachVolume(cloudstackTestCase):
# Validate the following
# 1. Deploy a VM
- # 2. Check for root volume
- # 3. Stop VM
- # 4. Detach root volume
- # 5. Verify root volume detached
- # 6. Attach root volume
- # 7. Start VM
+ # 2. Verify that we are testing a supported hypervisor
+ # 3. Check for root volume
+ # 4. Stop VM
+ # 5. Detach root volume
+ # 6. Verify root volume detached
+ # 7. Attach root volume
+ # 8. Start VM
- try:
- # Check for root volume
- root_volume_response = Volume.list(
- self.apiclient,
- virtualmachineid=self.virtual_machine.id,
- type='ROOT',
- listall=True
- )
- self.assertNotEqual(
- root_volume_response,
- None,
- "Check if root volume exists in ListVolumes"
- )
- self.assertEqual(
- isinstance(root_volume_response, list),
- True,
- "Check list volumes response for valid list"
- )
- # Grab the root volume for later use
- root_volume = root_volume_response[0]
-
- # Stop VM
- self.debug("Stopping the VM: %s" % self.virtual_machine.id)
- self.virtual_machine.stop(self.apiclient)
-
- # Ensure VM is stopped before detaching the root volume
- time.sleep(self.services["sleep"])
-
- vm_response = VirtualMachine.list(
- self.apiclient,
- id=self.virtual_machine.id,
- )
- vm = vm_response[0]
- self.assertEqual(
- vm.state,
- 'Stopped',
- "Check the state of VM"
- )
-
- # Detach root volume from VM
- self.virtual_machine.detach_volume(
- self.apiclient,
- root_volume
- )
-
- # Verify that root disk is gone
- no_root_volume_response = Volume.list(
- self.apiclient,
- virtualmachineid=self.virtual_machine.id,
- type='ROOT',
- listall=True
- )
- self.assertEqual(
- no_root_volume_response,
- None,
- "Check if root volume exists in ListVolumes"
- )
-
- # Attach root volume to VM
- self.virtual_machine.attach_volume(
- self.apiclient,
- root_volume,
- 0
- )
-
- # Check for root volume
- new_root_volume_response = Volume.list(
- self.apiclient,
- virtualmachineid=self.virtual_machine.id,
- type='ROOT',
- listall=True
- )
- self.assertNotEqual(
- new_root_volume_response,
- None,
- "Check if root volume exists in ListVolumes"
- )
- self.assertEqual(
- isinstance(new_root_volume_response, list),
- True,
- "Check list volumes response for valid list"
- )
-
- # Start VM
- self.virtual_machine.start(self.apiclient)
- # Sleep to ensure that VM is in ready state
- time.sleep(self.services["sleep"])
-
- vm_response = VirtualMachine.list(
- self.apiclient,
- id=self.virtual_machine.id,
- )
- # Verify VM response to check whether VM deployment was successful
- self.assertEqual(
- isinstance(vm_response, list),
- True,
- "Check list VM response for valid list"
- )
- self.assertNotEqual(
- len(vm_response),
- 0,
- "Check VMs available in List VMs response"
- )
- vm = vm_response[0]
- self.assertEqual(
- vm.state,
- 'Running',
- "Check the state of VM"
- )
- except Exception as e:
- self.fail("Exception occurred: %s" % e)
+ # Verify we are using a supported hypervisor
+ if (self.hypervisor.lower() == 'vmware'
+ or self.hypervisor.lower() == 'kvm'
+ or self.hypervisor.lower() == 'simulator'
+ or self.hypervisor.lower() == 'xenserver'):
+
+ try:
+ # Check for root volume
+ root_volume_response = Volume.list(
+ self.apiclient,
+ virtualmachineid=self.virtual_machine.id,
+ type='ROOT',
+ listall=True
+ )
+ self.assertNotEqual(
+ root_volume_response,
+ None,
+ "Check if root volume exists in ListVolumes"
+ )
+ self.assertEqual(
+ isinstance(root_volume_response, list),
+ True,
+ "Check list volumes response for valid list"
+ )
+ # Grab the root volume for later use
+ root_volume = root_volume_response[0]
+
+ # Stop VM
+ self.debug("Stopping the VM: %s" % self.virtual_machine.id)
+ self.virtual_machine.stop(self.apiclient)
+
+ # Ensure VM is stopped before detaching the root volume
+ time.sleep(self.services["sleep"])
+
+ vm_response = VirtualMachine.list(
+ self.apiclient,
+ id=self.virtual_machine.id,
+ )
+ vm = vm_response[0]
+ self.assertEqual(
+ vm.state,
+ 'Stopped',
+ "Check the state of VM"
+ )
+
+ # Detach root volume from VM
+ self.virtual_machine.detach_volume(
+ self.apiclient,
+ root_volume
+ )
+
+ # Verify that root disk is gone
+ no_root_volume_response = Volume.list(
+ self.apiclient,
+ virtualmachineid=self.virtual_machine.id,
+ type='ROOT',
+ listall=True
+ )
+ self.assertEqual(
+ no_root_volume_response,
+ None,
+ "Check if root volume exists in ListVolumes"
+ )
+
+ # Attach root volume to VM
+ self.virtual_machine.attach_volume(
+ self.apiclient,
+ root_volume,
+ 0
+ )
+
+ # Check for root volume
+ new_root_volume_response = Volume.list(
+ self.apiclient,
+ virtualmachineid=self.virtual_machine.id,
+ type='ROOT',
+ listall=True
+ )
+ self.assertNotEqual(
+ new_root_volume_response,
+ None,
+ "Check if root volume exists in ListVolumes"
+ )
+ self.assertEqual(
+ isinstance(new_root_volume_response, list),
+ True,
+ "Check list volumes response for valid list"
+ )
+
+ # Start VM
+ self.virtual_machine.start(self.apiclient)
+ # Sleep to ensure that VM is in ready state
+ time.sleep(self.services["sleep"])
+
+ vm_response = VirtualMachine.list(
+ self.apiclient,
+ id=self.virtual_machine.id,
+ )
+ # Verify VM response to check whether VM deployment was successful
+ self.assertEqual(
+ isinstance(vm_response, list),
+ True,
+ "Check list VM response for valid list"
+ )
+ self.assertNotEqual(
+ len(vm_response),
+ 0,
+ "Check VMs available in List VMs response"
+ )
+ vm = vm_response[0]
+ self.assertEqual(
+ vm.state,
+ 'Running',
+ "Check the state of VM"
+ )
+ except Exception as e:
+ self.fail("Exception occurred: %s" % e)
+
+ else:
+ self.skipTest("Root Volume attach/detach is not supported on %s " % self.hypervisor)
return