From f74aef83bf180ddee3cc9a8a2f7de77707e011d1 Mon Sep 17 00:00:00 2001 From: Zane Bitter Date: Wed, 11 Jul 2012 10:41:40 -0400 Subject: [PATCH] Avoid unneccesary template parsing Only parse the parts of the resource template that we need. Change-Id: I4628e699452dc390848fc15197a5e04a3095399a Signed-off-by: Zane Bitter --- heat/engine/cloud_watch.py | 2 +- heat/engine/instance.py | 2 +- heat/engine/resources.py | 12 ++---------- 3 files changed, 4 insertions(+), 12 deletions(-) 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) -- 2.45.2