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