Skip to content

Commit cd68986

Browse files
committed
Get backup list by instance ID or name
Change-Id: I97d3fcfa2935f76cb8753734fec6dab8669e732a
1 parent e41d08d commit cd68986

2 files changed

Lines changed: 43 additions & 4 deletions

File tree

troveclient/osc/v1/database_backups.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,14 @@ def get_parser(self, prog_name):
6666
parser.add_argument(
6767
'--instance-id',
6868
default=None,
69-
help=_('Filter backups by database instance ID.')
69+
help=_('Filter backups by database instance ID. Deprecated since '
70+
'Xena. Use -i/--instance instead.')
71+
)
72+
parser.add_argument(
73+
'-i',
74+
'--instance',
75+
default=None,
76+
help=_('Filter backups by database instance(ID or name).')
7077
)
7178
parser.add_argument(
7279
'--all-projects',
@@ -82,12 +89,20 @@ def get_parser(self, prog_name):
8289

8390
def take_action(self, parsed_args):
8491
database_backups = self.app.client_manager.database.backups
92+
93+
instance_id = parsed_args.instance or parsed_args.instance_id
94+
if instance_id:
95+
instance_mgr = self.app.client_manager.database.instances
96+
instance_id = trove_utils.get_resource_id(instance_mgr,
97+
instance_id)
98+
8599
items = database_backups.list(limit=parsed_args.limit,
86100
datastore=parsed_args.datastore,
87101
marker=parsed_args.marker,
88-
instance_id=parsed_args.instance_id,
102+
instance_id=instance_id,
89103
all_projects=parsed_args.all_projects,
90104
project_id=parsed_args.project_id)
105+
91106
backups = items
92107
while items.next and not parsed_args.limit:
93108
items = database_backups.list(

troveclient/tests/osc/v1/test_database_backups.py

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@ def test_backup_list_defaults(self):
6060
self.assertEqual(self.columns, columns)
6161
self.assertEqual([self.values], data)
6262

63-
def test_backup_list_by_instance_id(self):
63+
@mock.patch('troveclient.utils.get_resource_id')
64+
def test_backup_list_by_instance_id(self, get_resource_id_mock):
65+
get_resource_id_mock.return_value = 'fake_uuid'
66+
6467
parsed_args = self.check_parser(self.cmd, ["--instance-id", "fake_id"],
6568
[])
6669
self.cmd.take_action(parsed_args)
@@ -69,12 +72,33 @@ def test_backup_list_by_instance_id(self):
6972
'datastore': None,
7073
'limit': None,
7174
'marker': None,
72-
'instance_id': 'fake_id',
75+
'instance_id': 'fake_uuid',
76+
'all_projects': False,
77+
'project_id': None
78+
}
79+
80+
self.backup_client.list.assert_called_once_with(**params)
81+
82+
@mock.patch('troveclient.utils.get_resource_id')
83+
def test_backup_list_by_instance_name(self, get_resource_id_mock):
84+
get_resource_id_mock.return_value = 'fake_uuid'
85+
86+
parsed_args = self.check_parser(self.cmd, ["--instance", "fake_name"],
87+
[])
88+
self.cmd.take_action(parsed_args)
89+
90+
params = {
91+
'datastore': None,
92+
'limit': None,
93+
'marker': None,
94+
'instance_id': 'fake_uuid',
7395
'all_projects': False,
7496
'project_id': None
7597
}
7698

7799
self.backup_client.list.assert_called_once_with(**params)
100+
get_resource_id_mock.assert_called_once_with(self.instance_client,
101+
'fake_name')
78102

79103
def test_backup_list_all_projects(self):
80104
parsed_args = self.check_parser(self.cmd, ["--all-projects"], [])

0 commit comments

Comments
 (0)