Merge "Revert "Cleanup for Replication v2: remove 'replication-promote'""
This commit is contained in:
		| @@ -452,6 +452,8 @@ class FakeHTTPClient(base_client.HTTPClient): | ||||
|             assert list(body[action]) == ['bootable'] | ||||
|         elif action == 'os-unmanage': | ||||
|             assert body[action] is None | ||||
|         elif action == 'os-promote-replica': | ||||
|             assert body[action] is None | ||||
|         elif action == 'os-reenable-replica': | ||||
|             assert body[action] is None | ||||
|         elif action == 'os-set_image_metadata': | ||||
| @@ -1082,6 +1084,9 @@ class FakeHTTPClient(base_client.HTTPClient): | ||||
|         snapshot.update(kw['body']['snapshot']) | ||||
|         return (202, {}, {'snapshot': snapshot}) | ||||
|  | ||||
|     def post_os_promote_replica_1234(self, **kw): | ||||
|         return (202, {}, {}) | ||||
|  | ||||
|     def post_os_reenable_replica_1234(self, **kw): | ||||
|         return (202, {}, {}) | ||||
|  | ||||
|   | ||||
| @@ -1029,6 +1029,11 @@ class ShellTest(utils.TestCase): | ||||
|         self.assert_called('POST', '/volumes/1234/action', | ||||
|                            body={'os-unmanage': None}) | ||||
|  | ||||
|     def test_replication_promote(self): | ||||
|         self.run_command('replication-promote 1234') | ||||
|         self.assert_called('POST', '/volumes/1234/action', | ||||
|                            body={'os-promote-replica': None}) | ||||
|  | ||||
|     def test_replication_reenable(self): | ||||
|         self.run_command('replication-reenable 1234') | ||||
|         self.assert_called('POST', '/volumes/1234/action', | ||||
|   | ||||
| @@ -281,6 +281,14 @@ class VolumesTest(utils.TestCase): | ||||
|         cs.assert_called('POST', '/os-snapshot-manage', {'snapshot': expected}) | ||||
|         self._assert_request_id(vol) | ||||
|  | ||||
|     def test_replication_promote(self): | ||||
|         v = cs.volumes.get('1234') | ||||
|         self._assert_request_id(v) | ||||
|         vol = cs.volumes.promote(v) | ||||
|         cs.assert_called('POST', '/volumes/1234/action', | ||||
|                          {'os-promote-replica': None}) | ||||
|         self._assert_request_id(vol) | ||||
|  | ||||
|     def test_replication_reenable(self): | ||||
|         v = cs.volumes.get('1234') | ||||
|         self._assert_request_id(v) | ||||
|   | ||||
| @@ -2236,6 +2236,17 @@ def do_unmanage(cs, args): | ||||
|     cs.volumes.unmanage(volume.id) | ||||
|  | ||||
|  | ||||
| @utils.arg('volume', metavar='<volume>', | ||||
|            help='Name or ID of the volume to promote. ' | ||||
|                 'The volume should have the replica volume created with ' | ||||
|                 'source-replica argument.') | ||||
| @utils.service_type('volumev2') | ||||
| def do_replication_promote(cs, args): | ||||
|     """Promote a secondary volume to primary for a relationship.""" | ||||
|     volume = utils.find_volume(cs, args.volume) | ||||
|     cs.volumes.promote(volume.id) | ||||
|  | ||||
|  | ||||
| @utils.arg('volume', metavar='<volume>', | ||||
|            help='Name or ID of the volume to reenable replication. ' | ||||
|                 'The replication-status of the volume should be inactive.') | ||||
|   | ||||
| @@ -587,6 +587,10 @@ class VolumeManager(base.ManagerWithFind): | ||||
|         """Unmanage a volume.""" | ||||
|         return self._action('os-unmanage', volume, None) | ||||
|  | ||||
|     def promote(self, volume): | ||||
|         """Promote secondary to be primary in relationship.""" | ||||
|         return self._action('os-promote-replica', volume, None) | ||||
|  | ||||
|     def reenable(self, volume): | ||||
|         """Sync the secondary volume with primary for a relationship.""" | ||||
|         return self._action('os-reenable-replica', volume, None) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jenkins
					Jenkins