]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Remove unnecesssary nova constructor calls in each manager API call path
authorSteven Dake <sdake@redhat.com>
Sun, 16 Sep 2012 19:40:02 +0000 (12:40 -0700)
committerSteven Dake <sdake@redhat.com>
Mon, 17 Sep 2012 19:13:04 +0000 (12:13 -0700)
auth.authenticate() creates a nova client object.  This nova client
object is never reused introducing a 40msec penalty for each API call.
The heat-api-cfn module authenticates incoming requests.  In a
properly secured environment (one where RPC is secured), the
auth.authenticate() calls serve no purpose.

Change-Id: I847af259f521a32a7bf3fda0ce3f72735f762a0c
Signed-off-by: Steven Dake <sdake@redhat.com>
heat/engine/auth.py
heat/engine/manager.py
heat/tests/test_engine_manager.py

index 3712d11cbd8d501289c1e7a47de580362105d1d1..2a4814e617664f4a7e12f9eab50f69030db3c3e4 100644 (file)
@@ -70,8 +70,10 @@ def authenticate(con, service_type='orchestration', service_name='heat'):
     """
 
     if con.password is not None:
-        nova = client.Client(con.username, con.password,
-                             con.tenant, con.auth_url,
+        nova = client.Client(username=con.username,
+                             api_key=con.password,
+                             project_id=con.tenant,
+                             auth_url=con.auth_url,
                              service_type=service_type,
                              service_name=service_name)
         nova.authenticate()
index 73c0e544906471a2bef1977759af62f7eef3edd8..f7da9d9f229ea84c7b26d693f9388fb1865ac8be 100644 (file)
@@ -69,8 +69,6 @@ class EngineManager(manager.Manager):
         arg1 -> RPC context.
         arg2 -> Name of the stack to look up.
         """
-        auth.authenticate(context)
-
         s = db_api.stack_get_by_name(context, stack_name)
         if s:
             stack = parser.Stack.load(context, s.id)
@@ -101,8 +99,6 @@ class EngineManager(manager.Manager):
         arg2 -> Name of the stack you want to see, or None to see all
         arg3 -> Dict of http request parameters passed in from API side.
         """
-        auth.authenticate(context)
-
         if stack_identity is not None:
             stacks = [self._get_stack(context, stack_identity)]
         else:
@@ -128,8 +124,6 @@ class EngineManager(manager.Manager):
         """
         logger.info('template is %s' % template)
 
-        auth.authenticate(context)
-
         if db_api.stack_get_by_name(None, stack_name):
             raise AttributeError('Stack already exists with that name')
 
@@ -165,8 +159,6 @@ class EngineManager(manager.Manager):
         """
         logger.info('template is %s' % template)
 
-        auth.authenticate(context)
-
         # Get the database representation of the existing stack
         db_stack = self._get_stack(context, stack_identity)
 
@@ -199,8 +191,6 @@ class EngineManager(manager.Manager):
         arg3 -> Template of stack you want to create.
         arg4 -> Params passed from API.
         """
-        auth.authenticate(context)
-
         logger.info('validate_template')
         if template is None:
             msg = _("No Template provided.")
@@ -238,7 +228,6 @@ class EngineManager(manager.Manager):
         arg2 -> Name of the stack you want to see.
         arg3 -> Dict of http request parameters passed in from API side.
         """
-        auth.authenticate(context)
         s = self._get_stack(context, stack_identity)
         if s:
             return s.raw_template.template
@@ -251,9 +240,6 @@ class EngineManager(manager.Manager):
         arg2 -> Name of the stack you want to delete.
         arg3 -> Params passed from API.
         """
-
-        auth.authenticate(context)
-
         st = self._get_stack(context, stack_identity)
 
         logger.info('deleting stack %s' % st.name)
@@ -269,9 +255,6 @@ class EngineManager(manager.Manager):
         arg2 -> Name of the stack you want to get events for.
         arg3 -> Params passed from API.
         """
-
-        auth.authenticate(context)
-
         if stack_identity is not None:
             st = self._get_stack(context, stack_identity)
 
@@ -282,9 +265,6 @@ class EngineManager(manager.Manager):
         return {'events': [api.format_event(context, e) for e in events]}
 
     def event_create(self, context, event):
-
-        auth.authenticate(context)
-
         stack_name = event['stack']
         resource_name = event['resource']
         stack = db_api.stack_get_by_name(context, stack_name)
@@ -312,8 +292,6 @@ class EngineManager(manager.Manager):
             return [msg, None]
 
     def describe_stack_resource(self, context, stack_identity, resource_name):
-        auth.authenticate(context)
-
         s = self._get_stack(context, stack_identity)
 
         stack = parser.Stack.load(context, s.id)
@@ -328,8 +306,6 @@ class EngineManager(manager.Manager):
 
     def describe_stack_resources(self, context, stack_identity,
                                  physical_resource_id, logical_resource_id):
-        auth.authenticate(context)
-
         if stack_identity is not None:
             s = self._get_stack(context, stack_identity)
         else:
@@ -355,8 +331,6 @@ class EngineManager(manager.Manager):
                                          name_match(resource)]
 
     def list_stack_resources(self, context, stack_identity):
-        auth.authenticate(context)
-
         s = self._get_stack(context, stack_identity)
 
         stack = parser.Stack.load(context, s.id)
index 75564ab0b2a237a4fb3d1e6986ba76df0f959da2..66d50accf92a556e58f84b66b4e010df533cdab2 100644 (file)
@@ -48,7 +48,6 @@ def create_context(mocks, user='stacks_test_user',
     mocks.StubOutWithMock(ctx, 'tenant')
     ctx.username = user
     ctx.tenant = tenant
-    mocks.StubOutWithMock(auth, 'authenticate')
     return ctx
 
 
@@ -133,7 +132,6 @@ class stackManagerCreateUpdateDeleteTest(unittest.TestCase):
         self.username = 'stack_manager_create_test_user'
         self.tenant = 'stack_manager_create_test_tenant'
         self.ctx = create_context(self.m, self.username, self.tenant)
-        auth.authenticate(self.ctx).AndReturn(True)
 
         self.man = manager.EngineManager()
 
@@ -360,7 +358,6 @@ class stackManagerTest(unittest.TestCase):
     def setUp(self):
         self.m = mox.Mox()
         self.ctx = create_context(self.m, self.username, self.tenant)
-        auth.authenticate(self.ctx).AndReturn(True)
         setup_mocks(self.m, self.stack)
         self.m.ReplayAll()