Beispiel #1
0
def delete_host_tag_group(params):
    """Delete a host tag group"""
    ident = params['name']
    if is_builtin(ident):
        return problem(
            status=405,
            title="Built-in cannot be delete",
            detail=f"The built-in host tag group {ident} cannot be deleted",
        )

    affected = change_host_tags_in_folders(OperationRemoveTagGroup(ident),
                                           TagCleanupMode.CHECK,
                                           watolib.Folder.root_folder())
    if any(affected):
        if not params["repair"]:
            return problem(
                401,
                f'Deleting this host tag group "{ident}" requires additional authorization',
                'The host tag group you intend to delete is used by other instances. You must authorize Checkmk '
                'to update the relevant instances using the repair parameter')
        watolib.host_attributes.undeclare_host_tag_attribute(ident)
        _ = change_host_tags_in_folders(OperationRemoveTagGroup(ident),
                                        TagCleanupMode("delete"),
                                        watolib.Folder.root_folder())

    tag_config = load_tag_config()
    tag_config.remove_tag_group(ident)
    update_tag_config(tag_config)
    return Response(status=204)
Beispiel #2
0
    def _delete_tag_group(self) -> ActionResult:
        del_id = request.get_item_input("_delete",
                                        dict(self._tag_config.get_tag_group_choices()))[1]

        if not request.has_var("_repair") and self._is_cleaning_up_user_tag_group_to_builtin(
                del_id):
            message: Union[bool,
                           str] = _("Transformed the user tag group \"%s\" to builtin.") % del_id
        else:
            message = _rename_tags_after_confirmation(self.breadcrumb(),
                                                      OperationRemoveTagGroup(del_id))
            if message is False:
                return FinalizeRequest(code=200)

        if message:
            self._tag_config.remove_tag_group(del_id)
            try:
                self._tag_config.validate_config()
            except MKGeneralException as e:
                raise MKUserError(None, "%s" % e)
            self._save_tags_and_update_hosts(self._tag_config.get_dict_format())
            add_change("edit-tags", _("Removed tag group %s (%s)") % (message, del_id))
            if isinstance(message, str):
                flash(message)
        return redirect(mode_url("tags"))
Beispiel #3
0
    def _delete_tag_group(self):
        del_id = html.get_item_input(
            "_delete", dict(self._tag_config.get_tag_group_choices()))[1]

        if not html.request.has_var(
                "_repair") and self._is_cleaning_up_user_tag_group_to_builtin(
                    del_id):
            message: Union[bool, str] = _(
                "Transformed the user tag group \"%s\" to builtin.") % del_id
        else:
            message = _rename_tags_after_confirmation(
                self.breadcrumb(), OperationRemoveTagGroup(del_id))
            if message is True:  # no confirmation yet
                c = wato_confirm(
                    _("Confirm deletion of the tag group '%s'") % del_id,
                    _("Do you really want to delete the tag group '%s'?") %
                    del_id)
                if c is False:
                    return ""
                if c is None:
                    return None

        if message:
            self._tag_config.remove_tag_group(del_id)
            try:
                self._tag_config.validate_config()
            except MKGeneralException as e:
                raise MKUserError(None, "%s" % e)
            self._save_tags_and_update_hosts(
                self._tag_config.get_dict_format())
            add_change("edit-tags",
                       _("Removed tag group %s (%s)") % (message, del_id))
            return "tags", message is not True and message or None
Beispiel #4
0
def delete_host_tag_group(params):
    """Delete a host tag group"""
    ident = params['name']
    allow_repair = params['body'].get("repair", False)
    affected = change_host_tags_in_folders(OperationRemoveTagGroup(ident), TagCleanupMode.CHECK,
                                           watolib.Folder.root_folder())
    if any(affected):
        if not allow_repair:
            return problem(
                401, f'Deleting this host tag group "{ident}" requires additional authorization',
                'The host tag group you intend to delete is used by other instances. You must authorize Checkmk '
                'to update the relevant instances using the repair parameter')
        watolib.host_attributes.undeclare_host_tag_attribute(ident)
        _ = change_host_tags_in_folders(OperationRemoveTagGroup(ident), TagCleanupMode("delete"),
                                        watolib.Folder.root_folder())

    tag_config = load_tag_config()
    tag_config.remove_tag_group(ident)
    update_tag_config(tag_config)
    return Response(status=204)