]> review.fuel-infra Code Review - openstack-build/heat-build.git/commit
Authentication Overhaul
authorIan Main <imain@redhat.com>
Tue, 29 May 2012 21:09:57 +0000 (14:09 -0700)
committerIan Main <imain@redhat.com>
Tue, 29 May 2012 23:54:03 +0000 (16:54 -0700)
commita5962d10782263a33e7d3fb403b12ee3149e408f
tree4a0a8a67e2c6823931fdfe6a72b3c9d12df15ca3
parent9ea875a250637664b009f332fd9c40ba126b5ee9
Authentication Overhaul

This patch updates the authentication system set up in heat:

- We now authenticate against the 'heat' service at the entry
  point to each api call in the engine.
- We are now using the 'Context' class to contain the authentication
  information as intended.
- The two context classes are unified and we now use the same one
  for both WSGI and RPC.  This is the intended design as the
  context is loaded by the WSGI middleware and then passed into the
  RPC methods.
- We are now doing token authentication in the API that works with
  both native keystone and AWS style authentication.  That token is
  then passed on to the engine for further authentication for various
  endpoints.

Note that the heat-api-paste.ini file requires updating in order for
this to work on your system.  Admin user and password must be set
properly in the authtoken section in order to perform token based
authentication.

I suspect there will be a few bugs in here yet.  This is just part of
the authentication/identification changes we need to make but I wanted
to get this in so we could continue to work with a boto based client.

Change-Id: Ib635ecd3088304e8d51d8e1fc31a8b1bf751caf3
Signed-off-by: Ian Main <imain@redhat.com>
16 files changed:
etc/heat-api-paste.ini
heat/api/v1/__init__.py
heat/api/v1/stacks.py
heat/common/auth_token.py [new file with mode: 0644]
heat/common/context.py
heat/context.py [deleted file]
heat/engine/manager.py
heat/engine/parser.py
heat/engine/resources.py
heat/metadata/api/v1/metadata.py
heat/rpc/amqp.py
heat/rpc/impl_fake.py
heat/service.py
heat/tests/test_resources.py
heat/tests/test_stacks.py
heat/tests/test_validate.py