'Gets iscsi configuration.
We ideally get saved information in the volume entity, but fall back
to discovery if need be. Discovery may be completely removed in future
The properties are:
:target_discovered:    boolean indicating whether discovery was used
:target_iqn:    the IQN of the iSCSI target
:target_portal:    the portal of the iSCSI target
:target_lun:    the lun of the iSCSI target
:volume_id:    the UUID of the volume
:auth_method:, :auth_username:, :auth_password:
the authentication details. Right now, either auth_method is not
present meaning no authentication, or auth_method == `CHAP`
meaning use CHAP with the specified credentials.
:param volume: the cinder volume object
:param ip_and_iqn: list of ip and iqn dicts
:param is_multipath: flag for multipath
:param host_lun_id: the host lun id of the device
:returns: properties'

@staticmethod
def vmax_get_iscsi_properties(volume, ip_and_iqn, is_multipath, host_lun_id):

    properties = {}
    if ((len(ip_and_iqn) > 1) and is_multipath):
        properties['target_portals'] = [(t['ip'] + ':3260') for t in ip_and_iqn]
        properties['target_iqns'] = [t['iqn'].split(',')[0] for t in ip_and_iqn]
        properties['target_luns'] = ([host_lun_id] * len(ip_and_iqn))
    properties['target_discovered'] = True
    properties['target_iqn'] = ip_and_iqn[0]['iqn'].split(',')[0]
    properties['target_portal'] = (ip_and_iqn[0]['ip'] + ':3260')
    properties['target_lun'] = host_lun_id
    properties['volume_id'] = volume.id
    LOG.info('ISCSI    properties:    %(properties)s.', {'properties': properties})
    LOG.info('ISCSI    volume    is:    %(volume)s.', {'volume': volume})
    if hasattr(volume, 'provider_auth'):
        auth = volume.provider_auth
        if (auth is not None):
            (auth_method, auth_username, auth_secret) = auth.split()
            properties['auth_method'] = auth_method
            properties['auth_username'] = auth_username
            properties['auth_password'] = auth_secret
    return properties
