diff options
| author | Zuul <zuul@review.openstack.org> | 2018-01-18 21:42:14 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2018-01-18 21:42:14 +0000 |
| commit | 9d95382a965a7c39db3a5f5c4d2ea6d25da02be8 (patch) | |
| tree | af2a5c21202f3f0028583f6342012c6b190bdcc1 /troveclient | |
| parent | 0cbdfd5fcd8c5961036ff65732e758f563ae8465 (diff) | |
| parent | 3747c17e188f5cadf14786adff361fafa106e6fd (diff) | |
| download | python-troveclient-9d95382a965a7c39db3a5f5c4d2ea6d25da02be8.tar.gz | |
Merge "Add resize-instance to OSC"
Diffstat (limited to 'troveclient')
| -rw-r--r-- | troveclient/osc/v1/database_instances.py | 32 | ||||
| -rw-r--r-- | troveclient/tests/osc/v1/test_database_instances.py | 18 |
2 files changed, 50 insertions, 0 deletions
diff --git a/troveclient/osc/v1/database_instances.py b/troveclient/osc/v1/database_instances.py index 604e63b..1af69f5 100644 --- a/troveclient/osc/v1/database_instances.py +++ b/troveclient/osc/v1/database_instances.py @@ -387,3 +387,35 @@ class ResetDatabaseInstanceStatus(command.Command): instance = osc_utils.find_resource(db_instances, parsed_args.instance) db_instances.reset_status(instance) + + +class ResizeDatabaseInstanceFlavor(command.Command): + + _description = _("Resize an instance with a new flavor") + + def get_parser(self, prog_name): + parser = super(ResizeDatabaseInstanceFlavor, self).get_parser( + prog_name + ) + parser.add_argument( + 'instance', + metavar='<instance>', + type=str, + help=_('ID or name of the instance') + ) + parser.add_argument( + 'flavor_id', + metavar='<flavor_id>', + type=str, + help=_('New flavor 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) diff --git a/troveclient/tests/osc/v1/test_database_instances.py b/troveclient/tests/osc/v1/test_database_instances.py index 39b475e..2dc99b6 100644 --- a/troveclient/tests/osc/v1/test_database_instances.py +++ b/troveclient/tests/osc/v1/test_database_instances.py @@ -183,3 +183,21 @@ class TestDatabaseInstanceResetStatus(TestInstances): result = self.cmd.take_action(parsed_args) self.instance_client.reset_status.assert_called_with('instance1') self.assertIsNone(result) + + +class TestDatabaseInstanceResizeFlavor(TestInstances): + + def setUp(self): + super(TestDatabaseInstanceResizeFlavor, self).setUp() + self.cmd = database_instances.ResizeDatabaseInstanceFlavor(self.app, + None) + + @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'] + 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.assertIsNone(result) |
