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