Merge "Fix getting not registered images"
This commit is contained in:
commit
8d3b0b9395
@ -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>')
|
||||
|
@ -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__()
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user