Fix getting not registered images
Return only registered images in Sahara API Change-Id: If86ad7c7d237d162886b99865f0e17f3e0b6679d Closes-bug: #1414000
This commit is contained in:
parent
f6217cfdb6
commit
d3600f900c
@ -201,7 +201,7 @@ def images_list():
|
|||||||
@acl.enforce("images:get")
|
@acl.enforce("images:get")
|
||||||
@v.check_exists(api.get_image, id='image_id')
|
@v.check_exists(api.get_image, id='image_id')
|
||||||
def images_get(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>')
|
@rest.post('/images/<image_id>')
|
||||||
|
@ -305,3 +305,12 @@ class Forbidden(SaharaException):
|
|||||||
if message:
|
if message:
|
||||||
self.message = message
|
self.message = message
|
||||||
super(Forbidden, self).__init__()
|
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)
|
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):
|
def register_image(image_id, username, description=None):
|
||||||
client = nova.client()
|
client = nova.client()
|
||||||
client.images.set_description(image_id, username, description)
|
client.images.set_description(image_id, username, description)
|
||||||
|
@ -270,8 +270,8 @@ class JobExecutionTest(base.BaseDataProcessingTest):
|
|||||||
@test.services('data_processing')
|
@test.services('data_processing')
|
||||||
def test_job_executions(self):
|
def test_job_executions(self):
|
||||||
image_id = CONF.data_processing.fake_image_id
|
image_id = CONF.data_processing.fake_image_id
|
||||||
self._check_image_get(image_id)
|
|
||||||
self._check_register_image(image_id)
|
self._check_register_image(image_id)
|
||||||
|
self._check_image_get(image_id)
|
||||||
self._check_image_list(image_id)
|
self._check_image_list(image_id)
|
||||||
self._check_adding_tags(image_id)
|
self._check_adding_tags(image_id)
|
||||||
|
|
||||||
|
@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
from novaclient.v1_1 import images
|
from novaclient.v1_1 import images
|
||||||
|
|
||||||
|
from sahara import exceptions as exc
|
||||||
|
|
||||||
|
|
||||||
PROP_DESCR = '_sahara_description'
|
PROP_DESCR = '_sahara_description'
|
||||||
PROP_USERNAME = '_sahara_username'
|
PROP_USERNAME = '_sahara_username'
|
||||||
@ -121,3 +123,10 @@ class SaharaImageManager(images.ImageManager):
|
|||||||
tags = _ensure_tags(tags)
|
tags = _ensure_tags(tags)
|
||||||
return [i for i in self.list()
|
return [i for i in self.list()
|
||||||
if i.username and set(tags).issubset(i.tags)]
|
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