diff options
Diffstat (limited to 'troveclient/osc')
-rw-r--r-- | troveclient/osc/v1/database_configurations.py | 72 | ||||
-rw-r--r-- | troveclient/osc/v1/database_instances.py | 9 | ||||
-rw-r--r-- | troveclient/osc/v1/datastores.py | 17 |
3 files changed, 64 insertions, 34 deletions
diff --git a/troveclient/osc/v1/database_configurations.py b/troveclient/osc/v1/database_configurations.py index 6989576..69a8bf0 100644 --- a/troveclient/osc/v1/database_configurations.py +++ b/troveclient/osc/v1/database_configurations.py @@ -13,12 +13,13 @@ """Database v1 Configurations action implementations""" import json + from osc_lib.command import command from osc_lib import utils as osc_utils +from oslo_utils import uuidutils from troveclient import exceptions from troveclient.i18n import _ -from troveclient import utils def set_attributes_for_print_detail(configuration): @@ -32,7 +33,7 @@ class ListDatabaseConfigurations(command.Lister): _description = _("List database configurations") columns = ['ID', 'Name', 'Description', 'Datastore Name', - 'Datastore Version Name'] + 'Datastore Version Name', 'Datastore Version Number'] def get_parser(self, prog_name): parser = super(ListDatabaseConfigurations, self).get_parser(prog_name) @@ -94,8 +95,9 @@ class ListDatabaseConfigurationParameters(command.Lister): parser.add_argument( 'datastore_version', metavar='<datastore_version>', - help=_('Datastore version name or ID assigned' - 'to the configuration group.') + help=_('Datastore version name or ID assigned to the ' + 'configuration group. ID is preferred if more than one ' + 'datastore versions have the same name.') ) parser.add_argument( '--datastore', @@ -110,19 +112,19 @@ class ListDatabaseConfigurationParameters(command.Lister): def take_action(self, parsed_args): db_configuration_parameters = self.app.client_manager.\ database.configuration_parameters - if parsed_args.datastore: - params = db_configuration_parameters.\ - parameters(parsed_args.datastore, - parsed_args.datastore_version) - elif utils.is_uuid_like(parsed_args.datastore_version): - params = db_configuration_parameters.\ - parameters_by_version(parsed_args.datastore_version) + + if uuidutils.is_uuid_like(parsed_args.datastore_version): + params = db_configuration_parameters.parameters_by_version( + parsed_args.datastore_version) + elif parsed_args.datastore: + params = db_configuration_parameters.parameters( + parsed_args.datastore, + parsed_args.datastore_version) else: - raise exceptions.NoUniqueMatch(_('The datastore name or id is' - ' required to retrieve the' - ' parameters for the' - ' configuration group' - ' by name.')) + raise exceptions.NoUniqueMatch(_('Either datastore version ID or ' + 'datastore name needs to be ' + 'specified.')) + for param in params: setattr(param, 'min_size', getattr(param, 'min', '-')) setattr(param, 'max_size', getattr(param, 'max', '-')) @@ -140,8 +142,9 @@ class ShowDatabaseConfigurationParameter(command.ShowOne): parser.add_argument( 'datastore_version', metavar='<datastore_version>', - help=_('Datastore version name or ID assigned to the' - ' configuration group.'), + help=_('Datastore version name or ID assigned to the ' + 'configuration group. ID is preferred if more than one ' + 'datastore versions have the same name.') ) parser.add_argument( 'parameter', @@ -159,23 +162,23 @@ class ShowDatabaseConfigurationParameter(command.ShowOne): return parser def take_action(self, parsed_args): - db_configuration_parameters = self.app.client_manager.database.\ + db_configuration_parameters = self.app.client_manager.database. \ configuration_parameters - if parsed_args.datastore: - param = db_configuration_parameters.get_parameter( - parsed_args.datastore, + + if uuidutils.is_uuid_like(parsed_args.datastore_version): + param = db_configuration_parameters.get_parameter_by_version( parsed_args.datastore_version, parsed_args.parameter) - elif utils.is_uuid_like(parsed_args.datastore_version): - param = db_configuration_parameters.get_parameter_by_version( + elif parsed_args.datastore: + param = db_configuration_parameters.get_parameter( + parsed_args.datastore, parsed_args.datastore_version, parsed_args.parameter) else: - raise exceptions.NoUniqueMatch(_('The datastore name or id is' - ' required to retrieve the' - ' parameter for the' - ' configuration group' - ' by name.')) + raise exceptions.NoUniqueMatch(_('Either datastore version ID or ' + 'datastore name needs to be ' + 'specified.')) + return zip(*sorted(param._info.items())) @@ -228,13 +231,19 @@ class CreateDatabaseConfiguration(command.ShowOne): 'if default datastore is not configured.'), ) parser.add_argument( - '--datastore_version', + '--datastore-version', metavar='<datastore_version>', default=None, help=_('Datastore version ID assigned to the ' 'configuration group.'), ) parser.add_argument( + '--datastore-version-number', + default=None, + help=_('The version number for the database. The version number ' + 'is needed for the datastore versions with the same name.'), + ) + parser.add_argument( '--description', metavar='<description>', default=None, @@ -249,7 +258,8 @@ class CreateDatabaseConfiguration(command.ShowOne): parsed_args.values, description=parsed_args.description, datastore=parsed_args.datastore, - datastore_version=parsed_args.datastore_version) + datastore_version=parsed_args.datastore_version, + datastore_version_number=parsed_args.datastore_version_number) config_grp = set_attributes_for_print_detail(config_grp) return zip(*sorted(config_grp.items())) diff --git a/troveclient/osc/v1/database_instances.py b/troveclient/osc/v1/database_instances.py index c99b776..918ce20 100644 --- a/troveclient/osc/v1/database_instances.py +++ b/troveclient/osc/v1/database_instances.py @@ -70,6 +70,8 @@ def set_attributes_for_print_detail(instance): if hasattr(instance, 'datastore'): info['datastore'] = instance.datastore['type'] info['datastore_version'] = instance.datastore['version'] + info['datastore_version_number'] = instance.datastore.get( + 'version_number') if hasattr(instance, 'configuration'): info['configuration'] = instance.configuration['id'] if hasattr(instance, 'replica_of'): @@ -304,6 +306,12 @@ class CreateDatabaseInstance(command.ShowOne): help=_("A datastore version name or ID."), ) parser.add_argument( + '--datastore-version-number', + default=None, + help=_('The version number for the database. The version number ' + 'is needed for the datastore versions with the same name.'), + ) + parser.add_argument( '--nic', metavar=('<net-id=<net-uuid>,subnet-id=<subnet-uuid>,' 'ip-address=<ip-address>>'), @@ -461,6 +469,7 @@ class CreateDatabaseInstance(command.ShowOne): availability_zone=(parsed_args.availability_zone), datastore=parsed_args.datastore, datastore_version=(parsed_args.datastore_version), + datastore_version_number=(parsed_args.datastore_version_number), nics=nics, configuration=parsed_args.configuration, replica_of=replica_of, diff --git a/troveclient/osc/v1/datastores.py b/troveclient/osc/v1/datastores.py index a45be92..63a4628 100644 --- a/troveclient/osc/v1/datastores.py +++ b/troveclient/osc/v1/datastores.py @@ -92,7 +92,7 @@ class DeleteDatastore(command.Command): class ListDatastoreVersions(command.Lister): _description = _("Lists available versions for a datastore") - columns = ['ID', 'Name'] + columns = ['ID', 'Name', "Version"] def get_parser(self, prog_name): parser = super(ListDatastoreVersions, self).get_parser(prog_name) @@ -207,6 +207,11 @@ class CreateDatastoreVersion(command.Command): action='store_true', help=_('If set the datastore version as default.'), ) + parser.add_argument( + '--version-number', + help=_("The version number for the database. If not specified, " + "use the version name as the default value."), + ) return parser def take_action(self, parsed_args): @@ -224,7 +229,8 @@ class CreateDatastoreVersion(command.Command): parsed_args.image_id, image_tags=image_tags, active='true' if parsed_args.active else 'false', - default='true' if parsed_args.default else 'false' + default='true' if parsed_args.default else 'false', + version_number=parsed_args.version_number ) except Exception as e: msg = (_("Failed to create datastore version %(version)s: %(e)s") @@ -256,6 +262,10 @@ class UpdateDatastoreVersion(command.Command): default=None, help=_('List of image tags separated by comma, e.g. trove,mysql'), ) + parser.add_argument( + '--version-name', + help=_('New datastore version name.'), + ) enable_group = parser.add_mutually_exclusive_group() enable_group.add_argument('--enable', dest='enable', @@ -292,7 +302,8 @@ class UpdateDatastoreVersion(command.Command): datastore_manager=parsed_args.datastore_manager, image=parsed_args.image, image_tags=image_tags, - active=parsed_args.enable, default=parsed_args.default + active=parsed_args.enable, default=parsed_args.default, + name=parsed_args.version_name ) except Exception as e: msg = (_("Failed to update datastore version %(version)s: %(e)s") |