From f859692cc3f3f9ad72546d6b94f991a1558d78af Mon Sep 17 00:00:00 2001 From: Lingxian Kong Date: Tue, 21 Jan 2020 10:27:46 +1300 Subject: [PATCH] Fix resize flavor for instance Change-Id: I9192857a690585cb3f365b15707dfa98e521e788 Story: #2007188 Task: #38315 --- troveclient/osc/v1/database_instances.py | 35 +++++++------------ .../tests/osc/v1/test_database_instances.py | 8 +++-- 2 files changed, 17 insertions(+), 26 deletions(-) diff --git a/troveclient/osc/v1/database_instances.py b/troveclient/osc/v1/database_instances.py index f5289ccd..9595ac1f 100644 --- a/troveclient/osc/v1/database_instances.py +++ b/troveclient/osc/v1/database_instances.py @@ -190,8 +190,8 @@ class DeleteDatabaseInstance(base.TroveDeleter): db_instances = self.app.client_manager.database.instances # Used for batch deletion - self.delete_func = (db_instances.force_delete - if parsed_args.force else db_instances.delete) + self.delete_func = (db_instances.force_delete if parsed_args.force + else db_instances.delete) self.resource = 'database instance' ids = [] @@ -212,7 +212,6 @@ class DeleteDatabaseInstance(base.TroveDeleter): class CreateDatabaseInstance(command.ShowOne): - _description = _("Creates a new database instance.") def get_parser(self, prog_name): @@ -427,7 +426,6 @@ class CreateDatabaseInstance(command.ShowOne): class ResetDatabaseInstanceStatus(command.Command): - _description = _("Set instance service status to ERROR and clear the " "current task status. Mark any running backup operations " "as FAILED.") @@ -449,7 +447,6 @@ class ResetDatabaseInstanceStatus(command.Command): class ResizeDatabaseInstanceFlavor(command.Command): - _description = _("Resize an instance with a new flavor") def get_parser(self, prog_name): @@ -466,22 +463,21 @@ class ResizeDatabaseInstanceFlavor(command.Command): 'flavor_id', metavar='', type=str, - help=_('New flavor of the instance') + help=_('New flavor ID of the instance') ) return parser def take_action(self, parsed_args): - db_instances = self.app.client_manager.database.instances - db_flavor = self.app.client_manager.database.flavors - instance = osc_utils.find_resource(db_instances, - parsed_args.instance) - flavor = osc_utils.find_resource(db_flavor, - parsed_args.flavor_id) - db_instances.resize_instance(instance, flavor) + instance_mgr = self.app.client_manager.database.instances + instance_id = parsed_args.instance + + if not uuidutils.is_uuid_like(instance_id): + instance_id = osc_utils.find_resource(instance_mgr, instance_id) + + instance_mgr.resize_instance(instance_id, parsed_args.flavor_id) class UpgradeDatabaseInstance(command.Command): - _description = _("Upgrades an instance to a new datastore version.") def get_parser(self, prog_name): @@ -507,7 +503,6 @@ class UpgradeDatabaseInstance(command.Command): class ResizeDatabaseInstanceVolume(command.Command): - _description = _("Resizes the volume size of an instance.") def get_parser(self, prog_name): @@ -537,12 +532,11 @@ class ResizeDatabaseInstanceVolume(command.Command): class ForceDeleteDatabaseInstance(command.Command): - _description = _("Force delete an instance.") def get_parser(self, prog_name): - parser = (super(ForceDeleteDatabaseInstance, self) - .get_parser(prog_name)) + parser = ( + super(ForceDeleteDatabaseInstance, self).get_parser(prog_name)) parser.add_argument( 'instance', metavar='', @@ -564,7 +558,6 @@ class ForceDeleteDatabaseInstance(command.Command): class PromoteDatabaseInstanceToReplicaSource(command.Command): - _description = _( "Promotes a replica to be the new replica source of its set.") @@ -587,7 +580,6 @@ class PromoteDatabaseInstanceToReplicaSource(command.Command): class RestartDatabaseInstance(command.Command): - _description = _("Restarts an instance.") def get_parser(self, prog_name): @@ -610,7 +602,6 @@ class RestartDatabaseInstance(command.Command): class EjectDatabaseInstanceReplicaSource(command.Command): - _description = _("Ejects a replica source from its set.") def get_parser(self, prog_name): @@ -632,7 +623,6 @@ class EjectDatabaseInstanceReplicaSource(command.Command): class UpdateDatabaseInstance(command.Command): - _description = _("Updates an instance: Edits name, " "configuration, or replica source.") @@ -688,7 +678,6 @@ class UpdateDatabaseInstance(command.Command): class DetachDatabaseInstanceReplica(command.Command): - _description = _("Detaches a replica instance " "from its replication source.") diff --git a/troveclient/tests/osc/v1/test_database_instances.py b/troveclient/tests/osc/v1/test_database_instances.py index d31423ab..d1952947 100644 --- a/troveclient/tests/osc/v1/test_database_instances.py +++ b/troveclient/tests/osc/v1/test_database_instances.py @@ -259,11 +259,13 @@ class TestDatabaseInstanceResizeFlavor(TestInstances): @mock.patch.object(utils, 'find_resource') def test_instance_resize_flavor(self, mock_find): args = ['instance1', 'flavor_id'] - mock_find.side_effect = ['instance1', 'flavor_id'] + mock_find.return_value = 'fake_instance_id' + parsed_args = self.check_parser(self.cmd, args, []) result = self.cmd.take_action(parsed_args) - self.instance_client.resize_instance.assert_called_with('instance1', - 'flavor_id') + + self.instance_client.resize_instance.assert_called_with( + 'fake_instance_id', 'flavor_id') self.assertIsNone(result)