]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Store the context in the resources
authorZane Bitter <zbitter@redhat.com>
Tue, 3 Jul 2012 15:11:12 +0000 (17:11 +0200)
committerZane Bitter <zbitter@redhat.com>
Wed, 4 Jul 2012 15:20:39 +0000 (17:20 +0200)
It's a pain to have to look it up in the stack every time

Change-Id: I655260aafd17bc17b5895f5b53d79b20aa8eecbb
Signed-off-by: Zane Bitter <zbitter@redhat.com>
heat/engine/cloud_watch.py
heat/engine/resources.py
heat/engine/stack.py
heat/engine/user.py
heat/engine/wait_condition.py

index c405b593226546522efe56b9829129badc12a157..13cf97d843ddd4710ea76df92d3475be00b83635 100644 (file)
@@ -68,12 +68,12 @@ class CloudWatchAlarm(Resource):
             'stack_name': self.stack.name
         }
 
-        wr = db_api.watch_rule_create(self.stack.context, wr_values)
+        wr = db_api.watch_rule_create(self.context, wr_values)
         self.instance_id = wr.id
 
     def handle_delete(self):
         try:
-            db_api.watch_rule_delete(self.stack.context, self.name)
+            db_api.watch_rule_delete(self.context, self.name)
         except exception.NotFound:
             pass
 
index 2ecb1fa5847fa5bb812ccb300b9f43f55cc9466f..39f4ebfc79af7689a11662f75401705e9e275487 100644 (file)
@@ -65,6 +65,7 @@ class Resource(object):
     def __init__(self, name, json_snippet, stack):
         self.references = []
         self.stack = stack
+        self.context = stack.context
         self.name = name
         self.t = stack.resolve_static_data(json_snippet)
         self.properties = checkeddict.Properties(name, self.properties_schema)
@@ -77,7 +78,7 @@ class Resource(object):
             # place for it.
             self.t['Metadata'] = {}
 
-        resource = db_api.resource_get_by_name_and_stack(self.stack.context,
+        resource = db_api.resource_get_by_name_and_stack(self.context,
                                                          name, stack.id)
         if resource:
             self.instance_id = resource.nova_instance
@@ -117,7 +118,7 @@ class Resource(object):
         if self._keystone:
             return self._keystone
 
-        con = self.stack.context
+        con = self.context
         self._keystone = kc.Client(username=con.username,
                                    password=con.password,
                                    tenant_name=con.tenant,
@@ -128,8 +129,7 @@ class Resource(object):
         if service_type in self._nova:
             return self._nova[service_type]
 
-        con = self.stack.context
-        self._nova[service_type] = auth.authenticate(con,
+        self._nova[service_type] = auth.authenticate(self.context,
                                                      service_type=service_type,
                                                      service_name=None)
         return self._nova[service_type]
@@ -203,7 +203,7 @@ class Resource(object):
             return result
 
         try:
-            db_api.resource_get(self.stack.context, self.id).delete()
+            db_api.resource_get(self.context, self.id).delete()
         except exception.NotFound:
             # Don't fail on delete if the db entry has
             # not been created yet.
@@ -225,7 +225,7 @@ class Resource(object):
                   'rsrc_metadata': metadata,
                   'stack_name': self.stack.name}
 
-            new_rs = db_api.resource_create(self.stack.context, rs)
+            new_rs = db_api.resource_create(self.context, rs)
             self.id = new_rs.id
 
             if new_rs.stack:
@@ -247,7 +247,7 @@ class Resource(object):
               'resource_type': self.t['Type'],
               'resource_properties': dict(self.properties)}
         try:
-            db_api.event_create(self.stack.context, ev)
+            db_api.event_create(self.context, ev)
         except Exception as ex:
             logger.error('DB error %s' % str(ex))
 
@@ -256,7 +256,7 @@ class Resource(object):
 
         if self.id is not None:
             try:
-                rs = db_api.resource_get(self.stack.context, self.id)
+                rs = db_api.resource_get(self.context, self.id)
                 rs.update_and_save({'state': self.state,
                                     'state_description': reason,
                                     'nova_instance': self.instance_id})
index a42f7898ea689386d9a0c7c4312f842fc3c6e84a..f35ae7533f6980867f60d5d5736d4ac678d71236 100644 (file)
@@ -46,7 +46,7 @@ class Stack(Resource):
 
     def nested(self):
         if self._nested is None and self.instance_id is not None:
-            self._nested = parser.Stack.load(self.stack.context,
+            self._nested = parser.Stack.load(self.context,
                                              self.instance_id)
 
             if self._nested is None:
@@ -61,7 +61,7 @@ class Stack(Resource):
         template = parser.Template(child_template)
         params = parser.Parameters(self.name, template, self._params())
 
-        self._nested = parser.Stack(self.stack.context,
+        self._nested = parser.Stack(self.context,
                                     self.name,
                                     template,
                                     params)
index 5e14eaaa136b669a11f965fe781eff209fb299b2..083fb077a9b53715edb8d3fd56aad83784ff2130 100644 (file)
@@ -49,7 +49,7 @@ class User(Resource):
                 'Password' in self.properties['LoginProfile']:
                 passwd = self.properties['LoginProfile']['Password']
 
-        tenant_id = self.stack.context.tenant_id
+        tenant_id = self.context.tenant_id
         user = self.keystone().users.create(self.name, passwd,
                                             '%s@heat-api.org' % self.name,
                                             tenant_id=tenant_id,
@@ -119,7 +119,7 @@ class AccessKey(Resource):
         self._secret = None
 
     def _user_from_name(self, username):
-        tenant_id = self.stack.context.tenant_id
+        tenant_id = self.context.tenant_id
         users = self.keystone().users.list(tenant_id=tenant_id)
         for u in users:
             if u.name == self.properties['UserName']:
@@ -132,7 +132,7 @@ class AccessKey(Resource):
             raise exception.NotFound('could not find user %s' %
                                      self.properties['UserName'])
 
-        tenant_id = self.stack.context.tenant_id
+        tenant_id = self.context.tenant_id
         cred = self.keystone().ec2.create(user.id, tenant_id)
         self.instance_id_set(cred.access)
         self._secret = cred.secret
index 533de27ece1d0c7cf4b75fc18ed9e12a0b0c8764..22d508063093bf5bffbeb5270124d2653e3714b3 100644 (file)
@@ -70,7 +70,6 @@ class WaitCondition(resources.Resource):
     def handle_create(self):
         self._get_handle_resource_id()
         res_name = self.resource_id
-        cntx = self.stack.context
 
         # keep polling our Metadata to see if the cfn-signal has written
         # it yet. The execution here is limited by timeout.
@@ -82,7 +81,7 @@ class WaitCondition(resources.Resource):
         try:
             while status == 'WAITING':
                 try:
-                    res = db_api.resource_get_by_name_and_stack(cntx,
+                    res = db_api.resource_get_by_name_and_stack(self.context,
                                                                 res_name,
                                                                 self.stack.id)
                 except Exception as ex:
@@ -125,7 +124,7 @@ class WaitCondition(resources.Resource):
         res = None
         if key == 'Data':
             try:
-                r = db_api.resource_get(self.stack.context, self.id)
+                r = db_api.resource_get(self.context, self.id)
                 if r.rsrc_metadata and 'Data' in r.rsrc_metadata:
                     res = r.rsrc_metadata['Data']
             except Exception as ex: