summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormanchandavishal <manchandavishal143@gmail.com>2021-06-29 23:38:41 +0530
committerTatiana Ovchinnikova <t.v.ovtchinnikova@gmail.com>2021-07-28 17:31:37 +0000
commit78ba522c7f21707a1914d690f3b8fe8fecf54118 (patch)
treef7057cd9b0cb4321f639b75a07badc5aa30f2004
parentf4aaee3d1c4ea0f085221185530ec561ec946e1c (diff)
downloadhorizon-78ba522c7f21707a1914d690f3b8fe8fecf54118.tar.gz
Fix Unable to use multiattach volume as boot for new server
If we try to create a new server from a bootable volume that supports multiattach, it will fail to create with an error message that ``multiattach volumes are only supported starting with compute API version 2.60``. This patch fixes the issue. Closes-Bug: #1931440 Change-Id: Ic8330b947b1a733f70c3bdad8b3493f20a2f26fb (cherry picked from commit 64fe0abb653950c85d455dedd09ef42856c6b07b)
-rw-r--r--openstack_dashboard/api/microversions.py4
-rw-r--r--openstack_dashboard/api/nova.py3
-rw-r--r--openstack_dashboard/test/unit/api/test_nova.py2
3 files changed, 5 insertions, 4 deletions
diff --git a/openstack_dashboard/api/microversions.py b/openstack_dashboard/api/microversions.py
index ef28a1ae4..9d33952ec 100644
--- a/openstack_dashboard/api/microversions.py
+++ b/openstack_dashboard/api/microversions.py
@@ -29,12 +29,12 @@ LOG = logging.getLogger(__name__)
MICROVERSION_FEATURES = {
"nova": {
"locked_attribute": ["2.9", "2.42"],
- "instance_description": ["2.19", "2.42"],
+ "instance_description": ["2.19", "2.60"],
"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"],
+ "auto_allocated_network": ["2.37", "2.60"],
"key_types": ["2.2", "2.9"],
"key_type_list": ["2.9"],
},
diff --git a/openstack_dashboard/api/nova.py b/openstack_dashboard/api/nova.py
index 31c48b3b5..93d03800d 100644
--- a/openstack_dashboard/api/nova.py
+++ b/openstack_dashboard/api/nova.py
@@ -520,7 +520,8 @@ def server_create(request, name, image, flavor, key_name, user_data,
availability_zone=None, instance_count=1, admin_pass=None,
disk_config=None, config_drive=None, meta=None,
scheduler_hints=None, description=None):
- microversion = get_microversion(request, ("instance_description",
+ microversion = get_microversion(request, ("multiattach",
+ "instance_description",
"auto_allocated_network"))
nova_client = _nova.novaclient(request, version=microversion)
diff --git a/openstack_dashboard/test/unit/api/test_nova.py b/openstack_dashboard/test/unit/api/test_nova.py
index f20f2f6ff..0b0aa8d41 100644
--- a/openstack_dashboard/test/unit/api/test_nova.py
+++ b/openstack_dashboard/test/unit/api/test_nova.py
@@ -793,7 +793,7 @@ class ComputeApiTests(test.APIMockTestCase):
self.assertIsInstance(ret, api.nova.Server)
self.mock_get_microversion.assert_called_once_with(
- mock.sentinel.request, ('instance_description',
+ mock.sentinel.request, ('multiattach', 'instance_description',
'auto_allocated_network'))
self.mock_novaclient.assert_called_once_with(
mock.sentinel.request, version=mock.sentinel.microversion)