summaryrefslogtreecommitdiff
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
parent0cbdfd5fcd8c5961036ff65732e758f563ae8465 (diff)
parent3747c17e188f5cadf14786adff361fafa106e6fd (diff)
downloadpython-troveclient-9d95382a965a7c39db3a5f5c4d2ea6d25da02be8.tar.gz
Merge "Add resize-instance to OSC"
-rw-r--r--releasenotes/notes/add-resize-flavor-to-osc-ba0e7c038df8ecfe.yaml5
-rw-r--r--setup.cfg1
-rw-r--r--troveclient/osc/v1/database_instances.py32
-rw-r--r--troveclient/tests/osc/v1/test_database_instances.py18
4 files changed, 56 insertions, 0 deletions
diff --git a/releasenotes/notes/add-resize-flavor-to-osc-ba0e7c038df8ecfe.yaml b/releasenotes/notes/add-resize-flavor-to-osc-ba0e7c038df8ecfe.yaml
new file mode 100644
index 0000000..68626a2
--- /dev/null
+++ b/releasenotes/notes/add-resize-flavor-to-osc-ba0e7c038df8ecfe.yaml
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ The command ``trove resize-instance`` is now available to use in
+ the python-openstackclient CLI as ``openstack database instance resize flavor``
diff --git a/setup.cfg b/setup.cfg
index bc0c80f..2924c4e 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -57,6 +57,7 @@ openstack.database.v1 =
database_instance_delete = troveclient.osc.v1.database_instances:DeleteDatabaseInstance
database_instance_list = troveclient.osc.v1.database_instances:ListDatabaseInstances
database_instance_reset_status = troveclient.osc.v1.database_instances:ResetDatabaseInstanceStatus
+ database_instance_resize_flavor = troveclient.osc.v1.database_instances:ResizeDatabaseInstanceFlavor
database_instance_show = troveclient.osc.v1.database_instances:ShowDatabaseInstance
database_limit_list = troveclient.osc.v1.database_limits:ListDatabaseLimits
database_root_disable = troveclient.osc.v1.database_root:DisableDatabaseRoot
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)