diff options
author | Lingxian Kong <anlin.kong@gmail.com> | 2020-05-08 11:35:54 +1200 |
---|---|---|
committer | Lingxian Kong <anlin.kong@gmail.com> | 2020-05-08 12:15:42 +1200 |
commit | 4b47eb6f7f8767331411c0323abee1c4a22cf684 (patch) | |
tree | c910c010c0eb617a50b83fbbc1d197850baf9fb7 | |
parent | a8bb73c3b7c1129af165a522bb1ea126ea45235f (diff) | |
download | python-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.yaml | 9 | ||||
-rw-r--r-- | setup.cfg | 2 | ||||
-rw-r--r-- | troveclient/osc/v1/database_configurations.py | 63 | ||||
-rw-r--r-- | troveclient/tests/osc/v1/test_database_configurations.py | 37 |
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 @@ -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 + ) |