'Returns device_info in list of itls having the matched initiator.
(there could be multiple targets, hence a list):
"hlu":9,
"initiator":{...,"port":"20:00:00:25:B5:49:00:22"},
"export":{...},
"device":{...,"wwn":"600601602B802D00B62236585D0BE311"},
"target":{...,"port":"50:06:01:6A:46:E0:72:EF"},
"san_zone_name":"..."
"hlu":9,
"initiator":{...,"port":"20:00:00:25:B5:49:00:22"},
"export":{...},
"device":{...,"wwn":"600601602B802D00B62236585D0BE311"},
"target":{...,"port":"50:06:01:62:46:E0:72:EF"},
"san_zone_name":"..."'

@retry_wrapper
def _find_device_info(self, volume, initiator_ports):

    volumename = self._get_coprhd_volume_name(volume)
    full_project_name = ('%s/%s' % (self.configuration.coprhd_tenant, self.configuration.coprhd_project))
    vol_uri = self.volume_obj.volume_query(full_project_name, volumename)
    itls = []
    for x in range(MAX_RETRIES):
        exports = self.volume_obj.get_exports_by_uri(vol_uri)
        LOG.debug('Volume    exports:    ')
        LOG.info(vol_uri)
        LOG.debug(exports)
        for itl in exports['itl']:
            itl_port = itl['initiator']['port']
            if (itl_port in initiator_ports):
                found_device_number = itl['hlu']
                if ((found_device_number is not None) and (found_device_number != '-1')):
                    LOG.debug('Found    Device    Number:    %s', found_device_number)
                    itls.append(itl)
        if itls:
            break
        else:
            LOG.debug('Device    Number    not    found    yet.    Retrying    after    10    seconds...')
            eventlet.sleep(INTERVAL_10_SEC)
    if (itls is None):
        LOG.info('No    device    number    has    been    found    after    10    tries;    this    likely    indicates    an    unsuccessful    attach    of    volume    volumename=%(volumename)s    to    initiator        initiator_ports=%(initiator_ports)s', {'volumename': volumename, 'initiator_ports': initiator_ports})
    return itls
