'Link or unlink a snapVx to or from a target volume.
:param array: the array serial number
:param source_id: the source device id
:param target_id: the target device id
:param snap_name: the snapshot name
:param extra_specs: extra specifications
:param link: Flag to indicate action = Link
:param unlink: Flag to indicate action = Unlink'

def modify_volume_snap(self, array, source_id, target_id, snap_name, extra_specs, link=False, unlink=False):

    action = ''
    if link:
        action = 'Link'
    elif unlink:
        action = 'Unlink'
    if action:
        payload = {'deviceNameListSource': [{'name': source_id}], 'deviceNameListTarget': [{'name': target_id}], 'copy': 'true', 'action': action, 'star': 'false', 'force': 'false', 'exact': 'false', 'remote': 'false', 'symforce': 'false', 'nocopy': 'false'}
        (status_code, job) = self.modify_resource(array, REPLICATION, 'snapshot', payload, resource_name=snap_name, private='/private')
        self.wait_for_job('Modify    snapVx    relationship    to    target', status_code, job, extra_specs)
