Add project id support for checkpoints filter

Change-Id: I93ab8a3a503045fb8a7612cf47bbfa014ac00fd2
This commit is contained in:
jiaopengju 2018-11-21 17:58:49 +08:00
parent abab99c0eb
commit b6342feeb6
2 changed files with 47 additions and 1 deletions

View File

@ -384,7 +384,13 @@ class ProtectionManager(manager.Manager):
sort_dir = None if sort_dirs is None else sort_dirs[0] sort_dir = None if sort_dirs is None else sort_dirs[0]
provider = self.provider_registry.show_provider(provider_id) provider = self.provider_registry.show_provider(provider_id)
project_id = context.project_id
if filters.get('project_id', None) and all_tenants:
project_id = filters.get('project_id')
all_tenants = False
else:
project_id = context.project_id
checkpoint_ids = provider.list_checkpoints( checkpoint_ids = provider.list_checkpoints(
project_id, provider_id, limit=limit, marker=marker, project_id, provider_id, limit=limit, marker=marker,
plan_id=plan_id, start_date=start_date, end_date=end_date, plan_id=plan_id, start_date=start_date, end_date=end_date,

View File

@ -146,6 +146,46 @@ class ProtectionServiceTest(base.TestCase):
None, None,
fakes.fake_protection_plan()) fakes.fake_protection_plan())
@mock.patch.object(provider.ProviderRegistry, 'show_provider')
def test_list_checkpoints(self, mock_provider):
fake_provider = fakes.FakeProvider()
fake_provider.list_checkpoints = mock.MagicMock()
mock_provider.return_value = fake_provider
context = mock.MagicMock(project_id='fake_project_id')
self.pro_manager.list_checkpoints(context, 'provider1', filters={},
all_tenants=False)
fake_provider.list_checkpoints.assert_called_once_with(
'fake_project_id', 'provider1', limit=None, marker=None,
plan_id=None, start_date=None, end_date=None,
sort_dir=None, context=context, all_tenants=False)
@mock.patch.object(provider.ProviderRegistry, 'show_provider')
def test_list_checkpoints_with_all_tenants(self, mock_provider):
fake_provider = fakes.FakeProvider()
fake_provider.list_checkpoints = mock.MagicMock()
mock_provider.return_value = fake_provider
context = mock.MagicMock(project_id='fake_project_id')
self.pro_manager.list_checkpoints(context, 'provider1', filters={},
all_tenants=True)
fake_provider.list_checkpoints.assert_called_once_with(
'fake_project_id', 'provider1', limit=None, marker=None,
plan_id=None, start_date=None, end_date=None,
sort_dir=None, context=context, all_tenants=True)
@mock.patch.object(provider.ProviderRegistry, 'show_provider')
def test_list_checkpoints_with_all_tenants_and_filter_by_project_id(
self, mock_provider):
fake_provider = fakes.FakeProvider()
fake_provider.list_checkpoints = mock.MagicMock()
mock_provider.return_value = fake_provider
context = mock.MagicMock(project_id='fake_project_id')
self.pro_manager.list_checkpoints(context, 'provider1', filters={
'project_id': 'fake_project_id1'}, all_tenants=True)
fake_provider.list_checkpoints.assert_called_once_with(
'fake_project_id1', 'provider1', limit=None, marker=None,
plan_id=None, start_date=None, end_date=None,
sort_dir=None, context=context, all_tenants=False)
@mock.patch.object(provider.ProviderRegistry, 'show_provider') @mock.patch.object(provider.ProviderRegistry, 'show_provider')
def test_show_checkpoint(self, mock_provider): def test_show_checkpoint(self, mock_provider):
mock_provider.return_value = fakes.FakeProvider() mock_provider.return_value = fakes.FakeProvider()