diff --git a/troveclient/osc/v1/database_instances.py b/troveclient/osc/v1/database_instances.py index c99b7766..fb751f63 100644 --- a/troveclient/osc/v1/database_instances.py +++ b/troveclient/osc/v1/database_instances.py @@ -509,21 +509,24 @@ class ResizeDatabaseInstanceFlavor(command.Command): help=_('ID or name of the instance') ) parser.add_argument( - 'flavor_id', - metavar='', + 'flavor', type=str, - help=_('New flavor ID of the instance') + help=_('ID or name of the new flavor.') ) return parser def take_action(self, parsed_args): instance_mgr = self.app.client_manager.database.instances + flavor_mgr = self.app.client_manager.database.flavors + instance_id = parsed_args.instance - if not uuidutils.is_uuid_like(instance_id): - instance_id = osc_utils.find_resource(instance_mgr, instance_id) + instance = osc_utils.find_resource(instance_mgr, instance_id) + instance_id = instance.id - instance_mgr.resize_instance(instance_id, parsed_args.flavor_id) + flavor = osc_utils.find_resource(flavor_mgr, parsed_args.flavor) + + instance_mgr.resize_instance(instance_id, flavor.id) class UpgradeDatabaseInstance(command.Command): diff --git a/troveclient/tests/osc/v1/test_database_instances.py b/troveclient/tests/osc/v1/test_database_instances.py index af2134ed..72202fe6 100644 --- a/troveclient/tests/osc/v1/test_database_instances.py +++ b/troveclient/tests/osc/v1/test_database_instances.py @@ -404,14 +404,15 @@ class TestDatabaseInstanceResizeFlavor(TestInstances): @mock.patch.object(utils, 'find_resource') def test_instance_resize_flavor(self, mock_find): args = ['instance1', 'flavor_id'] - mock_find.return_value = 'fake_instance_id' - + mock_find.side_effect = [ + mock.MagicMock(id='fake_instance_id'), + mock.MagicMock(id='fake_flavor_id') + ] parsed_args = self.check_parser(self.cmd, args, []) - result = self.cmd.take_action(parsed_args) + self.cmd.take_action(parsed_args) self.instance_client.resize_instance.assert_called_with( - 'fake_instance_id', 'flavor_id') - self.assertIsNone(result) + 'fake_instance_id', 'fake_flavor_id') class TestDatabaseInstanceUpgrade(TestInstances):