Fixes access key passing in curl statement.

This commit is contained in:
Vishvananda Ishaya
2010-07-30 15:19:41 -07:00
parent c5754b0cd8
commit ac0c78dda3
2 changed files with 15 additions and 7 deletions

View File

@@ -419,6 +419,10 @@ class AuthManager(object):
raise exception.NotAuthorized('Signature does not match')
return (user, project)
def get_access_key(self, user, project):
"""Get an access key that includes user and project"""
return "%s:%s" % (User.safe_id(user), Project.safe_id(project))
def is_superuser(self, user):
"""Checks for superuser status, allowing user to bypass rbac

View File

@@ -27,6 +27,7 @@ import urllib
from nova import flags
from nova import utils
from nova.auth import manager
FLAGS = flags.FLAGS
@@ -75,13 +76,16 @@ def deregister(context, image_id):
query_args=qs({'image_id': image_id}))
def conn(context):
return boto.s3.connection.S3Connection (
aws_access_key_id=str('%s:%s' % (context.user.access, context.project.name)),
aws_secret_access_key=str(context.user.secret),
is_secure=False,
calling_format=boto.s3.connection.OrdinaryCallingFormat(),
port=FLAGS.s3_port,
host=FLAGS.s3_host)
access = manager.AuthManager().get_access_key(context.user,
context.project)
secret = str(context.user.secret)
calling = boto.s3.connection.OrdinaryCallingFormat()
return boto.s3.connection.S3Connection(aws_access_key_id=access,
aws_secret_access_key=secret,
is_secure=False,
calling_format=calling,
port=FLAGS.s3_port,
host=FLAGS.s3_host)
def qs(params):