Support to change parameters for the config group

* openstack database configuration parameter set <config> <values>
* openstack database configuration set <config> <values> --name NAME \
  --description DESC

Change-Id: I5a576309daa1751c76a4a0d33c53a8596c8665e8
This commit is contained in:
Lingxian Kong 2020-05-08 11:35:54 +12:00
parent a8bb73c3b7
commit 4b47eb6f7f
4 changed files with 111 additions and 0 deletions

@ -0,0 +1,9 @@
---
features:
- |
Support following commands of updating configuration:
.. code-block:: console
openstack database configuration parameter set <config_id> <values>
openstack database configuration set <config_id> <values> --name NAME --description DESC

@ -54,6 +54,8 @@ openstack.database.v1 =
database_configuration_detach = troveclient.osc.v1.database_configurations:DetachDatabaseConfiguration
database_configuration_instances = troveclient.osc.v1.database_configurations:ListDatabaseConfigurationInstances
database_configuration_list = troveclient.osc.v1.database_configurations:ListDatabaseConfigurations
database_configuration_set = troveclient.osc.v1.database_configurations:UpdateDatabaseConfiguration
database_configuration_parameter_set = troveclient.osc.v1.database_configurations:SetDatabaseConfiguration
database_configuration_parameter_list = troveclient.osc.v1.database_configurations:ListDatabaseConfigurationParameters
database_configuration_parameter_show = troveclient.osc.v1.database_configurations:ShowDatabaseConfigurationParameter
database_configuration_show = troveclient.osc.v1.database_configurations:ShowDatabaseConfiguration

@ -372,3 +372,66 @@ class DefaultDatabaseConfiguration(command.ShowOne):
parsed_args.instance)
configs = db_instances.configuration(instance)
return zip(*sorted(six.iteritems(configs._info['configuration'])))
class SetDatabaseConfiguration(command.Command):
_description = _("Change parameters for a configuration group.")
def get_parser(self, prog_name):
parser = super(SetDatabaseConfiguration, self).get_parser(prog_name)
parser.add_argument(
'configuration_group_id',
help=_('Configuration group ID.'),
)
parser.add_argument(
'values',
metavar='<values>',
help=_('Dictionary of the new values to set.'),
)
return parser
def take_action(self, parsed_args):
db_configurations = self.app.client_manager.database.configurations
db_configurations.edit(
parsed_args.configuration_group_id,
parsed_args.values
)
class UpdateDatabaseConfiguration(command.Command):
_description = _("Update a configuration group.")
def get_parser(self, prog_name):
parser = super(UpdateDatabaseConfiguration, self).get_parser(prog_name)
parser.add_argument(
'configuration_group_id',
help=_('Configuration group ID.'),
)
parser.add_argument(
'values',
metavar='<values>',
help=_('Dictionary of the values to set.'),
)
parser.add_argument(
'--name',
metavar='<name>',
help=_('New name of the configuration group.'),
)
parser.add_argument(
'--description',
metavar='<description>',
default=None,
help=_('An optional description for the configuration group.'),
)
return parser
def take_action(self, parsed_args):
db_configurations = self.app.client_manager.database.configurations
db_configurations.update(
parsed_args.configuration_group_id,
parsed_args.values,
name=parsed_args.name,
description=parsed_args.description
)

@ -351,3 +351,40 @@ class TestConfigurationDefault(TestConfigurations):
columns, data = self.cmd.take_action(parsed_args)
self.assertEqual(self.columns, columns)
self.assertEqual(self.values, data)
class TestSetDatabaseConfiguration(TestConfigurations):
def setUp(self):
super(TestSetDatabaseConfiguration, self).setUp()
self.cmd = database_configurations.SetDatabaseConfiguration(
self.app, None)
def test_set_database_configuration_parameter(self):
args = ['config_group_id', '{"param1": 1, "param2": 2}']
parsed_args = self.check_parser(self.cmd, args, [])
self.cmd.take_action(parsed_args)
self.configuration_client.edit.assert_called_once_with(
'config_group_id',
'{"param1": 1, "param2": 2}'
)
class TestUpdateDatabaseConfiguration(TestConfigurations):
def setUp(self):
super(TestUpdateDatabaseConfiguration, self).setUp()
self.cmd = database_configurations.UpdateDatabaseConfiguration(
self.app, None)
def test_set_database_configuration_parameter(self):
args = ['config_group_id', '{"param1": 1, "param2": 2}', '--name',
'new_name']
parsed_args = self.check_parser(self.cmd, args, [])
self.cmd.take_action(parsed_args)
self.configuration_client.update.assert_called_once_with(
'config_group_id',
'{"param1": 1, "param2": 2}',
name='new_name',
description=None
)