Support to create datastore version
Change-Id: Ibc7c191a3dbbe8d03cfbc9d41e30833b47ab429f
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Support to create datastore version in CLI.
|
@@ -99,6 +99,7 @@ openstack.database.v1 =
|
|||||||
datastore_list = troveclient.osc.v1.datastores:ListDatastores
|
datastore_list = troveclient.osc.v1.datastores:ListDatastores
|
||||||
datastore_show = troveclient.osc.v1.datastores:ShowDatastore
|
datastore_show = troveclient.osc.v1.datastores:ShowDatastore
|
||||||
datastore_delete = troveclient.osc.v1.datastores:DeleteDatastore
|
datastore_delete = troveclient.osc.v1.datastores:DeleteDatastore
|
||||||
|
datastore_version_create = troveclient.osc.v1.datastores:CreateDatastoreVersion
|
||||||
datastore_version_list = troveclient.osc.v1.datastores:ListDatastoreVersions
|
datastore_version_list = troveclient.osc.v1.datastores:ListDatastoreVersions
|
||||||
datastore_version_show = troveclient.osc.v1.datastores:ShowDatastoreVersion
|
datastore_version_show = troveclient.osc.v1.datastores:ShowDatastoreVersion
|
||||||
datastore_version_delete = troveclient.osc.v1.datastores:DeleteDatastoreVersion
|
datastore_version_delete = troveclient.osc.v1.datastores:DeleteDatastoreVersion
|
||||||
|
@@ -169,3 +169,54 @@ class DeleteDatastoreVersion(command.Command):
|
|||||||
msg = (_("Failed to delete datastore version %(version)s: %(e)s")
|
msg = (_("Failed to delete datastore version %(version)s: %(e)s")
|
||||||
% {'version': parsed_args.datastore_version, 'e': e})
|
% {'version': parsed_args.datastore_version, 'e': e})
|
||||||
raise exceptions.CommandError(msg)
|
raise exceptions.CommandError(msg)
|
||||||
|
|
||||||
|
|
||||||
|
class CreateDatastoreVersion(command.Command):
|
||||||
|
_description = _("Creates a datastore version.")
|
||||||
|
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
parser = super(CreateDatastoreVersion, self).get_parser(prog_name)
|
||||||
|
parser.add_argument(
|
||||||
|
'version_name',
|
||||||
|
help=_('Datastore version name.'),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'datastore_name',
|
||||||
|
help=_("Datastore name. The datastore is created automatically "
|
||||||
|
"if does not exist."),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'datastore_manager',
|
||||||
|
help=_('Datastore manager, e.g. mysql'),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'image_id',
|
||||||
|
help=_('ID of the datastore image in Glance.'),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--active',
|
||||||
|
action='store_true',
|
||||||
|
help=_('Enable the datastore version or not.'),
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--default',
|
||||||
|
action='store_true',
|
||||||
|
help=_('If set the datastore version as default.'),
|
||||||
|
)
|
||||||
|
return parser
|
||||||
|
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
client = self.app.client_manager.database.mgmt_ds_versions
|
||||||
|
try:
|
||||||
|
client.create(
|
||||||
|
parsed_args.version_name,
|
||||||
|
parsed_args.datastore_name,
|
||||||
|
parsed_args.datastore_manager,
|
||||||
|
parsed_args.image_id,
|
||||||
|
active='true' if parsed_args.active else 'false',
|
||||||
|
default='true' if parsed_args.default else 'false'
|
||||||
|
)
|
||||||
|
except Exception as e:
|
||||||
|
msg = (_("Failed to create datastore version %(version)s: %(e)s")
|
||||||
|
% {'version': parsed_args.version_name, 'e': e})
|
||||||
|
raise exceptions.CommandError(msg)
|
||||||
|
@@ -156,3 +156,21 @@ class TestDeleteDatastoreVersion(TestDatastores):
|
|||||||
self.cmd.take_action(parsed_args)
|
self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
self.dsversion_mgmt_client.delete.assert_called_once_with(dsversion_id)
|
self.dsversion_mgmt_client.delete.assert_called_once_with(dsversion_id)
|
||||||
|
|
||||||
|
|
||||||
|
class TestCreateDatastoreVersion(TestDatastores):
|
||||||
|
def setUp(self):
|
||||||
|
super(TestCreateDatastoreVersion, self).setUp()
|
||||||
|
self.cmd = datastores.CreateDatastoreVersion(self.app, None)
|
||||||
|
|
||||||
|
def test_create_datastore_version(self):
|
||||||
|
image_id = uuidutils.generate_uuid()
|
||||||
|
args = ['new_name', 'ds_name', 'ds_manager', image_id, '--active',
|
||||||
|
'--default']
|
||||||
|
parsed_args = self.check_parser(self.cmd, args, [])
|
||||||
|
|
||||||
|
self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
self.dsversion_mgmt_client.create.assert_called_once_with(
|
||||||
|
'new_name', 'ds_name', 'ds_manager', image_id, active='true',
|
||||||
|
default='true')
|
||||||
|
Reference in New Issue
Block a user