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
This commit is contained in:
parent
b5f2d76bdb
commit
85896cff7b
|
@ -268,23 +268,22 @@ class SaharaNodeGroupTemplate(resource.Resource):
|
||||||
entity='network')
|
entity='network')
|
||||||
]
|
]
|
||||||
|
|
||||||
def _ngt_name(self):
|
def _ngt_name(self, name):
|
||||||
name = self.properties[self.NAME]
|
|
||||||
if name:
|
if name:
|
||||||
return name
|
return name
|
||||||
return re.sub('[^a-zA-Z0-9-]', '', self.physical_resource_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."""
|
"""Prepares the property values."""
|
||||||
props = dict((k, v) for k, v in six.iteritems(properties))
|
|
||||||
if self.NAME in props:
|
if self.NAME in props:
|
||||||
props['name'] = self._ngt_name()
|
props['name'] = self._ngt_name(props[self.NAME])
|
||||||
if self.FLAVOR in props:
|
if self.FLAVOR in props:
|
||||||
props['flavor_id'] = props.pop(self.FLAVOR)
|
props['flavor_id'] = props.pop(self.FLAVOR)
|
||||||
return props
|
return props
|
||||||
|
|
||||||
def handle_create(self):
|
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)
|
node_group_template = self.client().node_group_templates.create(**args)
|
||||||
LOG.info(_LI("Node Group Template '%s' has been created"),
|
LOG.info(_LI("Node Group Template '%s' has been created"),
|
||||||
node_group_template.name)
|
node_group_template.name)
|
||||||
|
@ -293,9 +292,6 @@ class SaharaNodeGroupTemplate(resource.Resource):
|
||||||
|
|
||||||
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
|
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
|
||||||
if prop_diff:
|
if prop_diff:
|
||||||
self.properties = json_snippet.properties(
|
|
||||||
self.properties_schema,
|
|
||||||
self.context)
|
|
||||||
args = self._prepare_properties(prop_diff)
|
args = self._prepare_properties(prop_diff)
|
||||||
self.client().node_group_templates.update(self.resource_id, **args)
|
self.client().node_group_templates.update(self.resource_id, **args)
|
||||||
|
|
||||||
|
@ -548,23 +544,22 @@ class SaharaClusterTemplate(resource.Resource):
|
||||||
entity='network')
|
entity='network')
|
||||||
]
|
]
|
||||||
|
|
||||||
def _cluster_template_name(self):
|
def _cluster_template_name(self, name):
|
||||||
name = self.properties[self.NAME]
|
|
||||||
if name:
|
if name:
|
||||||
return name
|
return name
|
||||||
return re.sub('[^a-zA-Z0-9-]', '', self.physical_resource_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."""
|
"""Prepares the property values."""
|
||||||
props = dict((k, v) for k, v in six.iteritems(properties))
|
|
||||||
if self.NAME in props:
|
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:
|
if self.MANAGEMENT_NETWORK in props:
|
||||||
props['net_id'] = props.pop(self.MANAGEMENT_NETWORK)
|
props['net_id'] = props.pop(self.MANAGEMENT_NETWORK)
|
||||||
return props
|
return props
|
||||||
|
|
||||||
def handle_create(self):
|
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)
|
cluster_template = self.client().cluster_templates.create(**args)
|
||||||
LOG.info(_LI("Cluster Template '%s' has been created"),
|
LOG.info(_LI("Cluster Template '%s' has been created"),
|
||||||
cluster_template.name)
|
cluster_template.name)
|
||||||
|
@ -573,9 +568,6 @@ class SaharaClusterTemplate(resource.Resource):
|
||||||
|
|
||||||
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
|
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
|
||||||
if prop_diff:
|
if prop_diff:
|
||||||
self.properties = json_snippet.properties(
|
|
||||||
self.properties_schema,
|
|
||||||
self.context)
|
|
||||||
args = self._prepare_properties(prop_diff)
|
args = self._prepare_properties(prop_diff)
|
||||||
self.client().cluster_templates.update(self.resource_id, **args)
|
self.client().cluster_templates.update(self.resource_id, **args)
|
||||||
|
|
||||||
|
|
|
@ -252,8 +252,10 @@ class SaharaNodeGroupTemplateTest(common.HeatTestCase):
|
||||||
rsrc_defn = self.stack.t.resource_definitions(self.stack)['node-group']
|
rsrc_defn = self.stack.t.resource_definitions(self.stack)['node-group']
|
||||||
rsrc_defn['Properties']['node_processes'] = [
|
rsrc_defn['Properties']['node_processes'] = [
|
||||||
'tasktracker', 'datanode']
|
'tasktracker', 'datanode']
|
||||||
|
rsrc_defn['Properties']['name'] = 'new-ng-template'
|
||||||
scheduler.TaskRunner(ngt.update, rsrc_defn)()
|
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.ngt_mgr.update.assert_called_once_with('some_ng_id', **args)
|
||||||
self.assertEqual((ngt.UPDATE, ngt.COMPLETE), ngt.state)
|
self.assertEqual((ngt.UPDATE, ngt.COMPLETE), ngt.state)
|
||||||
|
|
||||||
|
@ -341,10 +343,12 @@ class SaharaClusterTemplateTest(common.HeatTestCase):
|
||||||
'cluster-template']
|
'cluster-template']
|
||||||
rsrc_defn['Properties']['plugin_name'] = 'hdp'
|
rsrc_defn['Properties']['plugin_name'] = 'hdp'
|
||||||
rsrc_defn['Properties']['hadoop_version'] = '1.3.2'
|
rsrc_defn['Properties']['hadoop_version'] = '1.3.2'
|
||||||
|
rsrc_defn['Properties']['name'] = 'new-cluster-template'
|
||||||
scheduler.TaskRunner(ct.update, rsrc_defn)()
|
scheduler.TaskRunner(ct.update, rsrc_defn)()
|
||||||
args = {
|
args = {
|
||||||
'plugin_name': 'hdp',
|
'plugin_name': 'hdp',
|
||||||
'hadoop_version': '1.3.2',
|
'hadoop_version': '1.3.2',
|
||||||
|
'name': 'new-cluster-template'
|
||||||
}
|
}
|
||||||
self.ct_mgr.update.assert_called_once_with('some_ct_id', **args)
|
self.ct_mgr.update.assert_called_once_with('some_ct_id', **args)
|
||||||
self.assertEqual((ct.UPDATE, ct.COMPLETE), ct.state)
|
self.assertEqual((ct.UPDATE, ct.COMPLETE), ct.state)
|
||||||
|
|
Loading…
Reference in New Issue