summaryrefslogtreecommitdiff
path: root/troveclient/osc
diff options
context:
space:
mode:
Diffstat (limited to 'troveclient/osc')
-rw-r--r--troveclient/osc/v1/database_configurations.py72
-rw-r--r--troveclient/osc/v1/database_instances.py9
-rw-r--r--troveclient/osc/v1/datastores.py17
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")