From: Zane Bitter Date: Wed, 11 Jul 2012 14:41:40 +0000 (-0400) Subject: Avoid unneccesary template parsing X-Git-Tag: 2014.1~1616 X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=f74aef83bf180ddee3cc9a8a2f7de77707e011d1;p=openstack-build%2Fheat-build.git Avoid unneccesary template parsing Only parse the parts of the resource template that we need. Change-Id: I4628e699452dc390848fc15197a5e04a3095399a Signed-off-by: Zane Bitter --- diff --git a/heat/engine/cloud_watch.py b/heat/engine/cloud_watch.py index 13cf97d8..451986ea 100644 --- a/heat/engine/cloud_watch.py +++ b/heat/engine/cloud_watch.py @@ -63,7 +63,7 @@ class CloudWatchAlarm(Resource): def handle_create(self): wr_values = { 'name': self.name, - 'rule': self.parsed_template()['Properties'], + 'rule': self.parsed_template('Properties'), 'state': 'NORMAL', 'stack_name': self.stack.name } diff --git a/heat/engine/instance.py b/heat/engine/instance.py index 07de667b..0bc12238 100644 --- a/heat/engine/instance.py +++ b/heat/engine/instance.py @@ -183,7 +183,7 @@ class Instance(resources.Resource): (userdata, 'startup', 'x-shellscript')] if 'Metadata' in self.t: - metadata = self.parsed_template()['Metadata'] + metadata = self.parsed_template('Metadata') attachments.append((json.dumps(metadata), 'cfn-init-data', 'x-cfninitdata')) diff --git a/heat/engine/resources.py b/heat/engine/resources.py index 54564bfc..5fa519ae 100644 --- a/heat/engine/resources.py +++ b/heat/engine/resources.py @@ -69,14 +69,6 @@ class Resource(object): self.name = name self.t = stack.resolve_static_data(json_snippet) self.properties = checkeddict.Properties(name, self.properties_schema) - if 'Properties' not in self.t: - # make a dummy entry to prevent having to check all over the - # place for it. - self.t['Properties'] = {} - if 'Metadata' not in self.t: - # make a dummy entry to prevent having to check all over the - # place for it. - self.t['Metadata'] = {} resource = db_api.resource_get_by_name_and_stack(self.context, name, stack.id) @@ -146,7 +138,7 @@ class Resource(object): return self._nova[service_type] def calculate_properties(self): - for p, v in self.parsed_template()['Properties'].items(): + for p, v in self.parsed_template('Properties').items(): self.properties[p] = v def create(self): @@ -285,7 +277,7 @@ class Resource(object): logger.error('DB error %s' % str(ex)) elif new_state in (self.CREATE_COMPLETE, self.CREATE_FAILED): - self._create_db(metadata=self.parsed_template()['Metadata']) + self._create_db(metadata=self.parsed_template('Metadata')) if new_state != old_state: self._add_event(new_state, reason)