Merge "Fix getting not registered images"

This commit is contained in:
Jenkins 2015-01-29 16:51:26 +00:00 committed by Gerrit Code Review
commit 8d3b0b9395
5 changed files with 24 additions and 2 deletions

View File

@ -202,7 +202,7 @@ def images_list():
@acl.enforce("images:get")
@v.check_exists(api.get_image, id='image_id')
def images_get(image_id):
return u.render(api.get_image(id=image_id).wrapped_dict)
return u.render(api.get_registered_image(id=image_id).wrapped_dict)
@rest.post('/images/<image_id>')

View File

@ -305,3 +305,12 @@ class Forbidden(SaharaException):
if message:
self.message = message
super(Forbidden, self).__init__()
class ImageNotRegistered(SaharaException):
code = "IMAGE_NOT_REGISTERED"
message = _("Image %s is not registered in Sahara")
def __init__(self, image):
self.message = self.message % image
super(ImageNotRegistered, self).__init__()

View File

@ -212,6 +212,10 @@ def get_image(**kwargs):
return nova.client().images.find(**kwargs)
def get_registered_image(id):
return nova.client().images.get_registered_image(id)
def register_image(image_id, username, description=None):
client = nova.client()
client.images.set_description(image_id, username, description)

View File

@ -270,8 +270,8 @@ class JobExecutionTest(base.BaseDataProcessingTest):
@test.services('data_processing')
def test_job_executions(self):
image_id = CONF.data_processing.fake_image_id
self._check_image_get(image_id)
self._check_register_image(image_id)
self._check_image_get(image_id)
self._check_image_list(image_id)
self._check_adding_tags(image_id)

View File

@ -15,6 +15,8 @@
from novaclient.v1_1 import images
from sahara import exceptions as exc
PROP_DESCR = '_sahara_description'
PROP_USERNAME = '_sahara_username'
@ -121,3 +123,10 @@ class SaharaImageManager(images.ImageManager):
tags = _ensure_tags(tags)
return [i for i in self.list()
if i.username and set(tags).issubset(i.tags)]
def get_registered_image(self, image):
img = self.get(image)
if img.username:
return img
else:
raise exc.ImageNotRegistered(image)