Substring matching image's name

When querying the list of registered images, query according to some
characters of the iamge name.

Change-Id: I1c68efbe2583290bc41f7d35197ef108c484d607
This commit is contained in:
qiufossen 2021-08-31 11:43:55 +00:00 committed by ruifaling
parent 2ce24b6f93
commit 243a15ba0f
2 changed files with 16 additions and 3 deletions

View File

@ -37,7 +37,8 @@ class TestImages(base.SaharaTestCase):
some_images = [
FakeImage('foo', ['bar', 'baz'], 'test'),
FakeImage('baz', [], 'test'),
FakeImage('spam', [], "")]
FakeImage('spam', [], ""),
FakeImage('spa', [], 'test')]
with mock.patch(
'sahara.utils.openstack.images.SaharaImageManager.list',
@ -45,13 +46,25 @@ class TestImages(base.SaharaTestCase):
manager = sahara_images.image_manager()
images = manager.list_registered()
self.assertEqual(2, len(images))
self.assertEqual(3, len(images))
images = manager.list_registered(name='foo')
self.assertEqual(1, len(images))
self.assertEqual('foo', images[0].name)
self.assertEqual('test', images[0].username)
images = manager.list_registered(name='ba')
self.assertEqual(1, len(images))
self.assertEqual('baz', images[0].name)
self.assertEqual('test', images[0].username)
images = manager.list_registered(name='a')
self.assertEqual(2, len(images))
self.assertEqual('baz', images[0].name)
self.assertEqual('test', images[0].username)
self.assertEqual('spa', images[1].name)
self.assertEqual('test', images[1].username)
images = manager.list_registered(name='eggs')
self.assertEqual(0, len(images))

View File

@ -185,7 +185,7 @@ class SaharaImageManager(object):
images_list = [i for i in self.list()
if i.username and set(tags).issubset(i.tags)]
if name:
return [i for i in images_list if i.name == name]
return [i for i in images_list if name in i.name]
else:
return images_list