summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSoren Hansen <soren.hansen@rackspace.com>2010-07-26 23:26:54 +0200
committerSoren Hansen <soren.hansen@rackspace.com>2010-07-26 23:26:54 +0200
commitbed760dcc4dbdf1927c41cfff325cc56102ef962 (patch)
tree63e5ac066b6e5de681188def690183f50884cfde
parent1bef8168b66a33033a9181d3e180d1c9718ebb55 (diff)
downloadnova-bed760dcc4dbdf1927c41cfff325cc56102ef962.tar.gz
nova-bed760dcc4dbdf1927c41cfff325cc56102ef962.tar.xz
nova-bed760dcc4dbdf1927c41cfff325cc56102ef962.zip
Make image downloads work again in S3 handler. Listing worked, but fetching the images failed because I wasn't clever enough to use twisted.web.static.File correctly.
-rw-r--r--nova/objectstore/handler.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/nova/objectstore/handler.py b/nova/objectstore/handler.py
index 6e76abb5a..4074f005d 100644
--- a/nova/objectstore/handler.py
+++ b/nova/objectstore/handler.py
@@ -121,7 +121,7 @@ class S3(Resource):
if name == '':
return self
elif name == '_images':
- return ImageResource()
+ return ImagesResource()
else:
return BucketResource(name)
@@ -226,13 +226,21 @@ class ObjectResource(Resource):
return ''
class ImageResource(Resource):
+ isLeaf = True
+
+ def __init__(self, name):
+ Resource.__init__(self)
+ self.img = image.Image(name)
+
+ def render_GET(self, request):
+ return static.File(self.img.image_path, defaultType='application/octet-stream').render_GET(request)
+
+class ImagesResource(Resource):
def getChild(self, name, request):
if name == '':
return self
else:
- request.setHeader("Content-Type", "application/octet-stream")
- img = image.Image(name)
- return static.File(img.image_path)
+ return ImageResource(name)
def render_GET(self, request):
""" returns a json listing of all images