diff options
author | Zuul <zuul@review.openstack.org> | 2018-07-17 14:32:37 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2018-07-17 14:32:37 +0000 |
commit | cb1d3672ab4ba38b869b39da2b0a670813e8f726 (patch) | |
tree | 90f32d3c23e18fc480007b6e6c41457641ee58bb | |
parent | 42913d9248ce33d19e0ed5bbacf07f3cd223d35b (diff) | |
parent | cfa82f04789e4e52617c8638790883e458f61887 (diff) | |
download | python-troveclient-cb1d3672ab4ba38b869b39da2b0a670813e8f726.tar.gz |
Merge "Add configuration-default to OSC"
-rw-r--r-- | releasenotes/notes/add-configuration-default-to-osc-55867236d19d83c4.yaml | 6 | ||||
-rw-r--r-- | setup.cfg | 1 | ||||
-rw-r--r-- | troveclient/osc/v1/database_configurations.py | 22 | ||||
-rw-r--r-- | troveclient/tests/osc/v1/fakes.py | 6 | ||||
-rw-r--r-- | troveclient/tests/osc/v1/test_database_configurations.py | 28 |
5 files changed, 63 insertions, 0 deletions
diff --git a/releasenotes/notes/add-configuration-default-to-osc-55867236d19d83c4.yaml b/releasenotes/notes/add-configuration-default-to-osc-55867236d19d83c4.yaml new file mode 100644 index 0000000..ed58f2d --- /dev/null +++ b/releasenotes/notes/add-configuration-default-to-osc-55867236d19d83c4.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + The command ``trove configuration-default`` is now available + to use in the python-openstackclient CLI as ``openstack + database configuration default`` @@ -48,6 +48,7 @@ openstack.database.v1 = database_cluster_upgrade = troveclient.osc.v1.database_clusters:UpgradeDatabaseCluster database_configuration_attach = troveclient.osc.v1.database_configurations:AttachDatabaseConfiguration database_configuration_create = troveclient.osc.v1.database_configurations:CreateDatabaseConfiguration + database_configuration_default = troveclient.osc.v1.database_configurations:DefaultDatabaseConfiguration database_configuration_delete = troveclient.osc.v1.database_configurations:DeleteDatabaseConfiguration database_configuration_detach = troveclient.osc.v1.database_configurations:DetachDatabaseConfiguration database_configuration_instances = troveclient.osc.v1.database_configurations:ListDatabaseConfigurationInstances diff --git a/troveclient/osc/v1/database_configurations.py b/troveclient/osc/v1/database_configurations.py index edad754..ea3f09a 100644 --- a/troveclient/osc/v1/database_configurations.py +++ b/troveclient/osc/v1/database_configurations.py @@ -350,3 +350,25 @@ class ListDatabaseConfigurationInstances(command.Lister): instance = [osc_utils.get_item_properties(p, self.columns) for p in params] return self.columns, instance + + +class DefaultDatabaseConfiguration(command.ShowOne): + _description = _("Shows the default configuration of an instance.") + + def get_parser(self, prog_name): + parser = super(DefaultDatabaseConfiguration, self).get_parser( + prog_name) + parser.add_argument( + 'instance', + metavar='<instance>', + type=str, + help=_('ID or name of the instance.'), + ) + return parser + + def take_action(self, parsed_args): + db_instances = self.app.client_manager.database.instances + instance = osc_utils.find_resource(db_instances, + parsed_args.instance) + configs = db_instances.configuration(instance) + return zip(*sorted(six.iteritems(configs._info['configuration']))) diff --git a/troveclient/tests/osc/v1/fakes.py b/troveclient/tests/osc/v1/fakes.py index 02cc544..caca652 100644 --- a/troveclient/tests/osc/v1/fakes.py +++ b/troveclient/tests/osc/v1/fakes.py @@ -73,6 +73,9 @@ class FakeConfigurations(object): [2]['configurations']) fake_config_instances = (fakes.FakeHTTPClient(). get_configurations_c_123_instances()[2]) + fake_default_config = ( + fakes.FakeHTTPClient().get_instances_1234_configuration() + [2]['instance']) def get_configurations_c_123(self): return configurations.Configuration(None, self.fake_config[0]) @@ -81,6 +84,9 @@ class FakeConfigurations(object): return [instances.Instance(None, fake_instance) for fake_instance in self.fake_config_instances['instances']] + def get_default_configuration(self): + return instances.Instance(None, self.fake_default_config) + class FakeConfigurationParameters(object): fake_config_param = (fakes.FakeHTTPClient(). diff --git a/troveclient/tests/osc/v1/test_database_configurations.py b/troveclient/tests/osc/v1/test_database_configurations.py index 9dce2ad..2a2d64c 100644 --- a/troveclient/tests/osc/v1/test_database_configurations.py +++ b/troveclient/tests/osc/v1/test_database_configurations.py @@ -323,3 +323,31 @@ class TestConfigurationInstancesList(TestConfigurations): columns, data = self.cmd.take_action(parsed_args) self.assertEqual(self.columns, columns) self.assertEqual(self.values, data) + + +class TestConfigurationDefault(TestConfigurations): + + values = ('2', '98', '1', '15M') + + def setUp(self): + super(TestConfigurationDefault, self).setUp() + self.cmd = database_configurations.DefaultDatabaseConfiguration( + self.app, None) + self.data = ( + self.fake_configurations.get_default_configuration()) + self.instance_client.configuration.return_value = self.data + self.columns = ( + 'innodb_log_files_in_group', + 'max_user_connections', + 'skip-external-locking', + 'tmp_table_size', + ) + + @mock.patch.object(utils, 'find_resource') + def test_default_database_configuration(self, mock_find): + args = ['1234'] + mock_find.return_value = args[0] + parsed_args = self.check_parser(self.cmd, args, []) + columns, data = self.cmd.take_action(parsed_args) + self.assertEqual(self.columns, columns) + self.assertEqual(self.values, data) |