def index(self, req): ''' list all images or snapshots support filters by property-xx and owner support sort by sort_key and sort_dir ''' result = self._get_images(req) result = filter.filter_images(req, result['images']) result = sort.sort_images(req, result) return dict(images=result)
def test_sort_images(self): def generate_images(**kwargs): image = { "owner": "abcd", "owner_name": "Project_abcd", "name": "test", "id": "uuid", "description": "test", "size": "0", "status": "active" } image.update(**kwargs) return image image1 = generate_images(owner="ownerA", owner_name="Project_ownerA", name="image1", id="728a-bcd", description="test", size="100", status="active") image2 = generate_images(owner="admin", owner_name="Project_admin", name="ubuntu", id="bcd-728a", description="test", size="200", status="queued") image3 = generate_images(owner="opt", owner_name="Project_opt", name="image2", id="70", description="my image", size="150", status="killed") images = [image1, image2, image3] req = webob.Request.blank( '/sort?umbrella_sort_key=tenantid') result = list_sort.sort_images(req, images) expected = [image2, image3, image1] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=tenant_name') result = list_sort.sort_images(req, images) expected = [image2, image3, image1] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=name') result = list_sort.sort_images(req, images) expected = [image1, image3, image2] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=id') result = list_sort.sort_images(req, images) expected = [image3, image1, image2] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=description') result = list_sort.sort_images(req, images) expected = [image1, image2, image3] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=status') result = list_sort.sort_images(req, images) expected = [image1, image3, image2] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=status&umbrella_sort_dir=desc') result = list_sort.sort_images(req, images) expected = [image2, image3, image1] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=size') result = list_sort.sort_images(req, images) expected = [image1, image3, image2] self.assertEqual(result, expected) req = webob.Request.blank( '/sort?umbrella_sort_key=size&umbrella_sort_dir=desc') result = list_sort.sort_images(req, images) expected = [image2, image3, image1] self.assertEqual(result, expected)