Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1877222

Summary: RHOSP16.1 cannot use "dashboard" to assign multiattach volume to more then one VM.
Product: Red Hat OpenStack Reporter: XinhuaLi <xili>
Component: python-django-horizonAssignee: Radomir Dopieralski <rdopiera>
Status: CLOSED CURRENTRELEASE QA Contact: Ashish Gupta <ashigupt>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 16.1 (Train)CC: athomas, jrist, m.andre, mgarciac, rdopiera, tovchinn
Target Milestone: z2Keywords: Reopened, TestOnly, Triaged
Target Release: 16.1 (Train on RHEL 8.2)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-django-horizon-16.2.1-1.20210728213305.ca38848.el8ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 2055165 (view as bug list) Environment:
Last Closed: 2023-03-21 10:33:15 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2055165    

Description XinhuaLi 2020-09-09 06:39:33 UTC
Description of problem:

--------------------------------------------------------------------------------------
After create a multiattach volume in RHOSP16.1 , we cannot assign the volume to more than one VM via dashboard.
However, we can use CLI like "nova volume-attach" to attach the multiattach volume to more then one VM.
--------------------------------------------------------------------------------------

Version-Release number of selected component (if applicable):
--------------------------------------------------------------------------------------
# sudo podman ps | grep horizon
5773a10ea430  manager.ctlplane.localdomain:8787/rhosp-rhel8/openstack-horizon:16.1-51                    kolla_start           5 days ago    Up 5 days ago           horizon

# rpm -qa |grep horizon
puppet-horizon-15.4.1-0.20200604003425.dd78e01.el8ost.noarch
--------------------------------------------------------------------------------------

How reproducible:

Use the dashboard to assign multiattach volume to one VM; then create another VM and try to attach the volume, you cannot see the volume in dropdown list.
The volume can only be assigned to one VM.

Steps to Reproduce:
1. Use the dashboard to assign multiattach volume to one VM
2. Create another VM and try to attach the volume 
3. We cannot see the volume in the dropdown list.

Actual results:
We cannot use dashboard to assign multiattach volume to more then one VM.

Expected results:
We can use dashboard to assign multiattach volume to more then one VM.

Additional info:
It seems that we have commits for "multiattach"; maybe we need to double check the detail against dashboard.
--------------------------------------------------------------------------------------
# podman run -it --rm openstack-horizon:16.1-51 bash
()[root@24af034e4eef /]# cd /usr/lib/python3.6/site-packages/openstack_dashboard/
()[root@24af034e4eef openstack_dashboard]# sed -n '90,94p' api/cinder.py 
              'snapshot_id', 'source_volid', 'attachments', 'tenant_name',
              'group_id', 'consistencygroup_id', 'os-vol-host-attr:host',
              'os-vol-tenant-attr:tenant_id', 'metadata',
              'volume_image_metadata', 'encrypted', 'transfer',
              'multiattach']
              
()[root@24af034e4eef openstack_dashboard]# sed -n '30,40p' api/microversions.py 
    "nova": {
        "locked_attribute": ["2.9", "2.42"],
        "instance_description": ["2.19", "2.42"],
        "remote_console_mks": ["2.8", "2.53"],
        "servergroup_soft_policies": ["2.15", "2.60"],
        "servergroup_user_info": ["2.13", "2.60"],
        "multiattach": ["2.60"],
        "auto_allocated_network": ["2.37", "2.42"],
        "key_types": ["2.2", "2.9"],
        "key_type_list": ["2.9"],
    },
    
()[root@24af034e4eef openstack_dashboard]# sed -n '5652,5678p' dashboards/project/instances/tests.py 
    @mock.patch.object(api.cinder, 'volume_list')
    @mock.patch.object(api.cinder, 'volume_get')
    @mock.patch.object(api.nova, 'get_microversion', return_value='2.60')
    @mock.patch.object(api._nova, 'novaclient')
    def test_volume_attach_post_multiattach(
            self, mock_client, mock_get_microversion, mock_volume_get,
            mock_volume_list):
        # Tests that a multiattach volume must be attached with compute API
        # microversion 2.60 and the feature is supported.
        server = self.servers.first()
        volumes = self.cinder_volumes.list()
        volume = volumes[1]
        volume.multiattach = True
        mock_volume_list.return_value = volumes
        mock_volume_get.return_value = volume

        # note that 'device' is not passed
        form_data = {"volume": volume.id,
                     "instance_id": server.id}

        url = reverse('horizon:project:instances:attach_volume',
                      args=[server.id])

        res = self.client.post(url, form_data)
        self.assertNoFormErrors(res)
        self.assertRedirectsNoFollow(res, INDEX_URL)
        mock_client.assert_called_once_with(mock.ANY, '2.60')
--------------------------------------------------------------------------------------

Regards
Sam

Comment 1 XinhuaLi 2020-10-13 05:41:41 UTC
Hi
Is there any update or comments ?

Regards,
Sam

Comment 13 Tatiana Ovchinnikova 2021-01-07 16:32:45 UTC
Hi Sam,

any update from customer's side?

With kind regards,
Tatiana

Comment 21 Radomir Dopieralski 2021-07-28 14:44:45 UTC
It looks like someone had a similar issue upstream and there is a patch we can backport. Reopening.

Comment 31 Lon Hohberger 2023-03-21 10:33:15 UTC
According to our records, this should be resolved by python-django-horizon-16.2.1-1.20220711203431.ca38848.el8ost.  This build is available now.