stack_identity=stack_identity),
topic=_engine_topic(self.topic, ctxt, None))
- def metadata_list_stacks(self, ctxt):
- """
- Return the names of the stacks registered with Heat.
- """
- return self.call(ctxt, self.make_msg('metadata_list_stacks'),
- topic=_engine_topic(self.topic, ctxt, None))
-
- def metadata_list_resources(self, ctxt, stack_name):
- """
- Return the resource IDs of the given stack.
- """
- return self.call(ctxt, self.make_msg('metadata_list_resources',
- stack_name=stack_name),
- topic=_engine_topic(self.topic, ctxt, None))
-
- def metadata_get_resource(self, ctxt, stack_name, resource_name):
- """
- Get the metadata for the given resource.
- """
- return self.call(ctxt, self.make_msg('metadata_get_resource',
- stack_name=stack_name, resource_name=resource_name),
- topic=_engine_topic(self.topic, ctxt, None))
-
def metadata_update(self, ctxt, stack_id, resource_name, metadata):
"""
Update the metadata for the given resource.
return [api.format_stack_resource(resource)
for resource in stack if resource.id is not None]
- def metadata_list_stacks(self, context):
- """
- Return the names of the stacks registered with Heat.
- """
- stacks = db_api.stack_get_all(context)
- return [s.name for s in stacks]
-
- def metadata_list_resources(self, context, stack_name):
- """
- Return the resource IDs of the given stack.
- """
- stack = db_api.stack_get_by_name(context, stack_name)
- if stack:
- return [res.name for res in stack.resources]
- else:
- return None
-
- def metadata_get_resource(self, context, stack_name, resource_name):
- """
- Get the metadata for the given resource.
- """
-
- s = db_api.stack_get_by_name(context, stack_name)
- if not s:
- logger.warn("Stack %s not found" % stack_name)
- return ['stack', None]
-
- stack = parser.Stack.load(None, stack=s)
- if resource_name not in stack:
- logger.warn("Resource not found %s:%s." % (stack_name,
- resource_name))
- return ['resource', None]
-
- resource = stack[resource_name]
-
- return [None, resource.metadata]
-
def metadata_update(self, context, stack_id, resource_name, metadata):
"""
Update the metadata for the given resource.
self.ctx, nonexist)
def test_metadata(self):
- err, metadata = self.man.metadata_get_resource(self.ctx,
- self.stack_name,
- 'WebServer')
- self.assertEqual(err, None)
- self.assertTrue('AWS::CloudFormation::Init' in metadata)
-
test_metadata = {'foo': 'bar', 'baz': 'quux', 'blarg': 'wibble'}
err, result = self.man.metadata_update(None,
self.stack.id, 'WebServer',
self.assertEqual(err, None)
self.assertEqual(result, test_metadata)
- err, metadata = self.man.metadata_get_resource(self.ctx,
- self.stack_name,
- 'WebServer')
- self.assertEqual(err, None)
- self.assertFalse('AWS::CloudFormation::Init' in metadata)
- self.assertEqual(metadata, test_metadata)
-
def test_show_watch(self):
# Insert two dummy watch rules into the DB
values = {'stack_name': u'wordpress_ha', 'state': 'NORMAL',
self._test_engine_api('list_stack_resources', 'call',
stack_identity='wordpress')
- def test_metadata_list_stacks(self):
- self._test_engine_api('metadata_list_stacks', 'call')
-
- def test_metadata_list_resources(self):
- self._test_engine_api('metadata_list_resources', 'call',
- stack_name='wordpress')
-
- def test_metadata_get_resource(self):
- self._test_engine_api('metadata_get_resource', 'call',
- stack_name='wordpress',
- resource_name='LogicalResourceId')
-
def test_metadata_update(self):
self._test_engine_api('metadata_update', 'call',
stack_id=6,