def test_list_containers_with_filters(self): container1 = utils.create_test_container( name='container-one', uuid=uuidutils.generate_uuid(), context=self.context) container2 = utils.create_test_container( name='container-two', uuid=uuidutils.generate_uuid(), context=self.context) res = dbapi.list_containers(self.context, consts.TYPE_CONTAINER, filters={'name': 'container-one'}) self.assertEqual([container1.id], [r.id for r in res]) res = dbapi.list_containers(self.context, consts.TYPE_CONTAINER, filters={'name': 'container-two'}) self.assertEqual([container2.id], [r.id for r in res]) res = dbapi.list_containers(self.context, consts.TYPE_CONTAINER, filters={'name': 'bad-container'}) self.assertEqual([], [r.id for r in res]) res = dbapi.list_containers(self.context, consts.TYPE_CONTAINER, filters={'name': container1.name}) self.assertEqual([container1.id], [r.id for r in res])
def test_list_containers_with_filters(self, mock_write, mock_read): mock_read.side_effect = etcd.EtcdKeyNotFound container1 = utils.create_test_container( name='container-one', uuid=uuidutils.generate_uuid(), context=self.context) container2 = utils.create_test_container( name='container-two', uuid=uuidutils.generate_uuid(), context=self.context) mock_read.side_effect = lambda *args: FakeEtcdMultipleResult( [container1.as_dict(), container2.as_dict()]) res = dbapi.list_containers(self.context, filters={'name': 'container-one'}) self.assertEqual([container1.id], [r.id for r in res]) res = dbapi.list_containers(self.context, filters={'name': 'container-two'}) self.assertEqual([container2.id], [r.id for r in res]) res = dbapi.list_containers(self.context, filters={'name': 'container-three'}) self.assertEqual([], [r.id for r in res]) res = dbapi.list_containers(self.context, filters={'name': container1.name}) self.assertEqual([container1.id], [r.id for r in res])
def test_list_containers_with_filters(self): container1 = utils.create_test_container( name='container-one', uuid=uuidutils.generate_uuid(), context=self.context) container2 = utils.create_test_container( name='container-two', uuid=uuidutils.generate_uuid(), context=self.context) res = dbapi.list_containers( self.context, consts.TYPE_CONTAINER, filters={'name': 'container-one'}) self.assertEqual([container1.id], [r.id for r in res]) res = dbapi.list_containers( self.context, consts.TYPE_CONTAINER, filters={'name': 'container-two'}) self.assertEqual([container2.id], [r.id for r in res]) res = dbapi.list_containers( self.context, consts.TYPE_CONTAINER, filters={'name': 'bad-container'}) self.assertEqual([], [r.id for r in res]) res = dbapi.list_containers( self.context, consts.TYPE_CONTAINER, filters={'name': container1.name}) self.assertEqual([container1.id], [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 Container 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 containers, the filter name could be 'name', 'image', 'project_id', 'user_id', 'memory'. For example, filters={'image': 'nginx'} :returns: a list of :class:`Container` object. """ db_containers = dbapi.list_containers(context, cls.container_type, limit=limit, marker=marker, sort_key=sort_key, sort_dir=sort_dir, filters=filters) return cls._from_db_object_list(db_containers, cls, context)
def list_by_host(cls, context, host): """Return a list of Container objects by host. :param context: Security context. :param host: A compute host. :returns: a list of :class:`Container` object. """ db_containers = dbapi.list_containers(context, filters={'host': host}) return Container._from_db_object_list(db_containers, cls, context)
def test_list_containers(self): uuids = [] for i in range(1, 6): container = utils.create_test_container( uuid=uuidutils.generate_uuid(), context=self.context, name='container' + str(i)) uuids.append(six.text_type(container['uuid'])) res = dbapi.list_containers(self.context, consts.TYPE_CONTAINER) res_uuids = [r.uuid for r in res] self.assertEqual(sorted(uuids), sorted(res_uuids))
def list_by_capsule_id(cls, context, capsule_id): """Return a list of Container objects by capsule_id. :param context: Security context. :param host: A capsule id. :returns: a list of :class:`Container` object. """ db_containers = dbapi.list_containers( context, cls.container_type, filters={'capsule_id': capsule_id}) return Container._from_db_object_list(db_containers, cls, context)
def list_by_capsule_id(cls, context, capsule_id): """Return a list of Container objects by capsule_id. :param context: Security context. :param host: A capsule id. :returns: a list of :class:`Container` object. """ db_containers = dbapi.list_containers( context, cls.container_type, filters={'capsule_id': capsule_id}) return Container._from_db_object_list(db_containers, cls, context)
def list_by_host(cls, context, host): """Return a list of Container objects by host. :param context: Security context. :param host: A compute host. :returns: a list of :class:`Container` object. """ db_containers = dbapi.list_containers(context, cls.container_type, filters={'host': host}) return cls._from_db_object_list(db_containers, cls, context)
def test_list_containers(self): uuids = [] for i in range(1, 6): container = utils.create_test_container( uuid=uuidutils.generate_uuid(), context=self.context, name='container' + str(i)) uuids.append(six.text_type(container['uuid'])) res = dbapi.list_containers(self.context, consts.TYPE_CONTAINER) res_uuids = [r.uuid for r in res] self.assertEqual(sorted(uuids), sorted(res_uuids))
def test_list_containers_with_list_filters(self): container1 = utils.create_test_container( name='container-one', uuid=uuidutils.generate_uuid(), context=self.context) container2 = utils.create_test_container( name='container-two', uuid=uuidutils.generate_uuid(), context=self.context) res = dbapi.list_containers( self.context, filters={'name': ['container-one', 'container-two']}) uuids = sorted([container1.uuid, container2.uuid]) self.assertEqual(uuids, sorted([r.uuid for r in res]))
def test_list_containers_with_list_filters(self): container1 = utils.create_test_container( name='container-one', uuid=uuidutils.generate_uuid(), context=self.context) container2 = utils.create_test_container( name='container-two', uuid=uuidutils.generate_uuid(), context=self.context) res = dbapi.list_containers( self.context, consts.TYPE_CONTAINER, filters={'name': ['container-one', 'container-two']}) uuids = sorted([container1.uuid, container2.uuid]) self.assertEqual(uuids, sorted([r.uuid for r in res]))
def test_list_containers(self, mock_write, mock_read): uuids = [] containers = [] mock_read.side_effect = etcd.EtcdKeyNotFound for i in range(1, 6): container = utils.create_test_container( uuid=uuidutils.generate_uuid(), context=self.context, name='cont' + str(i)) containers.append(container.as_dict()) uuids.append(six.text_type(container['uuid'])) mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(containers ) res = dbapi.list_containers(self.context) res_uuids = [r.uuid for r in res] self.assertEqual(sorted(uuids), sorted(res_uuids))
def test_list_containers_sorted(self): uuids = [] for i in range(5): container = utils.create_test_container( uuid=uuidutils.generate_uuid(), context=self.context, name='container' + str(i)) uuids.append(six.text_type(container.uuid)) res = dbapi.list_containers(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_containers, self.context, sort_key='foo')
def test_list_containers_sorted(self): uuids = [] for i in range(5): container = utils.create_test_container( uuid=uuidutils.generate_uuid(), context=self.context, name='container' + str(i)) uuids.append(six.text_type(container.uuid)) res = dbapi.list_containers( self.context, consts.TYPE_CONTAINER, sort_key='uuid') res_uuids = [r.uuid for r in res] self.assertEqual(sorted(uuids), res_uuids) self.assertRaises(exception.InvalidParameterValue, dbapi.list_containers, self.context, consts.TYPE_CONTAINER, sort_key='foo')
def list(cls, context, limit=None, marker=None, sort_key=None, sort_dir=None, filters=None): """Return a list of Container 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 containers, the filter name could be 'name', 'image', 'project_id', 'user_id', 'memory'. For example, filters={'image': 'nginx'} :returns: a list of :class:`Container` object. """ db_containers = dbapi.list_containers( context, cls.container_type, limit=limit, marker=marker, sort_key=sort_key, sort_dir=sort_dir, filters=filters) return cls._from_db_object_list(db_containers, cls, context)
def test_list_containers_sorted(self, mock_write, mock_read): uuids = [] containers = [] mock_read.side_effect = etcd.EtcdKeyNotFound for i in range(5): container = utils.create_test_container( uuid=uuidutils.generate_uuid(), context=self.context, name='cont' + str(i)) containers.append(container.as_dict()) uuids.append(six.text_type(container.uuid)) mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(containers ) res = dbapi.list_containers(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_containers, self.context, sort_key='foo')