Return-Path: X-Original-To: apmail-cloudstack-commits-archive@www.apache.org Delivered-To: apmail-cloudstack-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 41123185B2 for ; Thu, 28 Apr 2016 20:03:34 +0000 (UTC) Received: (qmail 6192 invoked by uid 500); 28 Apr 2016 20:03:34 -0000 Delivered-To: apmail-cloudstack-commits-archive@cloudstack.apache.org Received: (qmail 5960 invoked by uid 500); 28 Apr 2016 20:03:33 -0000 Mailing-List: contact commits-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list commits@cloudstack.apache.org Received: (qmail 5703 invoked by uid 99); 28 Apr 2016 20:03:33 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 28 Apr 2016 20:03:33 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 9477AE0019; Thu, 28 Apr 2016 20:03:33 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: swill@apache.org To: commits@cloudstack.apache.org Date: Thu, 28 Apr 2016 20:03:35 -0000 Message-Id: <77c12704ac5748f381fba299da72b606@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [3/6] git commit: updated refs/heads/4.7 to 1979f42 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.7 Commit: ec7a86b2de6716f1fa9d7ba2d10fe82d9e83c4f6 Parents: 0b7cc08 Author: David Mabry Authored: Tue Apr 19 08:21:18 2016 -0500 Committer: David Mabry 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