]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Store all event data in DB
authorZane Bitter <zbitter@redhat.com>
Tue, 17 Apr 2012 15:38:48 +0000 (17:38 +0200)
committerZane Bitter <zbitter@redhat.com>
Tue, 17 Apr 2012 15:38:48 +0000 (17:38 +0200)
Fixes #64

Signed-off-by: Zane Bitter <zbitter@redhat.com>
heat/db/sqlalchemy/migrate_repo/versions/002_Add_event_data.py [new file with mode: 0644]
heat/db/sqlalchemy/models.py
heat/engine/manager.py
heat/version.py

diff --git a/heat/db/sqlalchemy/migrate_repo/versions/002_Add_event_data.py b/heat/db/sqlalchemy/migrate_repo/versions/002_Add_event_data.py
new file mode 100644 (file)
index 0000000..a0d0647
--- /dev/null
@@ -0,0 +1,24 @@
+from sqlalchemy import *
+from migrate import *
+
+
+def upgrade(migrate_engine):
+    meta = MetaData(bind=migrate_engine)
+    event = Table('event', meta, autoload=True)
+
+    Column('logical_resource_id', String(255)).create(event)
+    Column('physical_resource_id', String(255)).create(event)
+    Column('resource_status_reason', String(255)).create(event)
+    Column('resource_type', String(255)).create(event)
+    Column('resource_properties', PickleType).create(event)
+
+
+def downgrade(migrate_engine):
+    meta = MetaData(bind=migrate_engine)
+    event = Table('event', meta, autoload=True)
+
+    event.c.logical_resource_id.drop()
+    event.c.physical_resource_id.drop()
+    event.c.resource_status_reason.drop()
+    event.c.resource_type.drop()
+    event.c.resource_properties.drop()
index 5dea6f61021ba1c267b92ad21435b3c8c27e9039..c1f75b8f2061160df0e4073f73337441dd6a6305 100644 (file)
@@ -144,6 +144,12 @@ class Event(BASE, HeatBase):
         backref=backref('events'), cascade="all, delete", passive_deletes=True)
 
     name = Column(String)
+    logical_resource_id = Column(String)
+    physical_resource_id = Column(String)
+    resource_status_reason = Column(String)
+    resource_type = Column(String)
+    resource_properties = Column(PickleType)
+
 
 
 class Resource(BASE, HeatBase):
index 6a0e15793560d6abffaef4131f2292fb20cf3a15..135554fe4f6778a99739a53dc25180f7c0c3b09d 100644 (file)
@@ -181,12 +181,15 @@ class EngineManager(manager.Manager):
 
         def parse_event(e):
             s = e.stack
-            # TODO Missing LogicalResourceId, PhysicalResourceId, ResourceType,
-            # ResourceStatusReason
             return {'EventId': e.id,
-                     'StackId': e.stack_id,
-                     'StackName': s.name,
-                     'Timestamp': str(e.created_at),
-                     'ResourceStatus': str(e.name)}
+                    'StackId': e.stack_id,
+                    'StackName': s.name,
+                    'Timestamp': str(e.created_at),
+                    'LogicalResourceId': e.logical_resource_id,
+                    'PhysicalResourceId': e.physical_resource_id,
+                    'ResourceType': e.resource_type,
+                    'ResourceStatusReason': e.resource_status_reason,
+                    'ResourceProperties': e.resource_properties,
+                    'ResourceStatus': e.name}
 
         return {'events': [parse_event(e) for e in events]}
index 5b6b577390da22a1924334c269807e3331dafe21..edbe8b9dba527486c789dc4c2b372cd31fb8f0a1 100644 (file)
@@ -20,8 +20,8 @@ except ImportError:
                     'revision_id': 'LOCALREVISION',
                     'revno': 0}
 
-GLANCE_VERSION = ['0.0', '1']
-COUNT, REVSISION = GLANCE_VERSION
+GLANCE_VERSION = ['0.0', '2']
+COUNT, REVISION = GLANCE_VERSION
 
 FINAL = False   # This becomes true at Release Candidate time