summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2011-08-13 03:12:04 +0000
committerGerrit Code Review <review@openstack.org>2011-08-13 03:12:04 +0000
commit6e341c4baba491e08263e4f3df3e435123e76dcb (patch)
treee42cb7996561307fcc7d6ea3cac5563c875cfa89
parent32eb42a6bf3689fa6986b648f2b91fe927b45c49 (diff)
parent3427e6c230111e0acb4d1aedcb435eda65d5f4ce (diff)
downloadkeystone-6e341c4baba491e08263e4f3df3e435123e76dcb.tar.gz
keystone-6e341c4baba491e08263e4f3df3e435123e76dcb.tar.xz
keystone-6e341c4baba491e08263e4f3df3e435123e76dcb.zip
Merge "fix ec2 and add keystone-manage command for creating credentials"
-rwxr-xr-xbin/keystone-manage21
-rw-r--r--keystone/routers/service.py2
-rw-r--r--keystone/test/unit/base.py3
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: