summaryrefslogtreecommitdiff
path: root/heat
diff options
context:
space:
mode:
authorrabi <ramishra@redhat.com>2021-10-18 14:23:55 +0530
committerrabi <ramishra@redhat.com>2021-10-18 15:21:54 +0530
commite70ff2e1533412727f8aeb3e08ffd9a8cefef6f9 (patch)
tree605f967d694f5994aeeacc3f76ab8420a9062678 /heat
parenta65f610cbe603cb27651d4b7b62137dd8720b000 (diff)
downloadheat-e70ff2e1533412727f8aeb3e08ffd9a8cefef6f9.tar.gz
Allow for creating server_group with max_nova_api_microversion
When users set max_nova_api_microversion in heat.conf, we should use that to create the client. Change-Id: If74f3f869fc696c87540357d96b039b68c456539 Task: 43661
Diffstat (limited to 'heat')
-rw-r--r--heat/engine/resources/openstack/nova/server_group.py10
-rw-r--r--heat/tests/openstack/nova/test_server_group.py6
2 files changed, 14 insertions, 2 deletions
diff --git a/heat/engine/resources/openstack/nova/server_group.py b/heat/engine/resources/openstack/nova/server_group.py
index 90a6ff171..b4eb95662 100644
--- a/heat/engine/resources/openstack/nova/server_group.py
+++ b/heat/engine/resources/openstack/nova/server_group.py
@@ -96,8 +96,14 @@ class ServerGroup(resource.Resource):
name = self.physical_resource_name()
policies = self.properties[self.POLICIES]
rules = self.properties[self.RULES]
- server_group = self.client().server_groups.create(
- name=name, policy=policies[0], rules=rules)
+ rules_supported = self.client_plugin().is_version_supported(
+ MICROVERSION_RULE)
+ if rules_supported:
+ server_group = self.client().server_groups.create(
+ name=name, policy=policies[0], rules=rules)
+ else:
+ server_group = self.client().server_groups.create(
+ name=name, policies=policies)
self.resource_id_set(server_group.id)
def physical_resource_name(self):
diff --git a/heat/tests/openstack/nova/test_server_group.py b/heat/tests/openstack/nova/test_server_group.py
index 4059e37c2..c2dfda484 100644
--- a/heat/tests/openstack/nova/test_server_group.py
+++ b/heat/tests/openstack/nova/test_server_group.py
@@ -52,6 +52,12 @@ class NovaServerGroupTest(common.HeatTestCase):
# create mock clients and objects
nova = mock.MagicMock()
self.sg.client = mock.MagicMock(return_value=nova)
+ mock_plugin = mock.MagicMock()
+ self.patchobject(mock_plugin,
+ 'is_version_supported',
+ return_value=True)
+ self.patchobject(self.sg, 'client_plugin',
+ return_value=mock_plugin)
self.sg_mgr = nova.server_groups
def _create_sg(self, name):