From 3427e6c230111e0acb4d1aedcb435eda65d5f4ce Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Fri, 12 Aug 2011 03:59:13 +0000 Subject: fix ec2 and add keystone-manage command for creating credentials Change-Id: I8d39e75e150806b0ff842ab6daf6fa3ce0087e52 --- bin/keystone-manage | 21 ++++++++++++++++++++- keystone/routers/service.py | 2 +- keystone/test/unit/base.py | 3 +-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/bin/keystone-manage b/bin/keystone-manage index 278f032b..f5059e54 100755 --- a/bin/keystone-manage +++ b/bin/keystone-manage @@ -79,7 +79,7 @@ def Main(): object_type = args[0] if object_type in ['user', 'tenant', 'role', 'service' , 'endpointTemplates', 'token', - 'endpoint']: + 'endpoint', 'credentials']: pass else: parser.error('%s is not a supported object type' % object_type) @@ -412,6 +412,25 @@ def Main(): print row.id except Exception, e: raise Exception("Error getting all services", sys.exc_info()) + elif object_type == "credentials": + if command == "add": + if len(args) < 6: + parser.error('Creating a credentials requires a type, ' + 'key, secret, and tenant_id (id is user_id)') + try: + object = db_models.Token() + object.user_id = object_id + object.type = args[3] + object.key = args[4] + object.secret = args[5] + if len(args) == 7: + object.tenant_id = args[6] + result = db_api.CREDENTIALS.create(object) + print "SUCCESS: Credentials %s created." % result.id + return + except Exception as exc: + raise Exception("Failed to create credentials %s" % (object_id,), + sys.exc_info()) # Command not handled print ("ERROR: %s %s not yet supported" % (object_type, command)) diff --git a/keystone/routers/service.py b/keystone/routers/service.py index 2a9e4182..2683581f 100644 --- a/keystone/routers/service.py +++ b/keystone/routers/service.py @@ -39,7 +39,7 @@ class ServiceApi(wsgi.Router): mapper.connect("/tokens", controller=auth_controller, action="authenticate", conditions=dict(method=["POST"])) - mapper.connect("/v2.0/ec2tokens", controller=auth_controller, + mapper.connect("/ec2tokens", controller=auth_controller, action="authenticate_ec2", conditions=dict(method=["POST"])) diff --git a/keystone/test/unit/base.py b/keystone/test/unit/base.py index 4ec52210..f7c9060e 100644 --- a/keystone/test/unit/base.py +++ b/keystone/test/unit/base.py @@ -196,8 +196,7 @@ class ServiceAPITest(unittest.TestCase): headers are added to appropriate Content-type headers. """ headers = headers or {} - self.req = webob.Request.blank('/v%s/%s' % (self.api_version, - url.lstrip('/'))) + self.req = webob.Request.blank(url) self.req.method = method self.req.headers = headers if 'content-type' not in headers: -- cgit