Add detach-replica to OSC
This change adds database support to the python-openstackclient
project for the detach-replica command.
The trove command detach-replica is now:
    openstack database instance detach replica
Change-Id: Ia6034eccbd3490696270d44d00966c3da94b3999
Partially-Implements: blueprint trove-support-in-python-openstackclient
			
			
This commit is contained in:
		| @@ -0,0 +1,6 @@ | ||||
| --- | ||||
| features: | ||||
|   - | | ||||
|     The command ``trove detach-replica`` is now available | ||||
|     to use in the python-openstackclient CLI as ``openstack database | ||||
|     instance detach replica`` | ||||
| @@ -62,6 +62,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_detach_replica = troveclient.osc.v1.database_instances:DetachDatabaseInstanceReplica | ||||
|     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 | ||||
|   | ||||
| @@ -632,3 +632,26 @@ class UpdateDatabaseInstance(command.Command): | ||||
|                           parsed_args.name, | ||||
|                           parsed_args.detach_replica_source, | ||||
|                           parsed_args.remove_configuration) | ||||
|  | ||||
|  | ||||
| class DetachDatabaseInstanceReplica(command.Command): | ||||
|  | ||||
|     _description = _("Detaches a replica instance " | ||||
|                      "from its replication source.") | ||||
|  | ||||
|     def get_parser(self, prog_name): | ||||
|         parser = super(DetachDatabaseInstanceReplica, 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.edit(instance, detach_replica_source=True) | ||||
|   | ||||
| @@ -339,3 +339,21 @@ class TestDatabaseInstanceUpdate(TestInstances): | ||||
|                                                      'new_instance_name', | ||||
|                                                      True, True) | ||||
|         self.assertIsNone(result) | ||||
|  | ||||
|  | ||||
| class TestInstanceReplicaDetach(TestInstances): | ||||
|  | ||||
|     def setUp(self): | ||||
|         super(TestInstanceReplicaDetach, self).setUp() | ||||
|         self.cmd = database_instances.DetachDatabaseInstanceReplica( | ||||
|             self.app, None) | ||||
|  | ||||
|     @mock.patch.object(utils, 'find_resource') | ||||
|     def test_instance_replica_detach(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.edit.assert_called_with( | ||||
|             'instance', detach_replica_source=True) | ||||
|         self.assertIsNone(result) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 wangyao
					wangyao