[ https://issues.apache.org/jira/browse/CLOUDSTACK-9349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15251909#comment-15251909 ]
ASF GitHub Bot commented on CLOUDSTACK-9349: -------------------------------------------- Github user dmabry commented on a diff in the pull request: https://github.com/apache/cloudstack/pull/1500#discussion_r60581671 --- Diff: test/integration/component/test_volumes.py --- @@ -603,7 +603,144 @@ def test_01_volume_attach_detach(self): "Check the state of VM" ) except Exception as e: - self.fail("Exception occuered: %s" % e) + self.fail("Exception occurred: %s" % e) + return + + @attr(tags=["advanced", "advancedns"], required_hardware="false") + def test_02_root_volume_attach_detach(self): + """Test Root Volume attach/detach to VM + """ + + # Validate the following + # 1. Deploy a 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 + + # 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( --- End diff -- @nitt10prashant - Thanks for the feedback. I was merely following an established pattern that I observed earlier in the file. Please look at lines 499 - 510 as an example. I have put the code below for your convenience. Should that code be refactored as well? I just want to understand if my situation that I'm testing is different than the code I'm referencing below. In the end, I'm happy to make the change. Thanks again for the feedback. ` # Check List Volume response for newly created volume list_volume_response = Volume.list( self.apiclient, id=volume.id ) self.assertNotEqual( list_volume_response, None, "Check if volume exists in ListVolumes") self.assertEqual( isinstance(list_volume_response, list), True, "Check list volumes response for valid list")` > Unable to detach root volume when using Hypervisor Type KVM > ----------------------------------------------------------- > > Key: CLOUDSTACK-9349 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9349 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Components: Volumes > Affects Versions: 4.5.1, 4.6.2, 4.7.1, 4.8.0, 4.9.0 > Environment: Centos 7 > Reporter: Simon Weller > Priority: Minor > Fix For: 4.7.2 > > > Back in 4.5, support was added in CLOUDSTACK-6284 for detaching root volumes. > The original support was meant to work with Xen, VMware and KVM. > After chatting with fuflo in the Cloudstack irc channel, it was pointed out > that a constraint was not correctly modified in VolumeApiServiceImpl.java to > allow the detach to occur when vm.getHypervisorType() == HypervisorType.KVM. > This is a very useful feature, as it allows us to simulate a snapshot revert > with Ceph by using createVolume sourced from a snapshot, then detaching and > reattaching the root volume (new root volume needs to be attached as > device=0). > I'm going to propose a PR for this shortly -- This message was sent by Atlassian JIRA (v6.3.4#6332)