Пример #1
0
    def test_list_capsules_with_filters(self, mock_db_inst, mock_write,
                                        mock_read):
        mock_db_inst.return_value = etcdapi.get_backend()
        mock_read.side_effect = etcd.EtcdKeyNotFound

        capsule1 = utils.create_test_capsule(name='capsule1',
                                             uuid=uuidutils.generate_uuid(),
                                             context=self.context)
        capsule2 = utils.create_test_capsule(name='capsule2',
                                             uuid=uuidutils.generate_uuid(),
                                             context=self.context)

        mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(
            [capsule1.as_dict(), capsule2.as_dict()])

        res = dbapi.list_capsules(self.context,
                                  filters={'uuid': capsule1.uuid})
        self.assertEqual([capsule1.id], [r.id for r in res])

        res = dbapi.list_capsules(self.context,
                                  filters={'uuid': capsule2.uuid})
        self.assertEqual([capsule2.id], [r.id for r in res])

        res = dbapi.list_capsules(self.context,
                                  filters={'uuid': 'unknow-uuid'})
        self.assertEqual([], [r.id for r in res])
Пример #2
0
    def list(cls,
             context,
             limit=None,
             marker=None,
             sort_key=None,
             sort_dir=None,
             filters=None):
        """Return a list of Capsule objects.

        :param context: Security context.
        :param limit: maximum number of resources to return in a single result.
        :param marker: pagination marker for large data sets.
        :param sort_key: column to sort results by.
        :param sort_dir: direction to sort. "asc" or "desc".
        :param filters: filters when list capsules, the filter name could be
                        'name', 'image', 'project_id', 'user_id', 'memory'.
                        For example, filters={'image': 'nginx'}
        :returns: a list of :class:`Capsule` object.

        """
        db_capsules = dbapi.list_capsules(context,
                                          limit=limit,
                                          marker=marker,
                                          sort_key=sort_key,
                                          sort_dir=sort_dir,
                                          filters=filters)
        return Capsule._from_db_object_list(db_capsules, cls, context)
Пример #3
0
    def test_list_capsules_with_filters(self):
        capsule1 = utils.create_test_capsule(name='capsule1',
                                             uuid=uuidutils.generate_uuid(),
                                             context=self.context)
        capsule2 = utils.create_test_capsule(name='capsule2',
                                             uuid=uuidutils.generate_uuid(),
                                             context=self.context)

        res = dbapi.list_capsules(self.context,
                                  filters={'uuid': capsule1.uuid})
        self.assertEqual([capsule1.id], [r.id for r in res])

        res = dbapi.list_capsules(self.context,
                                  filters={'uuid': capsule2.uuid})
        self.assertEqual([capsule2.id], [r.id for r in res])

        res = dbapi.list_capsules(self.context,
                                  filters={'uuid': 'unknow-uuid'})
        self.assertEqual([], [r.id for r in res])
Пример #4
0
 def test_list_capsules_sorted_with_valid_sort_key(self):
     uuids = []
     for i in range(1, 6):
         capsule = utils.create_test_capsule(uuid=uuidutils.generate_uuid(),
                                             context=self.context,
                                             name='capsule' + str(i))
         uuids.append(six.text_type(capsule['uuid']))
     res = dbapi.list_capsules(self.context, sort_key='uuid')
     res_uuids = [r.uuid for r in res]
     self.assertEqual(sorted(uuids), res_uuids)
Пример #5
0
 def test_list_capsules(self, mock_write, mock_read):
     uuids = []
     capsules = []
     mock_read.side_effect = etcd.EtcdKeyNotFound
     for i in range(1, 6):
         capsule = utils.create_test_capsule(uuid=uuidutils.generate_uuid(),
                                             context=self.context,
                                             name='capsule' + str(i))
         capsules.append(capsule.as_dict())
         uuids.append(six.text_type(capsule['uuid']))
     mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(capsules)
     res = dbapi.list_capsules(self.context)
     res_uuids = [r.uuid for r in res]
     self.assertEqual(sorted(uuids), sorted(res_uuids))
Пример #6
0
 def test_list_capsules_sorted(self, mock_db_inst, mock_write, mock_read):
     uuids = []
     capsules = []
     mock_db_inst.return_value = etcdapi.get_backend()
     mock_read.side_effect = etcd.EtcdKeyNotFound
     for i in range(1, 6):
         capsule = utils.create_test_capsule(uuid=uuidutils.generate_uuid(),
                                             context=self.context,
                                             name='capsule' + str(i))
         capsules.append(capsule.as_dict())
         uuids.append(six.text_type(capsule['uuid']))
     mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(capsules)
     res = dbapi.list_capsules(self.context, sort_key='uuid')
     res_uuids = [r.uuid for r in res]
     self.assertEqual(sorted(uuids), res_uuids)
     self.assertRaises(exception.InvalidParameterValue,
                       dbapi.list_capsules,
                       self.context,
                       sort_key='foo')