summaryrefslogtreecommitdiffstats
path: root/nova/api
diff options
context:
space:
mode:
authorMichael Gundlach <michael.gundlach@rackspace.com>2010-09-13 11:53:53 -0400
committerMichael Gundlach <michael.gundlach@rackspace.com>2010-09-13 11:53:53 -0400
commit5e02ee47c0e86986bb21f67a4d6556895de5d0ef (patch)
tree860ba427b58c025cf7923d886480b0d6bbf39ce6 /nova/api
parent345749f514291928913a1ecb280b92daec2c0553 (diff)
downloadnova-5e02ee47c0e86986bb21f67a4d6556895de5d0ef.tar.gz
nova-5e02ee47c0e86986bb21f67a4d6556895de5d0ef.tar.xz
nova-5e02ee47c0e86986bb21f67a4d6556895de5d0ef.zip
Pull S3ImageService out of this mergeprop
Diffstat (limited to 'nova/api')
-rw-r--r--nova/api/ec2/images.py34
1 files changed, 27 insertions, 7 deletions
diff --git a/nova/api/ec2/images.py b/nova/api/ec2/images.py
index f0be7b899..b5ce2b2cc 100644
--- a/nova/api/ec2/images.py
+++ b/nova/api/ec2/images.py
@@ -29,17 +29,16 @@ import boto.s3.connection
from nova import flags
from nova import utils
from nova.auth import manager
-from nova.image import service
FLAGS = flags.FLAGS
def modify(context, image_id, operation):
- service.S3ImageService(context)._conn().make_request(
+ conn(context).make_request(
method='POST',
bucket='_images',
- query_args=service.qs({'image_id': image_id, 'operation': operation}))
+ query_args=qs({'image_id': image_id, 'operation': operation}))
return True
@@ -48,10 +47,10 @@ def register(context, image_location):
""" rpc call to register a new image based from a manifest """
image_id = utils.generate_uid('ami')
- service.S3ImageService(context)._conn().make_request(
+ conn(context).make_request(
method='PUT',
bucket='_images',
- query_args=service.qs({'image_location': image_location,
+ query_args=qs({'image_location': image_location,
'image_id': image_id}))
return image_id
@@ -62,7 +61,12 @@ def list(context, filter_list=[]):
optionally filtered by a list of image_id """
- result = service.S3ImageService(context).index().values()
+ # FIXME: send along the list of only_images to check for
+ response = conn(context).make_request(
+ method='GET',
+ bucket='_images')
+
+ result = json.loads(response.read())
if not filter_list is None:
return [i for i in result if i['imageId'] in filter_list]
return result
@@ -70,4 +74,20 @@ def list(context, filter_list=[]):
def deregister(context, image_id):
""" unregister an image """
- service.S3ImageService(context).delete(image_id)
+ conn(context).make_request(
+ method='DELETE',
+ bucket='_images',
+ query_args=qs({'image_id': image_id}))
+
+
+def conn(context):
+ 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)