From d47a4540dc23fc2f2b3f84ddd6dbfb30c3fbf986 Mon Sep 17 00:00:00 2001 From: Erik Olof Gunnar Andersson Date: Tue, 3 Apr 2018 23:33:59 -0700 Subject: [PATCH] Fixing Senlin incompatibility with openstacksdk 0.11.x When running Heat with OpenstackSDK 0.11.3 (or older) no clustering version is being passed on, causing the call to Senlin to fail with the following error message. > Unknown version in URI from With this patch we always set the api version for clustering. Change-Id: I61876b599373c5794bb9edb2088b15d21f7584e2 Closes-Bug: #1760932 --- heat/engine/clients/os/openstacksdk.py | 6 +++++- heat/engine/clients/os/senlin.py | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/heat/engine/clients/os/openstacksdk.py b/heat/engine/clients/os/openstacksdk.py index 8be8612dcc..a1ad0e2031 100644 --- a/heat/engine/clients/os/openstacksdk.py +++ b/heat/engine/clients/os/openstacksdk.py @@ -42,9 +42,13 @@ class OpenStackSDKPlugin(client_plugin.ClientPlugin): config=self._get_service_interfaces(), region_name=self._get_region_name(), app_name='heat', - app_version=heat.version.version_info.version_string()) + app_version=heat.version.version_info.version_string(), + **self._get_additional_create_args(version)) return connection.Connection(config=config) + def _get_additional_create_args(self, version): + return {} + def _get_service_interfaces(self): interfaces = {} if not os_service_types: diff --git a/heat/engine/clients/os/senlin.py b/heat/engine/clients/os/senlin.py index 66cb7dccb1..408cabe296 100644 --- a/heat/engine/clients/os/senlin.py +++ b/heat/engine/clients/os/senlin.py @@ -29,6 +29,11 @@ class SenlinClientPlugin(sdk_plugin.OpenStackSDKPlugin): client = super(SenlinClientPlugin, self)._create(version=version) return client.clustering + def _get_additional_create_args(self, version): + return { + 'clustering_api_version': version or '1' + } + def generate_spec(self, spec_type, spec_props): spec = {'properties': spec_props} spec['type'], spec['version'] = spec_type.split('-')