Exemple #1
0
    def setUp(self):
        test.TestCase.setUp(self)
        self.mock_client = mock.Mock()
        self.cs_patch = mockpatch.PatchObject(cinder_client,
                                              'Client',
                                              new=self.mock_client)
        self.useFixture(self.cs_patch)

        self.identity_mock = mock.Mock()
        self.compute_mock = mock.Mock()

        self.override_config(FAKE_CONFIG)

        self.fake_cloud = mock.Mock()
        self.fake_cloud.position = 'src'
        self.fake_cloud.resources = dict(identity=self.identity_mock,
                                         compute=self.compute_mock)
        self.fake_cloud.config = self.cloud_config('src')
        self.cinder_client = cinder_storage.CinderStorage(
            self.fake_cloud.config, self.fake_cloud)

        filter_yaml = mock.Mock()
        filter_yaml.get_tenant.return_value = None
        filter_yaml.get_volume_ids.return_value = []
        filter_yaml.get_volume_date.return_value = None
        self.cinder_client.volume_filter = \
            filters.CinderFilters(self.cinder_client, filter_yaml=filter_yaml)

        self.fake_volume_0 = mock.Mock()
        self.fake_volume_0.status = 'available'
        self.fake_volume_1 = mock.Mock()
        self.fake_volume_1.status = 'available'

        self.mock_client().volumes.get.return_value = self.fake_volume_0
Exemple #2
0
def _filter_volumes(volumes, filter_yaml):
    cinder_filters = filters.CinderFilters(cinder_client=mock.MagicMock(),
                                           filter_yaml=filter_yaml)
    fs = cinder_filters.get_filters()

    for f in fs:
        volumes = [v for v in volumes if f(v)]
    return volumes
Exemple #3
0
    def get_filter(self):
        if self.volume_filter is None:
            with open(self.config.migrate.filter_path, 'r') as f:
                filter_yaml = filters.FilterYaml(f)
                filter_yaml.read()

            self.volume_filter = cinder_filters.CinderFilters(
                self.cinder_client, filter_yaml)

        return self.volume_filter
Exemple #4
0
    def test_other_tenant_filter(self):
        volumes = (
            _volume(uuid='vol-nfs1', tenant=TN1),
        )

        filter_yaml = mock.Mock()
        filter_yaml.get_tenant.return_value = "some-other-tenant"
        filter_yaml.get_volume_ids.return_value = []
        filter_yaml.get_volume_date.return_value = None

        cinder_filters = filters.CinderFilters(cinder_client=mock.MagicMock(),
                                               filter_yaml=filter_yaml)

        fs = cinder_filters.get_filters()

        for f in fs:
            volumes = [v for v in volumes if f(v)]

        self.assertEqual(len(volumes), 0)
Exemple #5
0
    def test_tenant_filter(self):
        volumes = (
            _volume(tenant=TN1),
            _volume(tenant=TN2),
            _volume(tenant=TN2),
            _volume(tenant=TN3),
        )

        filter_yaml = mock.Mock()
        filter_yaml.get_tenant.return_value = TN2
        filter_yaml.get_volume_ids.return_value = []
        filter_yaml.get_volume_date.return_value = None

        cinder_filters = filters.CinderFilters(cinder_client=mock.MagicMock(),
                                               filter_yaml=filter_yaml)

        fs = cinder_filters.get_filters()

        for f in fs:
            volumes = [v for v in volumes if f(v)]

        self.assertEqual(len(volumes),
                         len([v for v in volumes if v['project_id'] == TN2]))