'Given the volume get the VMAX device Id.
:param volume: volume object
:param extra_specs: the extra Specs
:returns: array, device_id'

def _find_device_on_array(self, volume, extra_specs):

    founddevice_id = None
    volume_name = volume.id
    loc = volume.provider_location
    if isinstance(loc, six.string_types):
        name = ast.literal_eval(loc)
        array = extra_specs[utils.ARRAY]
        if name.get('device_id'):
            device_id = name['device_id']
        elif name.get('keybindings'):
            device_id = name['keybindings']['DeviceID']
        else:
            device_id = None
        element_name = self.utils.get_volume_element_name(volume_name)
        admin_metadata = {}
        if ('admin_metadata' in volume):
            admin_metadata = volume.admin_metadata
        if ('targetVolumeName' in admin_metadata):
            target_vol_name = admin_metadata['targetVolumeName']
            founddevice_id = self.rest.find_volume_device_id(array, target_vol_name)
        else:
            founddevice_id = self.rest.find_volume_device_id(array, element_name)
        if (device_id and (device_id != founddevice_id)):
            founddevice_id = None
    if (founddevice_id is None):
        LOG.debug('Volume    %(volume_name)s    not    found    on    the    array.', {'volume_name': volume_name})
    else:
        LOG.debug('Volume    name:    %(volume_name)s        Volume    device    id:    %(founddevice_id)s.', {'volume_name': volume_name, 'founddevice_id': founddevice_id})
    return founddevice_id
