diff options
author | Lingxian Kong <anlin.kong@gmail.com> | 2021-05-19 18:33:51 +1200 |
---|---|---|
committer | Lingxian Kong <anlin.kong@gmail.com> | 2021-05-19 20:43:06 +1200 |
commit | cd689869484841a9be1a380b46a94c0084d84d0d (patch) | |
tree | 76488db27b2959fd93323fdb219481a604b3a066 | |
parent | e41d08d24325a61a213592934b508bf77ce67dac (diff) | |
download | python-troveclient-cd689869484841a9be1a380b46a94c0084d84d0d.tar.gz |
Get backup list by instance ID or name7.1.0
Change-Id: I97d3fcfa2935f76cb8753734fec6dab8669e732a
-rw-r--r-- | troveclient/osc/v1/database_backups.py | 19 | ||||
-rw-r--r-- | troveclient/tests/osc/v1/test_database_backups.py | 28 |
2 files changed, 43 insertions, 4 deletions
diff --git a/troveclient/osc/v1/database_backups.py b/troveclient/osc/v1/database_backups.py index 28ceea7..9392a3c 100644 --- a/troveclient/osc/v1/database_backups.py +++ b/troveclient/osc/v1/database_backups.py @@ -66,7 +66,14 @@ class ListDatabaseBackups(command.Lister): parser.add_argument( '--instance-id', 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( '--all-projects', @@ -82,12 +89,20 @@ class ListDatabaseBackups(command.Lister): def take_action(self, parsed_args): 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, datastore=parsed_args.datastore, marker=parsed_args.marker, - instance_id=parsed_args.instance_id, + instance_id=instance_id, all_projects=parsed_args.all_projects, project_id=parsed_args.project_id) + backups = items while items.next and not parsed_args.limit: items = database_backups.list( diff --git a/troveclient/tests/osc/v1/test_database_backups.py b/troveclient/tests/osc/v1/test_database_backups.py index bc67d9d..a8b8def 100644 --- a/troveclient/tests/osc/v1/test_database_backups.py +++ b/troveclient/tests/osc/v1/test_database_backups.py @@ -60,7 +60,10 @@ class TestBackupList(TestBackups): self.assertEqual(self.columns, columns) 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"], []) self.cmd.take_action(parsed_args) @@ -69,12 +72,33 @@ class TestBackupList(TestBackups): 'datastore': None, 'limit': None, 'marker': None, - 'instance_id': 'fake_id', + 'instance_id': 'fake_uuid', + 'all_projects': False, + 'project_id': None + } + + 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): parsed_args = self.check_parser(self.cmd, ["--all-projects"], []) |