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])
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)
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])
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)
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))
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')