Get backup list by instance ID or name
Change-Id: I97d3fcfa2935f76cb8753734fec6dab8669e732a
This commit is contained in:
parent
e41d08d243
commit
cd68986948
|
@ -66,7 +66,14 @@ class ListDatabaseBackups(command.Lister):
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--instance-id',
|
'--instance-id',
|
||||||
default=None,
|
default=None,
|
||||||
help=_('Filter backups by database instance ID.')
|
help=_('Filter backups by database instance ID. Deprecated since '
|
||||||
|
'Xena. Use -i/--instance instead.')
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'-i',
|
||||||
|
'--instance',
|
||||||
|
default=None,
|
||||||
|
help=_('Filter backups by database instance(ID or name).')
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--all-projects',
|
'--all-projects',
|
||||||
|
@ -82,12 +89,20 @@ class ListDatabaseBackups(command.Lister):
|
||||||
|
|
||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
database_backups = self.app.client_manager.database.backups
|
database_backups = self.app.client_manager.database.backups
|
||||||
|
|
||||||
|
instance_id = parsed_args.instance or parsed_args.instance_id
|
||||||
|
if instance_id:
|
||||||
|
instance_mgr = self.app.client_manager.database.instances
|
||||||
|
instance_id = trove_utils.get_resource_id(instance_mgr,
|
||||||
|
instance_id)
|
||||||
|
|
||||||
items = database_backups.list(limit=parsed_args.limit,
|
items = database_backups.list(limit=parsed_args.limit,
|
||||||
datastore=parsed_args.datastore,
|
datastore=parsed_args.datastore,
|
||||||
marker=parsed_args.marker,
|
marker=parsed_args.marker,
|
||||||
instance_id=parsed_args.instance_id,
|
instance_id=instance_id,
|
||||||
all_projects=parsed_args.all_projects,
|
all_projects=parsed_args.all_projects,
|
||||||
project_id=parsed_args.project_id)
|
project_id=parsed_args.project_id)
|
||||||
|
|
||||||
backups = items
|
backups = items
|
||||||
while items.next and not parsed_args.limit:
|
while items.next and not parsed_args.limit:
|
||||||
items = database_backups.list(
|
items = database_backups.list(
|
||||||
|
|
|
@ -60,7 +60,10 @@ class TestBackupList(TestBackups):
|
||||||
self.assertEqual(self.columns, columns)
|
self.assertEqual(self.columns, columns)
|
||||||
self.assertEqual([self.values], data)
|
self.assertEqual([self.values], data)
|
||||||
|
|
||||||
def test_backup_list_by_instance_id(self):
|
@mock.patch('troveclient.utils.get_resource_id')
|
||||||
|
def test_backup_list_by_instance_id(self, get_resource_id_mock):
|
||||||
|
get_resource_id_mock.return_value = 'fake_uuid'
|
||||||
|
|
||||||
parsed_args = self.check_parser(self.cmd, ["--instance-id", "fake_id"],
|
parsed_args = self.check_parser(self.cmd, ["--instance-id", "fake_id"],
|
||||||
[])
|
[])
|
||||||
self.cmd.take_action(parsed_args)
|
self.cmd.take_action(parsed_args)
|
||||||
|
@ -69,13 +72,34 @@ class TestBackupList(TestBackups):
|
||||||
'datastore': None,
|
'datastore': None,
|
||||||
'limit': None,
|
'limit': None,
|
||||||
'marker': None,
|
'marker': None,
|
||||||
'instance_id': 'fake_id',
|
'instance_id': 'fake_uuid',
|
||||||
'all_projects': False,
|
'all_projects': False,
|
||||||
'project_id': None
|
'project_id': None
|
||||||
}
|
}
|
||||||
|
|
||||||
self.backup_client.list.assert_called_once_with(**params)
|
self.backup_client.list.assert_called_once_with(**params)
|
||||||
|
|
||||||
|
@mock.patch('troveclient.utils.get_resource_id')
|
||||||
|
def test_backup_list_by_instance_name(self, get_resource_id_mock):
|
||||||
|
get_resource_id_mock.return_value = 'fake_uuid'
|
||||||
|
|
||||||
|
parsed_args = self.check_parser(self.cmd, ["--instance", "fake_name"],
|
||||||
|
[])
|
||||||
|
self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
params = {
|
||||||
|
'datastore': None,
|
||||||
|
'limit': None,
|
||||||
|
'marker': None,
|
||||||
|
'instance_id': 'fake_uuid',
|
||||||
|
'all_projects': False,
|
||||||
|
'project_id': None
|
||||||
|
}
|
||||||
|
|
||||||
|
self.backup_client.list.assert_called_once_with(**params)
|
||||||
|
get_resource_id_mock.assert_called_once_with(self.instance_client,
|
||||||
|
'fake_name')
|
||||||
|
|
||||||
def test_backup_list_all_projects(self):
|
def test_backup_list_all_projects(self):
|
||||||
parsed_args = self.check_parser(self.cmd, ["--all-projects"], [])
|
parsed_args = self.check_parser(self.cmd, ["--all-projects"], [])
|
||||||
self.cmd.take_action(parsed_args)
|
self.cmd.take_action(parsed_args)
|
||||||
|
|
Loading…
Reference in New Issue