Exemple #1
0
    def test_list_volume_mappings_with_filters(self, mock_ins, mock_write,
                                               mock_read):
        mock_ins.return_value = etcd_api.get_backend()
        mock_read.side_effect = etcd.EtcdKeyNotFound

        volume_mapping1 = utils.create_test_volume_mapping(
            name='volume_mapping1',
            uuid=uuidutils.generate_uuid(),
            context=self.context)
        volume_mapping2 = utils.create_test_volume_mapping(
            name='volume_mapping2',
            uuid=uuidutils.generate_uuid(),
            context=self.context,
        )

        mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(
            [volume_mapping1.as_dict(),
             volume_mapping2.as_dict()])

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

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

        res = dbapi.list_volume_mappings(self.context,
                                         filters={'uuid': 'unknow-uuid'})
        self.assertEqual([], [r.id for r in res])
Exemple #2
0
    def test_list_volume_mappings_with_filters(self):
        volume_mapping1 = utils.create_test_volume_mapping(
            volume_provider='provider-one',
            uuid=uuidutils.generate_uuid(),
            context=self.context)
        volume_mapping2 = utils.create_test_volume_mapping(
            volume_provider='provider-two',
            uuid=uuidutils.generate_uuid(),
            context=self.context)

        res = dbapi.list_volume_mappings(
            self.context, filters={'volume_provider': 'provider-one'})
        self.assertEqual([volume_mapping1.id], [r.id for r in res])

        res = dbapi.list_volume_mappings(
            self.context, filters={'volume_provider': 'provider-two'})
        self.assertEqual([volume_mapping2.id], [r.id for r in res])

        res = dbapi.list_volume_mappings(
            self.context, filters={'volume_provider': 'bad-provider'})
        self.assertEqual([], [r.id for r in res])

        res = dbapi.list_volume_mappings(
            self.context,
            filters={'volume_provider': volume_mapping1.volume_provider})
        self.assertEqual([volume_mapping1.id], [r.id for r in res])
Exemple #3
0
    def list(cls,
             context,
             limit=None,
             marker=None,
             sort_key=None,
             sort_dir=None,
             filters=None):
        """Return a list of VolumeMapping 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 volume mappings.
        :returns: a list of :class:`VolumeMapping` object.

        """
        db_volumes = dbapi.list_volume_mappings(context,
                                                limit=limit,
                                                marker=marker,
                                                sort_key=sort_key,
                                                sort_dir=sort_dir,
                                                filters=filters)
        return VolumeMapping._from_db_object_list(db_volumes, cls, context)
Exemple #4
0
 def test_list_volume_mappings(self):
     uuids = []
     for i in range(1, 6):
         volume_mapping = utils.create_test_volume_mapping(
             uuid=uuidutils.generate_uuid(), context=self.context)
         uuids.append(six.text_type(volume_mapping['uuid']))
     res = dbapi.list_volume_mappings(self.context)
     res_uuids = [r.uuid for r in res]
     self.assertEqual(sorted(uuids), sorted(res_uuids))
    def test_list_volume_mappings_with_filters(self):
        volume1 = utils.create_test_volume(
            id=1,
            volume_provider='provider-one',
            uuid=uuidutils.generate_uuid(),
            context=self.context)
        volume_mapping1 = utils.create_test_volume_mapping(
            id=1,
            volume_id=volume1.id,
            uuid=uuidutils.generate_uuid(),
            context=self.context)
        volume2 = utils.create_test_volume(
            id=2,
            volume_provider='provider-two',
            uuid=uuidutils.generate_uuid(),
            context=self.context)
        volume_mapping2 = utils.create_test_volume_mapping(
            id=2,
            uuid=uuidutils.generate_uuid(),
            volume_id=volume2.id,
            context=self.context)

        res = dbapi.list_volume_mappings(
            self.context, filters={'volume_provider': 'provider-one'})
        self.assertEqual([volume_mapping1.id], [r.id for r in res])

        res = dbapi.list_volume_mappings(
            self.context, filters={'volume_provider': 'provider-two'})
        self.assertEqual([volume_mapping2.id], [r.id for r in res])

        res = dbapi.list_volume_mappings(
            self.context, filters={'volume_provider': 'bad-provider'})
        self.assertEqual([], [r.id for r in res])

        res = dbapi.list_volume_mappings(
            self.context,
            filters={'volume_provider': volume1.volume_provider})
        self.assertEqual([volume_mapping1.id], [r.id for r in res])
Exemple #6
0
    def test_list_volume_mappings_sorted(self):
        uuids = []
        for i in range(5):
            volume_mapping = utils.create_test_volume_mapping(
                uuid=uuidutils.generate_uuid(), context=self.context)
            uuids.append(six.text_type(volume_mapping.uuid))
        res = dbapi.list_volume_mappings(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_volume_mappings,
                          self.context,
                          sort_key='foo')
 def test_list_volume_mappings(self):
     uuids = []
     for i in range(1, 6):
         volume = utils.create_test_volume(
             uuid=uuidutils.generate_uuid(),
             context=self.context)
         volume_mapping = utils.create_test_volume_mapping(
             uuid=uuidutils.generate_uuid(),
             volume_id=volume.id,
             context=self.context)
         uuids.append(six.text_type(volume_mapping['uuid']))
     res = dbapi.list_volume_mappings(self.context)
     res_uuids = [r.uuid for r in res]
     self.assertEqual(sorted(uuids), sorted(res_uuids))
Exemple #8
0
 def test_list_volume_mappings(self, mock_write, mock_read):
     uuids = []
     volume_mappings = []
     mock_read.side_effect = etcd.EtcdKeyNotFound
     for i in range(0, 6):
         volume_mapping = utils.create_test_volume_mapping(
             uuid=uuidutils.generate_uuid(),
             context=self.context,
             name='volume_mapping' + str(i))
         volume_mappings.append(volume_mapping.as_dict())
         uuids.append(six.text_type(volume_mapping['uuid']))
     mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(
         volume_mappings)
     res = dbapi.list_volume_mappings(self.context)
     res_uuids = [r.uuid for r in res]
     self.assertEqual(sorted(uuids), sorted(res_uuids))
Exemple #9
0
    def list(cls, context, limit=None, marker=None,
             sort_key=None, sort_dir=None, filters=None):
        """Return a list of VolumeMapping 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 volume mappings.
        :returns: a list of :class:`VolumeMapping` object.

        """
        db_volumes = dbapi.list_volume_mappings(
            context, limit=limit, marker=marker, sort_key=sort_key,
            sort_dir=sort_dir, filters=filters)
        return VolumeMapping._from_db_object_list(db_volumes, cls, context)
    def test_list_volume_mappings_sorted(self):
        uuids = []
        for i in range(5):
            volume = utils.create_test_volume(
                uuid=uuidutils.generate_uuid(),
                context=self.context)
            volume_mapping = utils.create_test_volume_mapping(
                uuid=uuidutils.generate_uuid(),
                volume_id=volume.id,
                context=self.context)
            uuids.append(six.text_type(volume_mapping.uuid))
        res = dbapi.list_volume_mappings(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_volume_mappings,
                          self.context,
                          sort_key='foo')
Exemple #11
0
 def test_list_volume_mappings_sorted(self, mock_ins, mock_write,
                                      mock_read):
     uuids = []
     volume_mappings = []
     mock_ins.return_value = etcd_api.get_backend()
     mock_read.side_effect = etcd.EtcdKeyNotFound
     for i in range(0, 6):
         volume_mapping = utils.create_test_volume_mapping(
             uuid=uuidutils.generate_uuid(),
             context=self.context,
             name='volume_mapping' + str(i))
         volume_mappings.append(volume_mapping.as_dict())
         uuids.append(six.text_type(volume_mapping['uuid']))
     mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(
         volume_mappings)
     res = dbapi.list_volume_mappings(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_volume_mappings,
                       self.context,
                       sort_key='wrong_key')
Exemple #12
0
 def list_by_volume(cls, context, volume_id):
     filters = {'volume_id': volume_id}
     db_volumes = dbapi.list_volume_mappings(context, filters=filters)
     return VolumeMapping._from_db_object_list(db_volumes, cls, context)
Exemple #13
0
 def list_by_container(cls, context, container_uuid):
     filters = {'container_uuid': container_uuid}
     db_volumes = dbapi.list_volume_mappings(context, filters=filters)
     return VolumeMapping._from_db_object_list(db_volumes, cls, context)
Exemple #14
0
 def list_by_cinder_volume(cls, context, cinder_volume_id):
     filters = {'cinder_volume_id': cinder_volume_id}
     db_volumes = dbapi.list_volume_mappings(context, filters=filters)
     return VolumeMapping._from_db_object_list(db_volumes, cls, context)