Add configuration-default to OSC
This change adds database support to the python-openstackclient project for the configuration-default command. The trove command configuration-default is now: openstack database configuration default Change-Id: I9403df629e893bb1c4d75566cffd3d49697a543d Partially-Implements: blueprint trove-support-in-python-openstackclient
This commit is contained in:
parent
36e231b06f
commit
cfa82f0478
@ -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
|
||||
|
@ -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'])))
|
||||
|
@ -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().
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user