From 85896cff7b08322c2640981b826a0216840f483a Mon Sep 17 00:00:00 2001 From: Rabi Mishra Date: Tue, 19 Apr 2016 10:05:20 +0530 Subject: [PATCH] Remove redundant properties construction As we're now using prop_diff, we should get rid of the unnecessary construction of properties from json_snippet(after defn) in handle_update. Change-Id: I27e49d593b0997af21ccdfe16b97f4e4f521d22c --- .../resources/openstack/sahara/templates.py | 28 +++++++------------ heat/tests/openstack/sahara/test_templates.py | 6 +++- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/heat/engine/resources/openstack/sahara/templates.py b/heat/engine/resources/openstack/sahara/templates.py index c9fcd81b6a..7f61cd66f9 100644 --- a/heat/engine/resources/openstack/sahara/templates.py +++ b/heat/engine/resources/openstack/sahara/templates.py @@ -268,23 +268,22 @@ class SaharaNodeGroupTemplate(resource.Resource): entity='network') ] - def _ngt_name(self): - name = self.properties[self.NAME] + def _ngt_name(self, name): if name: return name return re.sub('[^a-zA-Z0-9-]', '', self.physical_resource_name()) - def _prepare_properties(self, properties): + def _prepare_properties(self, props): """Prepares the property values.""" - props = dict((k, v) for k, v in six.iteritems(properties)) if self.NAME in props: - props['name'] = self._ngt_name() + props['name'] = self._ngt_name(props[self.NAME]) if self.FLAVOR in props: props['flavor_id'] = props.pop(self.FLAVOR) return props def handle_create(self): - args = self._prepare_properties(self.properties) + props = dict((k, v) for k, v in six.iteritems(self.properties)) + args = self._prepare_properties(props) node_group_template = self.client().node_group_templates.create(**args) LOG.info(_LI("Node Group Template '%s' has been created"), node_group_template.name) @@ -293,9 +292,6 @@ class SaharaNodeGroupTemplate(resource.Resource): def handle_update(self, json_snippet, tmpl_diff, prop_diff): if prop_diff: - self.properties = json_snippet.properties( - self.properties_schema, - self.context) args = self._prepare_properties(prop_diff) self.client().node_group_templates.update(self.resource_id, **args) @@ -548,23 +544,22 @@ class SaharaClusterTemplate(resource.Resource): entity='network') ] - def _cluster_template_name(self): - name = self.properties[self.NAME] + def _cluster_template_name(self, name): if name: return name return re.sub('[^a-zA-Z0-9-]', '', self.physical_resource_name()) - def _prepare_properties(self, properties): + def _prepare_properties(self, props): """Prepares the property values.""" - props = dict((k, v) for k, v in six.iteritems(properties)) if self.NAME in props: - props['name'] = self._cluster_template_name() + props['name'] = self._cluster_template_name(props[self.NAME]) if self.MANAGEMENT_NETWORK in props: props['net_id'] = props.pop(self.MANAGEMENT_NETWORK) return props def handle_create(self): - args = self._prepare_properties(self.properties) + props = dict((k, v) for k, v in six.iteritems(self.properties)) + args = self._prepare_properties(props) cluster_template = self.client().cluster_templates.create(**args) LOG.info(_LI("Cluster Template '%s' has been created"), cluster_template.name) @@ -573,9 +568,6 @@ class SaharaClusterTemplate(resource.Resource): def handle_update(self, json_snippet, tmpl_diff, prop_diff): if prop_diff: - self.properties = json_snippet.properties( - self.properties_schema, - self.context) args = self._prepare_properties(prop_diff) self.client().cluster_templates.update(self.resource_id, **args) diff --git a/heat/tests/openstack/sahara/test_templates.py b/heat/tests/openstack/sahara/test_templates.py index ccd35a9e09..feaf5fc935 100644 --- a/heat/tests/openstack/sahara/test_templates.py +++ b/heat/tests/openstack/sahara/test_templates.py @@ -252,8 +252,10 @@ class SaharaNodeGroupTemplateTest(common.HeatTestCase): rsrc_defn = self.stack.t.resource_definitions(self.stack)['node-group'] rsrc_defn['Properties']['node_processes'] = [ 'tasktracker', 'datanode'] + rsrc_defn['Properties']['name'] = 'new-ng-template' scheduler.TaskRunner(ngt.update, rsrc_defn)() - args = {'node_processes': ['tasktracker', 'datanode']} + args = {'node_processes': ['tasktracker', 'datanode'], + 'name': 'new-ng-template'} self.ngt_mgr.update.assert_called_once_with('some_ng_id', **args) self.assertEqual((ngt.UPDATE, ngt.COMPLETE), ngt.state) @@ -341,10 +343,12 @@ class SaharaClusterTemplateTest(common.HeatTestCase): 'cluster-template'] rsrc_defn['Properties']['plugin_name'] = 'hdp' rsrc_defn['Properties']['hadoop_version'] = '1.3.2' + rsrc_defn['Properties']['name'] = 'new-cluster-template' scheduler.TaskRunner(ct.update, rsrc_defn)() args = { 'plugin_name': 'hdp', 'hadoop_version': '1.3.2', + 'name': 'new-cluster-template' } self.ct_mgr.update.assert_called_once_with('some_ct_id', **args) self.assertEqual((ct.UPDATE, ct.COMPLETE), ct.state)