diff options
| author | Zhao Chao <zhaochao1984@gmail.com> | 2018-01-12 11:32:58 +0800 |
|---|---|---|
| committer | Zhao Chao <zhaochao1984@gmail.com> | 2018-01-15 19:17:53 +0800 |
| commit | 21c9085c712f34c7cdc80fc0f5f80518a07e64b6 (patch) | |
| tree | 48f9590434585b5faaa5b93d89b26d1b3dbc8cd1 | |
| parent | 3653b49661a611c1195f40b4acc0ca7514c61815 (diff) | |
| download | python-troveclient-21c9085c712f34c7cdc80fc0f5f80518a07e64b6.tar.gz | |
Add root-disable to OSC
This change adds database support for the python-openstackclient
project for the root-disable command.
The trove command root-disable is now:
openstack database root disable
Change-Id: I51d351174d6bf36948eb7e48de0aa6509c563738
Partially-Implements: blueprint trove-support-in-python-openstackclient
Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
| -rw-r--r-- | releasenotes/notes/add-root-disable-to-osc-52d81d96ec7e4e54.yaml | 5 | ||||
| -rw-r--r-- | setup.cfg | 1 | ||||
| -rw-r--r-- | troveclient/osc/v1/database_root.py | 25 | ||||
| -rw-r--r-- | troveclient/tests/osc/v1/fakes.py | 3 | ||||
| -rw-r--r-- | troveclient/tests/osc/v1/test_database_root.py | 18 |
5 files changed, 52 insertions, 0 deletions
diff --git a/releasenotes/notes/add-root-disable-to-osc-52d81d96ec7e4e54.yaml b/releasenotes/notes/add-root-disable-to-osc-52d81d96ec7e4e54.yaml new file mode 100644 index 0000000..59a7fa3 --- /dev/null +++ b/releasenotes/notes/add-root-disable-to-osc-52d81d96ec7e4e54.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The command ``trove root-disable`` is now available to use in + the python-openstackclient CLI as ``openstack database root disable``. @@ -59,6 +59,7 @@ openstack.database.v1 = database_instance_reset_status = troveclient.osc.v1.database_instances:ResetDatabaseInstanceStatus 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 database_root_enable = troveclient.osc.v1.database_root:EnableDatabaseRoot database_root_show = troveclient.osc.v1.database_root:ShowDatabaseRoot database_user_create = troveclient.osc.v1.database_users:CreateDatabaseUser diff --git a/troveclient/osc/v1/database_root.py b/troveclient/osc/v1/database_root.py index dcac9ec..cd6c533 100644 --- a/troveclient/osc/v1/database_root.py +++ b/troveclient/osc/v1/database_root.py @@ -83,6 +83,31 @@ class EnableDatabaseRoot(command.ShowOne): return zip(*sorted(six.iteritems(result))) +class DisableDatabaseRoot(command.Command): + + _description = _("Disables root for an instance.") + + def get_parser(self, prog_name): + parser = super(DisableDatabaseRoot, self).get_parser(prog_name) + parser.add_argument( + 'instance', + metavar='<instance>', + help=_('ID or name of the instance.'), + ) + + return parser + + def take_action(self, parsed_args): + database_client_manager = self.app.client_manager.database + + db_instances = database_client_manager.instances + instance = osc_utils.find_resource(db_instances, + parsed_args.instance) + + db_root = database_client_manager.root + db_root.disable_instance_root(instance) + + class ShowDatabaseRoot(command.ShowOne): _description = _("Gets status if root was ever enabled for " diff --git a/troveclient/tests/osc/v1/fakes.py b/troveclient/tests/osc/v1/fakes.py index 1e7f04b..e6f97f0 100644 --- a/troveclient/tests/osc/v1/fakes.py +++ b/troveclient/tests/osc/v1/fakes.py @@ -152,3 +152,6 @@ class FakeRoot(object): def post_cls_1234_root(self): root = fakes.FakeHTTPClient().post_instances_1234_root()[2]['user'] return root['name'], root['password'] + + def delete_instance_1234_root(self): + return fakes.FakeHTTPClient().delete_instances_1234_root()[2] diff --git a/troveclient/tests/osc/v1/test_database_root.py b/troveclient/tests/osc/v1/test_database_root.py index c7c2dbe..a0e5663 100644 --- a/troveclient/tests/osc/v1/test_database_root.py +++ b/troveclient/tests/osc/v1/test_database_root.py @@ -78,6 +78,24 @@ class TestRootEnable(TestRoot): root_password='secret') +class TestRootDisable(TestRoot): + + def setUp(self): + super(TestRootDisable, self).setUp() + self.cmd = database_root.DisableDatabaseRoot(self.app, None) + self.data = self.fake_root.delete_instance_1234_root() + + @mock.patch.object(utils, 'find_resource') + def test_disable_instance_1234_root(self, mock_find): + self.root_client.disable_instance_root.return_value = self.data + args = ['1234'] + mock_find.return_value = args[0] + parsed_args = self.check_parser(self.cmd, args, []) + result = self.cmd.take_action(parsed_args) + self.root_client.disable_instance_root.assert_called_with('1234') + self.assertIsNone(result) + + class TestRootShow(TestRoot): def setUp(self): |
