Add configuration-show to OSC
This change adds database support to the python-openstackclient project for the configuration-show command. The trove command configuration-show is now: openstack database configuration show Change-Id: I2f2cd93054ecaa8f67722a0efd8789b63e59b373 Partially-Implements: trove-support-in-python-openstackclient
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- The command ``trove configuration-show`` is now available to
|
||||||
|
use in the python-openstackclient CLI as ``openstack database
|
||||||
|
configuration show``
|
@@ -33,6 +33,7 @@ openstack.database.v1 =
|
|||||||
database_backup_list = troveclient.osc.v1.database_backups:ListDatabaseBackups
|
database_backup_list = troveclient.osc.v1.database_backups:ListDatabaseBackups
|
||||||
database_cluster_list = troveclient.osc.v1.database_clusters:ListDatabaseClusters
|
database_cluster_list = troveclient.osc.v1.database_clusters:ListDatabaseClusters
|
||||||
database_configuration_list = troveclient.osc.v1.database_configurations:ListDatabaseConfigurations
|
database_configuration_list = troveclient.osc.v1.database_configurations:ListDatabaseConfigurations
|
||||||
|
database_configuration_show = troveclient.osc.v1.database_configurations:ShowDatabaseConfiguration
|
||||||
database_flavor_list = troveclient.osc.v1.database_flavors:ListDatabaseFlavors
|
database_flavor_list = troveclient.osc.v1.database_flavors:ListDatabaseFlavors
|
||||||
database_instance_list = troveclient.osc.v1.database_instances:ListDatabaseInstances
|
database_instance_list = troveclient.osc.v1.database_instances:ListDatabaseInstances
|
||||||
database_limit_list = troveclient.osc.v1.database_limits:ListDatabaseLimits
|
database_limit_list = troveclient.osc.v1.database_limits:ListDatabaseLimits
|
||||||
|
@@ -12,12 +12,21 @@
|
|||||||
|
|
||||||
"""Database v1 Configurations action implementations"""
|
"""Database v1 Configurations action implementations"""
|
||||||
|
|
||||||
|
import json
|
||||||
from osc_lib.command import command
|
from osc_lib.command import command
|
||||||
from osc_lib import utils as osc_utils
|
from osc_lib import utils as osc_utils
|
||||||
|
import six
|
||||||
|
|
||||||
from troveclient.i18n import _
|
from troveclient.i18n import _
|
||||||
|
|
||||||
|
|
||||||
|
def set_attributes_for_print_detail(configuration):
|
||||||
|
info = configuration._info.copy()
|
||||||
|
info['values'] = json.dumps(configuration.values)
|
||||||
|
del info['datastore_version_id']
|
||||||
|
return info
|
||||||
|
|
||||||
|
|
||||||
class ListDatabaseConfigurations(command.Lister):
|
class ListDatabaseConfigurations(command.Lister):
|
||||||
|
|
||||||
_description = _("List database configurations")
|
_description = _("List database configurations")
|
||||||
@@ -51,3 +60,23 @@ class ListDatabaseConfigurations(command.Lister):
|
|||||||
config = [osc_utils.get_item_properties(c, self.columns)
|
config = [osc_utils.get_item_properties(c, self.columns)
|
||||||
for c in config]
|
for c in config]
|
||||||
return self.columns, config
|
return self.columns, config
|
||||||
|
|
||||||
|
|
||||||
|
class ShowDatabaseConfiguration(command.ShowOne):
|
||||||
|
_description = _("Shows details of a database configuration group.")
|
||||||
|
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
parser = super(ShowDatabaseConfiguration, self).get_parser(prog_name)
|
||||||
|
parser.add_argument(
|
||||||
|
'configuration_group',
|
||||||
|
metavar='<configuration_group>',
|
||||||
|
help=_('ID or name of the configuration group'),
|
||||||
|
)
|
||||||
|
return parser
|
||||||
|
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
db_configurations = self.app.client_manager.database.configurations
|
||||||
|
configuration = osc_utils.find_resource(
|
||||||
|
db_configurations, parsed_args.configuration_group)
|
||||||
|
configuration = set_attributes_for_print_detail(configuration)
|
||||||
|
return zip(*sorted(six.iteritems(configuration)))
|
||||||
|
@@ -47,3 +47,33 @@ class TestConfigurationList(TestConfigurations):
|
|||||||
self.configuration_client.list.assert_called_once_with(**self.defaults)
|
self.configuration_client.list.assert_called_once_with(**self.defaults)
|
||||||
self.assertEqual(self.columns, columns)
|
self.assertEqual(self.columns, columns)
|
||||||
self.assertEqual([tuple(self.values)], data)
|
self.assertEqual([tuple(self.values)], data)
|
||||||
|
|
||||||
|
|
||||||
|
class TestConfigurationShow(TestConfigurations):
|
||||||
|
|
||||||
|
values = ('2015-05-16T10:24:28', 'mysql', '5.6', '', 'c-123',
|
||||||
|
'test_config', '2015-05-16T10:24:29', '{"max_connections": 5}')
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
super(TestConfigurationShow, self).setUp()
|
||||||
|
self.cmd = database_configurations.ShowDatabaseConfiguration(self.app,
|
||||||
|
None)
|
||||||
|
self.data = self.fake_configurations.get_configurations_c_123()
|
||||||
|
self.configuration_client.get.return_value = self.data
|
||||||
|
self.columns = (
|
||||||
|
'created',
|
||||||
|
'datastore_name',
|
||||||
|
'datastore_version_name',
|
||||||
|
'description',
|
||||||
|
'id',
|
||||||
|
'name',
|
||||||
|
'updated',
|
||||||
|
'values',
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_show(self):
|
||||||
|
args = ['c-123']
|
||||||
|
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)
|
||||||
|
Reference in New Issue
Block a user