]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
RPC API: Pass a stack identifier to metadata_update
authorZane Bitter <zbitter@redhat.com>
Wed, 19 Dec 2012 17:48:25 +0000 (18:48 +0100)
committerZane Bitter <zbitter@redhat.com>
Wed, 19 Dec 2012 17:51:38 +0000 (18:51 +0100)
This brings it into line with all of the other RPC functions.

bug 1088937

Change-Id: Ia45a12d652e96fb6bb03ce90d0b5a5e2ddeeb510
Signed-off-by: Zane Bitter <zbitter@redhat.com>
heat/api/cfn/v1/waitcondition.py
heat/engine/service.py
heat/rpc/client.py
heat/tests/test_engine_service.py
heat/tests/test_rpc_client.py

index 66260224e199b032d22a5ba958f23b7fccda553b..c08924da94c6d64d6d8aeedfe64969afdc6a16ab 100644 (file)
@@ -31,7 +31,7 @@ class WaitConditionController:
         identity = identifier.ResourceIdentifier.from_arn(arn)
         try:
             md = self.engine.metadata_update(con,
-                     stack_id=identity.stack_id,
+                     stack_id=dict(identity.stack()),
                      resource_name=identity.resource_name,
                      metadata=body)
         except rpc_common.RemoteError as ex:
index 565258a2098ff0451edbd7ebb64cbfe3821e0db2..5a324e888f25524987254ec382271bc551d3bab7 100644 (file)
@@ -413,15 +413,14 @@ class EngineService(service.Service):
                 for resource in stack if resource.id is not None]
 
     @request_context
-    def metadata_update(self, context, stack_id, resource_name, metadata):
+    def metadata_update(self, context, stack_identity,
+                        resource_name, metadata):
         """
         Update the metadata for the given resource.
         """
-        s = db_api.stack_get(None, stack_id)
-        if s is None:
-            raise AttributeError("Stack %s not found" % stack_id)
+        s = self._get_stack(context, stack_identity)
 
-        stack = parser.Stack.load(None, stack=s)
+        stack = parser.Stack.load(context, stack=s)
         if resource_name not in stack:
             raise AttributeError("Resource not found %s" % resource_name)
 
index 5fa837477b8b3a9c687ca5b2884c96089083f0d8..839fad1ee5b80aa9ed2945205787c902c4c02463 100644 (file)
@@ -205,12 +205,12 @@ class EngineClient(heat.openstack.common.rpc.proxy.RpcProxy):
                                              stack_identity=stack_identity),
                          topic=_engine_topic(self.topic, ctxt, None))
 
-    def metadata_update(self, ctxt, stack_id, resource_name, metadata):
+    def metadata_update(self, ctxt, stack_identity, resource_name, metadata):
         """
         Update the metadata for the given resource.
         """
         return self.call(ctxt, self.make_msg('metadata_update',
-                         stack_id=stack_id,
+                         stack_identity=stack_identity,
                          resource_name=resource_name, metadata=metadata),
                          topic=_engine_topic(self.topic, ctxt, None))
 
index d94d6b5147302d118cacb68ed3af1da813f0634b..e945c6ae83fa60adff5e1f7a2db1131923528be2 100644 (file)
@@ -613,21 +613,26 @@ class stackServiceTest(unittest.TestCase):
 
     def test_metadata(self):
         test_metadata = {'foo': 'bar', 'baz': 'quux', 'blarg': 'wibble'}
-        result = self.man.metadata_update(None, self.stack.id, 'WebServer',
-                                               test_metadata)
+        result = self.man.metadata_update(self.ctx,
+                                          dict(self.stack_identity),
+                                          'WebServer', test_metadata)
         self.assertEqual(result, test_metadata)
 
     def test_metadata_err_stack(self):
         test_metadata = {'foo': 'bar', 'baz': 'quux', 'blarg': 'wibble'}
+        nonexist = dict(self.stack_identity)
+        nonexist['stack_name'] = 'foo'
         self.assertRaises(AttributeError,
                           self.man.metadata_update,
-                          None, 'noexistid', 'WebServer', test_metadata)
+                          self.ctx, nonexist,
+                          'WebServer', test_metadata)
 
     def test_metadata_err_resource(self):
         test_metadata = {'foo': 'bar', 'baz': 'quux', 'blarg': 'wibble'}
         self.assertRaises(AttributeError,
                           self.man.metadata_update,
-                          None, self.stack.id, 'NooServer', test_metadata)
+                          self.ctx, dict(self.stack_identity),
+                          'NooServer', test_metadata)
 
     def test_show_watch(self):
         # Insert two dummy watch rules into the DB
index 61abfc7ca1c52d4d57f7859ca48963cdeae0ed81..e794d8dd326520ec1d5eb7240492d964befa58b9 100644 (file)
@@ -141,7 +141,7 @@ class EngineRpcAPITestCase(unittest.TestCase):
 
     def test_metadata_update(self):
         self._test_engine_api('metadata_update', 'call',
-                              stack_id=6,
+                              stack_identity=self.identity,
                               resource_name='LogicalResourceId',
                               metadata={u'wordpress': []})