From 08e8e790bd670252427d9c59f8fb3840e3b22c0a Mon Sep 17 00:00:00 2001 From: huangtianhua Date: Thu, 1 Jun 2017 14:37:09 +0800 Subject: [PATCH] Deprecate property 'metadata' of OS::Heat::DeployedServer The property 'metadata' doesn't make sense for resource OS::Heat::DeployedServer, because the deployed server can be provisioned out of nova. The deployment metadata we can set by resource.metadata, so deprecate the property 'metadata' and ignore it. Change-Id: Id218d699a0d49f127243ec537f719dd247197279 Closes-Bug: #1693661 --- .../resources/openstack/heat/deployed_server.py | 11 ++++++++++- heat/engine/resources/openstack/nova/server.py | 4 ++++ heat/engine/resources/server_base.py | 6 ------ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/heat/engine/resources/openstack/heat/deployed_server.py b/heat/engine/resources/openstack/heat/deployed_server.py index c984ba5a9c..585e81a9b8 100644 --- a/heat/engine/resources/openstack/heat/deployed_server.py +++ b/heat/engine/resources/openstack/heat/deployed_server.py @@ -60,7 +60,16 @@ class DeployedServer(server_base.BaseServer): 'keys and values must be 255 characters or less. Non-string ' 'values will be serialized to JSON (and the serialized ' 'string must be 255 characters or less).'), - update_allowed=True + update_allowed=True, + support_status=support.SupportStatus( + status=support.DEPRECATED, + message='This property will be ignored', + version='9.0.0', + previous_status=support.SupportStatus( + status=support.SUPPORTED, + version='8.0.0' + ) + ) ), SOFTWARE_CONFIG_TRANSPORT: properties.Schema( properties.Schema.STRING, diff --git a/heat/engine/resources/openstack/nova/server.py b/heat/engine/resources/openstack/nova/server.py index 30d0b67a1d..4d9f89a686 100644 --- a/heat/engine/resources/openstack/nova/server.py +++ b/heat/engine/resources/openstack/nova/server.py @@ -1232,6 +1232,10 @@ class Server(server_base.BaseServer, sh.SchedulerHintsMixin, after_props = json_snippet.properties(self.properties_schema, self.context) + if self.METADATA in prop_diff: + server = self.client_plugin().get_server(self.resource_id) + self.client_plugin().meta_update(server, + after_props[self.METADATA]) if self.TAGS in prop_diff: self._update_server_tags(after_props[self.TAGS] or []) diff --git a/heat/engine/resources/server_base.py b/heat/engine/resources/server_base.py index d87a76b268..d8670f531e 100644 --- a/heat/engine/resources/server_base.py +++ b/heat/engine/resources/server_base.py @@ -208,12 +208,6 @@ class BaseServer(stack_user.StackUser): self.metadata_set(new_md) updaters = [] - server = None - - if self.METADATA in prop_diff: - server = self.client_plugin().get_server(self.resource_id) - self.client_plugin().meta_update(server, - prop_diff[self.METADATA]) if self.SOFTWARE_CONFIG_TRANSPORT in prop_diff: self._update_software_config_transport(prop_diff)