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>
This commit is contained in:
parent
3653b49661
commit
21c9085c71
@ -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
|
||||
|
@ -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 "
|
||||
|
@ -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]
|
||||
|
@ -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):
|
||||
|
Loading…
Reference in New Issue
Block a user