'Delete connection.
Updates/deletes connection control for the given initiator target map.
initiator_target_map - each initiator WWN mapped to a list of one
or more target WWN:
.. code-block:: python
e.g.:
\'10008c7cff523b01\': [\'20240002ac000a50\', \'20240002ac000a40\']'

def delete_connection(self, conn_info):

    connected_fabric = None
    host_name = None
    storage_system = None
    try:
        self._log_unsupported_driver_warning()
        self._require_initialized()
    except exception.ZoneManagerNotInitialized:
        LOG.error('Cannot    delete    fibre    channel    zone    because    the    Zone    Manager    is    not    initialized    properly.', resource={'type': 'zone_manager', 'id': self.__class__.__name__})
        return
    try:
        initiator_target_map = conn_info[zone_constant.DATA][zone_constant.IT_MAP]
        if (zone_constant.HOST in conn_info[zone_constant.DATA]):
            host_name = conn_info[zone_constant.DATA][zone_constant.HOST]
        if (zone_constant.STORAGE in conn_info[zone_constant.DATA]):
            storage_system = conn_info[zone_constant.DATA][zone_constant.STORAGE].replace('    ', '_')
        for initiator in initiator_target_map.keys():
            target_list = initiator_target_map[initiator]
            LOG.info('Delete    connection    target    list:    %(targets)s', {'targets': target_list})
            fabric_map = self.get_san_context(target_list)
            LOG.debug('Delete    connection    fabric    map    from    SAN    context:    %(fabricmap)s', {'fabricmap': fabric_map})
            for fabric in fabric_map.keys():
                connected_fabric = fabric
                t_list = fabric_map[fabric]
                i_t_map = {initiator: t_list}
                valid_i_t_map = self.get_valid_initiator_target_map(i_t_map, False)
                LOG.info('Final    filtered    map    for    delete    connection:    %(i_t_map)s', {'i_t_map': valid_i_t_map})
                if (len(valid_i_t_map) > 0):
                    self.driver.delete_connection(fabric, valid_i_t_map, host_name, storage_system)
        LOG.debug('Delete    connection    -    finished    iterating    over    all    target    list')
    except Exception as e:
        msg = (_('Failed    removing    connection    for    fabric=%(fabric)s:    Error:    %(err)s') % {'fabric': connected_fabric, 'err': six.text_type(e)})
        LOG.error(msg)
        raise exception.ZoneManagerException(reason=msg)
