예제 #1
0
파일: image.py 프로젝트: xww/umbrella
 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)
예제 #2
0
파일: sort_test.py 프로젝트: xww/umbrella
    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)