summaryrefslogtreecommitdiff
path: root/troveclient
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-01-18 21:42:14 +0000
committerGerrit Code Review <review@openstack.org>2018-01-18 21:42:14 +0000
commit9d95382a965a7c39db3a5f5c4d2ea6d25da02be8 (patch)
treeaf2a5c21202f3f0028583f6342012c6b190bdcc1 /troveclient
parent0cbdfd5fcd8c5961036ff65732e758f563ae8465 (diff)
parent3747c17e188f5cadf14786adff361fafa106e6fd (diff)
downloadpython-troveclient-9d95382a965a7c39db3a5f5c4d2ea6d25da02be8.tar.gz
Merge "Add resize-instance to OSC"
Diffstat (limited to 'troveclient')
-rw-r--r--troveclient/osc/v1/database_instances.py32
-rw-r--r--troveclient/tests/osc/v1/test_database_instances.py18
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)