Support to delete datastore
Change-Id: Id0fe73eef95bb57ecee706b9eb9b7aae53236e3b
This commit is contained in:
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Support to delete datastore by ID or name, this is admin action by default.
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
openstack datastore delete <datastore>
|
@@ -97,6 +97,7 @@ openstack.database.v1 =
|
|||||||
database_user_update_attributes = troveclient.osc.v1.database_users:UpdateDatabaseUserAttributes
|
database_user_update_attributes = troveclient.osc.v1.database_users:UpdateDatabaseUserAttributes
|
||||||
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_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
|
||||||
|
@@ -68,6 +68,28 @@ class ShowDatastore(command.ShowOne):
|
|||||||
return zip(*sorted(six.iteritems(datastore)))
|
return zip(*sorted(six.iteritems(datastore)))
|
||||||
|
|
||||||
|
|
||||||
|
class DeleteDatastore(command.Command):
|
||||||
|
_description = _("Deletes a datastore")
|
||||||
|
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
parser = super(DeleteDatastore, self).get_parser(prog_name)
|
||||||
|
parser.add_argument(
|
||||||
|
'datastore',
|
||||||
|
metavar='<datastore>',
|
||||||
|
help=_('ID or name of the datastore'),
|
||||||
|
)
|
||||||
|
return parser
|
||||||
|
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
datastore_client = self.app.client_manager.database.datastores
|
||||||
|
try:
|
||||||
|
datastore_client.delete(parsed_args.datastore)
|
||||||
|
except Exception as e:
|
||||||
|
msg = (_("Failed to delete datastore %(datastore)s: %(e)s")
|
||||||
|
% {'datastore': parsed_args.datastore, 'e': e})
|
||||||
|
raise exceptions.CommandError(msg)
|
||||||
|
|
||||||
|
|
||||||
class ListDatastoreVersions(command.Lister):
|
class ListDatastoreVersions(command.Lister):
|
||||||
|
|
||||||
_description = _("Lists available versions for a datastore")
|
_description = _("Lists available versions for a datastore")
|
||||||
|
@@ -71,6 +71,21 @@ class TestDatastoreShow(TestDatastores):
|
|||||||
self.assertEqual(self.values, data)
|
self.assertEqual(self.values, data)
|
||||||
|
|
||||||
|
|
||||||
|
class TestDeleteDatastore(TestDatastores):
|
||||||
|
def setUp(self):
|
||||||
|
super(TestDeleteDatastore, self).setUp()
|
||||||
|
self.cmd = datastores.DeleteDatastore(self.app, None)
|
||||||
|
|
||||||
|
def test_delete_datastore(self):
|
||||||
|
ds_id = uuidutils.generate_uuid()
|
||||||
|
args = [ds_id]
|
||||||
|
parsed_args = self.check_parser(self.cmd, args, [])
|
||||||
|
|
||||||
|
self.cmd.take_action(parsed_args)
|
||||||
|
|
||||||
|
self.datastore_client.delete.assert_called_once_with(ds_id)
|
||||||
|
|
||||||
|
|
||||||
class TestDatastoreVersionList(TestDatastores):
|
class TestDatastoreVersionList(TestDatastores):
|
||||||
columns = datastores.ListDatastoreVersions.columns
|
columns = datastores.ListDatastoreVersions.columns
|
||||||
values = ('v-56', '5.6')
|
values = ('v-56', '5.6')
|
||||||
|
@@ -61,6 +61,10 @@ class Datastores(base.ManagerWithFind):
|
|||||||
return self._get("/datastores/%s" % base.getid(datastore),
|
return self._get("/datastores/%s" % base.getid(datastore),
|
||||||
"datastore")
|
"datastore")
|
||||||
|
|
||||||
|
def delete(self, datastore):
|
||||||
|
"""Delete a specific datastore."""
|
||||||
|
return self._delete("/datastores/%s" % base.getid(datastore))
|
||||||
|
|
||||||
|
|
||||||
class DatastoreVersions(base.ManagerWithFind):
|
class DatastoreVersions(base.ManagerWithFind):
|
||||||
"""Manage :class:`DatastoreVersion` resources."""
|
"""Manage :class:`DatastoreVersion` resources."""
|
||||||
|
Reference in New Issue
Block a user