cloudstack-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CLOUDSTACK-9349) Unable to detach root volume when using Hypervisor Type KVM
Date Thu, 21 Apr 2016 13:45:25 GMT

    [ 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)

Mime
View raw message