Esempio n. 1
0
    def filter(self, value: FilterHTTPVariables) -> FilterHeader:
        if self.ident == "hostgroupvisibility":
            # jump directly because selection is empty filter
            return self.livestatus_query(value)

        if all(value.values()):  # everything on, skip filter
            return ""
        return self.livestatus_query(value)
Esempio n. 2
0
def log_class_filter(value: FilterHTTPVariables) -> FilterHeader:
    if not any(value.values()):
        return "Limit: 0\n"  # no class allowed

    toggled = [
        request_var[-1] for request_var, value in value.items()
        if value == "on"
    ]
    return lq_logic("Filter: class =", toggled, "Or")
Esempio n. 3
0
def checkbox_row(
    options: List[Tuple[str, str]], value: FilterHTTPVariables, title: Optional[str] = None
) -> None:
    html.begin_checkbox_group()
    if title:
        html.write_text(title)
    checkbox_default = not any(value.values())
    for var, text in options:
        html.checkbox(var, bool(value.get(var, checkbox_default)), label=text)
    html.end_checkbox_group()
Esempio n. 4
0
def log_alerts_filter(value: FilterHTTPVariables) -> FilterHeader:
    if not any(value.values()):
        return "Limit: 0\n"  # no allowed state

    headers = []
    for request_var, toggled in value.items():
        if toggled:
            log_type = "HOST" if request_var[-2] == "h" else "SERVICE"
            state = request_var[-1]
            headers.append(
                lq_logic("Filter:",
                         [f"log_type ~ {log_type} .*", f"log_state = {state}"],
                         "And"))

    return "".join(headers) + ("Or: %d\n" % len(headers))
Esempio n. 5
0
def host_state_filter(value: FilterHTTPVariables) -> FilterHeader:
    if not any(value.values()):  # empty selection discard
        return ""
    headers = []
    for request_var, toggled in value.items():
        if toggled:
            continue

        if request_var == "hstp":
            headers.append("Filter: host_has_been_checked = 1\n")

        else:
            headers.append("Filter: host_state = %s\n"
                           "Filter: host_has_been_checked = 1\n"
                           "And: 2\nNegate:\n" % request_var[-1])
    return "".join(headers)
Esempio n. 6
0
def service_state_filter(prefix: str,
                         value: FilterHTTPVariables) -> FilterHeader:
    if not any(value.values()):  # empty selection discard
        return ""

    headers = []
    for request_var, toggled in value.items():
        if toggled:
            continue

        if request_var.endswith("p"):
            headers.append("Filter: service_has_been_checked = 1\n")
        else:
            if prefix == "hd":
                column = "service_last_hard_state"
            else:
                column = "service_state"
            headers.append("Filter: %s = %s\n"
                           "Filter: service_has_been_checked = 1\n"
                           "And: 2\nNegate:\n" % (column, request_var[-1]))

    return "".join(headers)
Esempio n. 7
0
def empty_hostgroup_filter(value: FilterHTTPVariables) -> FilterHeader:
    if any(value.values()):  # Selected to show empty
        return ""
    return "Filter: hostgroup_num_hosts > 0\n"