]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
RPC API: Return an identifier for events
authorZane Bitter <zbitter@redhat.com>
Thu, 22 Nov 2012 10:06:57 +0000 (11:06 +0100)
committerZane Bitter <zbitter@redhat.com>
Thu, 22 Nov 2012 13:13:58 +0000 (14:13 +0100)
Change-Id: Iae2f08014e28997e499771ba9d89feb3954540da
Signed-off-by: Zane Bitter <zbitter@redhat.com>
heat/api/cfn/v1/stacks.py
heat/engine/api.py
heat/tests/test_api_cfn_v1.py
heat/tests/test_engine_service.py

index 630dab2628e335ed9872715d5725b6100a7e6fb9..b7d6d2ea94c65da3660b20cee5550fc9a8dc26ab 100644 (file)
@@ -50,12 +50,15 @@ class StackController(object):
 
     def _stackid_format(self, resp):
         """
-        Add a host:port:stack prefix, this formats the StackId in the response
-        more like the AWS spec
+        Format the StackId field in the response as an ARN, and process other
+        IDs into the correct format.
         """
         if 'StackId' in resp:
             identity = identifier.HeatIdentifier(**resp['StackId'])
             resp['StackId'] = identity.arn()
+        if 'EventId' in resp:
+            identity = identifier.EventIdentifier(**resp['EventId'])
+            resp['EventId'] = identity.event_id
         return resp
 
     @staticmethod
index f53c16d399599b0b8e3a0e206da9e4b1d72b7d3b..62711f799f337a674e92407f3e7912cd6c85e626 100644 (file)
@@ -157,7 +157,7 @@ EVENT_KEYS = (
     EVENT_RES_STATUS, EVENT_RES_STATUS_DATA, EVENT_RES_TYPE,
     EVENT_RES_PROPERTIES,
 ) = (
-    'event_id',
+    'event_identity',
     STACK_ID, STACK_NAME,
     "event_time",
     RES_NAME, RES_PHYSICAL_ID,
@@ -170,7 +170,7 @@ def format_event(event):
     stack_identifier = event.stack.identifier()
 
     result = {
-        EVENT_ID: event.id,
+        EVENT_ID: dict(event.identifier()),
         EVENT_STACK_ID: dict(stack_identifier),
         EVENT_STACK_NAME: stack_identifier.stack_name,
         EVENT_TIMESTAMP: timeutils.isotime(event.timestamp),
index d1d95cd5018d33d25f6383064d39e8aa26d21e67..214baec2319a4653dad0767b74b6953b3ce8ec59 100644 (file)
@@ -779,7 +779,12 @@ class StackControllerTest(unittest.TestCase):
                                             u'path': u''},
                         u'logical_resource_id': u'WikiDatabase',
                         u'resource_status_reason': u'state changed',
-                        u'event_id': 42,
+                        u'event_identity': {
+                            u'tenant': u't',
+                            u'stack_name': u'wordpress',
+                            u'stack_id': u'6',
+                            u'path': u'/resources/WikiDatabase/events/42'
+                        },
                         u'resource_status': u'IN_PROGRESS',
                         u'physical_resource_id': None,
                         u'resource_properties':
@@ -802,7 +807,7 @@ class StackControllerTest(unittest.TestCase):
         expected = {'DescribeStackEventsResponse':
             {'DescribeStackEventsResult':
             {'StackEvents':
-                [{'EventId': 42,
+                [{'EventId': u'42',
                 'StackId': u'arn:openstack:heat::t:stacks/wordpress/6',
                 'ResourceStatus': u'IN_PROGRESS',
                 'ResourceType': u'AWS::EC2::Instance',
index 4a6c74ea3f3c97270e164bc326852583faf0f435..7eb4cb90b2a2157671f06bee952eeeadf5ef6359 100644 (file)
@@ -412,8 +412,9 @@ class stackServiceTest(unittest.TestCase):
 
         self.assertEqual(len(events), 2)
         for ev in events:
-            self.assertTrue('event_id' in ev)
-            self.assertTrue(ev['event_id'] > 0)
+            self.assertTrue('event_identity' in ev)
+            self.assertEqual(type(ev['event_identity']), dict)
+            self.assertTrue(ev['event_identity']['path'].rsplit('/', 1)[1])
 
             self.assertTrue('logical_resource_id' in ev)
             self.assertEqual(ev['logical_resource_id'], 'WebServer')