'Create an RDF pairing.
Create a remote replication relationship between source and target
devices.
:param array: the array serial number
:param device_id: the device id
:param rdf_group_no: the rdf group number
:param target_device: the target device id
:param remote_array: the remote array serial
:param target_vol_name: the name of the target volume
:param extra_specs: the extra specs
:returns: rdf_dict'

@coordination.synchronized('emc-rg-{rdf_group_no}')
def create_rdf_device_pair(self, array, device_id, rdf_group_no, target_device, remote_array, target_vol_name, extra_specs):

    payload = {'deviceNameListSource': [{'name': device_id}], 'deviceNameListTarget': [{'name': target_device}], 'replicationMode': 'Synchronous', 'establish': 'true', 'rdfType': 'RDF1'}
    resource_type = ('rdf_group/%(rdf_num)s/volume' % {'rdf_num': rdf_group_no})
    (status_code, job) = self.create_resource(array, REPLICATION, resource_type, payload, private='/private')
    self.wait_for_job('Create    rdf    pair', status_code, job, extra_specs)
    rdf_dict = {'array': remote_array, 'device_id': target_device}
    return rdf_dict
