summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLingxian Kong <anlin.kong@gmail.com>2020-05-08 11:35:54 +1200
committerLingxian Kong <anlin.kong@gmail.com>2020-05-08 12:15:42 +1200
commit4b47eb6f7f8767331411c0323abee1c4a22cf684 (patch)
treec910c010c0eb617a50b83fbbc1d197850baf9fb7
parenta8bb73c3b7c1129af165a522bb1ea126ea45235f (diff)
downloadpython-troveclient-4b47eb6f7f8767331411c0323abee1c4a22cf684.tar.gz
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
-rw-r--r--releasenotes/notes/victoria-01-update-config-group.yaml9
-rw-r--r--setup.cfg2
-rw-r--r--troveclient/osc/v1/database_configurations.py63
-rw-r--r--troveclient/tests/osc/v1/test_database_configurations.py37
4 files changed, 111 insertions, 0 deletions
diff --git a/releasenotes/notes/victoria-01-update-config-group.yaml b/releasenotes/notes/victoria-01-update-config-group.yaml
new file mode 100644
index 0000000..0c1b7f5
--- /dev/null
+++ b/releasenotes/notes/victoria-01-update-config-group.yaml
@@ -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
diff --git a/setup.cfg b/setup.cfg
index e1e57d1..dd78075 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -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
diff --git a/troveclient/osc/v1/database_configurations.py b/troveclient/osc/v1/database_configurations.py
index ea3f09a..a1a1c44 100644
--- a/troveclient/osc/v1/database_configurations.py
+++ b/troveclient/osc/v1/database_configurations.py
@@ -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
+ )
diff --git a/troveclient/tests/osc/v1/test_database_configurations.py b/troveclient/tests/osc/v1/test_database_configurations.py
index 4073500..dbd2dc6 100644
--- a/troveclient/tests/osc/v1/test_database_configurations.py
+++ b/troveclient/tests/osc/v1/test_database_configurations.py
@@ -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
+ )