self._nova = {}
self._keystone = None
- def parsed_template(self):
- return self.stack.resolve_runtime_data(self.t)
+ def parsed_template(self, section=None, default={}):
+ '''
+ Return the parsed template data for the resource. May be limited to
+ only one section of the data, in which case a default value may also
+ be supplied.
+ '''
+ if section is None:
+ template = self.t
+ else:
+ template = self.t.get(section, default)
+ return self.stack.resolve_runtime_data(template)
def __str__(self):
return '%s "%s"' % (self.__class__.__name__, self.name)
res.state_set('blarg', 'wibble')
self.assertEqual(res.state_description, 'wibble')
+ def test_parsed_template(self):
+ tmpl = {
+ 'Type': 'Foo',
+ 'foo': {'Fn::Join': [' ', ['bar', 'baz', 'quux']]}
+ }
+ res = resources.GenericResource('test_resource', tmpl, self.stack)
+
+ parsed_tmpl = res.parsed_template()
+ self.assertEqual(parsed_tmpl['Type'], 'Foo')
+ self.assertEqual(parsed_tmpl['foo'], 'bar baz quux')
+
+ self.assertEqual(res.parsed_template('foo'), 'bar baz quux')
+ self.assertEqual(res.parsed_template('foo', 'bar'), 'bar baz quux')
+
+ def test_parsed_template_default(self):
+ tmpl = {'Type': 'Foo'}
+ res = resources.GenericResource('test_resource', tmpl, self.stack)
+ self.assertEqual(res.parsed_template('foo'), {})
+ self.assertEqual(res.parsed_template('foo', 'bar'), 'bar')
+
# allows testing of the test directly, shown below
if __name__ == '__main__':