summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-07-17 03:28:52 +0000
committerGerrit Code Review <review@openstack.org>2018-07-17 03:28:52 +0000
commit50c79b3847b1aaf84f07d356d844a2257456076c (patch)
tree6f70396910509a66e8bb54688b60c74f94c8beac
parent1a4ca3545d5341c010e95586e90a34d9e68a551d (diff)
parenta199d90aa1babebb464943d95c4d9421f3d3c706 (diff)
downloadpython-troveclient-50c79b3847b1aaf84f07d356d844a2257456076c.tar.gz
Merge "Add eject-replica-source to OSC"
-rw-r--r--releasenotes/notes/add-eject-replica-source-to-osc-c985a70eaab3f16b.yaml6
-rw-r--r--setup.cfg1
-rw-r--r--troveclient/osc/v1/database_instances.py22
-rw-r--r--troveclient/tests/osc/v1/test_database_instances.py18
4 files changed, 47 insertions, 0 deletions
diff --git a/releasenotes/notes/add-eject-replica-source-to-osc-c985a70eaab3f16b.yaml b/releasenotes/notes/add-eject-replica-source-to-osc-c985a70eaab3f16b.yaml
new file mode 100644
index 0000000..118d7fc
--- /dev/null
+++ b/releasenotes/notes/add-eject-replica-source-to-osc-c985a70eaab3f16b.yaml
@@ -0,0 +1,6 @@
+---
+features:
+ - |
+ The command ``trove eject-replica-source`` is now available to use in
+ the python-openstackclient CLI as ``
+ openstack database instance eject replica source``
diff --git a/setup.cfg b/setup.cfg
index ced5547..6bff680 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -61,6 +61,7 @@ openstack.database.v1 =
database_flavor_show = troveclient.osc.v1.database_flavors:ShowDatabaseFlavor
database_instance_create = troveclient.osc.v1.database_instances:CreateDatabaseInstance
database_instance_delete = troveclient.osc.v1.database_instances:DeleteDatabaseInstance
+ database_instance_eject_replica_source = troveclient.osc.v1.database_instances:EjectDatabaseInstanceReplicaSource
database_instance_force_delete = troveclient.osc.v1.database_instances:ForceDeleteDatabaseInstance
database_instance_list = troveclient.osc.v1.database_instances:ListDatabaseInstances
database_instance_reset_status = troveclient.osc.v1.database_instances:ResetDatabaseInstanceStatus
diff --git a/troveclient/osc/v1/database_instances.py b/troveclient/osc/v1/database_instances.py
index 49fee39..c94b1df 100644
--- a/troveclient/osc/v1/database_instances.py
+++ b/troveclient/osc/v1/database_instances.py
@@ -556,6 +556,28 @@ class RestartDatabaseInstance(command.Command):
db_instances.restart(instance)
+class EjectDatabaseInstanceReplicaSource(command.Command):
+
+ _description = _("Ejects a replica source from its set.")
+
+ def get_parser(self, prog_name):
+ parser = super(EjectDatabaseInstanceReplicaSource, self).get_parser(
+ prog_name)
+ parser.add_argument(
+ 'instance',
+ metavar='<instance>',
+ type=str,
+ help=_('ID or name of the instance.'),
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ db_instances = self.app.client_manager.database.instances
+ instance = osc_utils.find_resource(db_instances,
+ parsed_args.instance)
+ db_instances.eject_replica_source(instance)
+
+
class UpdateDatabaseInstance(command.Command):
_description = _("Updates an instance: Edits name, "
diff --git a/troveclient/tests/osc/v1/test_database_instances.py b/troveclient/tests/osc/v1/test_database_instances.py
index aeac22a..cf9fdcd 100644
--- a/troveclient/tests/osc/v1/test_database_instances.py
+++ b/troveclient/tests/osc/v1/test_database_instances.py
@@ -301,6 +301,24 @@ class TestDatabaseInstanceRestart(TestInstances):
self.assertIsNone(result)
+class TestDatabaseInstanceEjectReplicaSource(TestInstances):
+
+ def setUp(self):
+ super(TestDatabaseInstanceEjectReplicaSource, self).setUp()
+ self.cmd = database_instances.EjectDatabaseInstanceReplicaSource(
+ self.app, None)
+
+ @mock.patch.object(utils, 'find_resource')
+ def test_eject_replica_source(self, mock_find):
+ args = ['instance']
+ mock_find.return_value = args[0]
+ parsed_args = self.check_parser(self.cmd, args, [])
+ result = self.cmd.take_action(parsed_args)
+ self.instance_client.eject_replica_source.assert_called_with(
+ 'instance')
+ self.assertIsNone(result)
+
+
class TestDatabaseInstanceUpdate(TestInstances):
def setUp(self):