'Delete the zones and cfgs map based on the new zones info.
Return the updated zones, cfgs and active_cfg after deleting the
required items.
:param cfgs: Existing cfgs map
:param active_cfg: Existing Active cfg string
:param zones: Existing zones map
:param delete_zones_info: Zones map to add
:param active_cfg: Existing active cfg
:returns: updated zones, zone config sets, and active zone config
:raises BrocadeZoningHttpException:'

def delete_zones_cfgs(self, cfgs, zones, delete_zones_info, active_cfg):

    try:
        delete_zones_info = delete_zones_info.split(';')
        for zone in delete_zones_info:
            zones.pop(zone)
            for (k, v) in cfgs.items():
                v = v.split(';')
                if (zone in v):
                    v.remove(zone)
                    if (not v):
                        cfgs.pop(k)
                    else:
                        cfgs[k] = ';'.join(v)
        if (active_cfg not in cfgs):
            active_cfg = ''
    except KeyError as e:
        msg = (_('Error    while    removing    the    zones    and    cfgs    in    the    zone    string:    %(description)s.') % {'description': six.text_type(e)})
        LOG.error(msg)
        raise exception.BrocadeZoningHttpException(reason=msg)
    return (zones, cfgs, active_cfg)
