예제 #1
0
def _update_single_service_phase(
    target_phase: str,
    host: watolib.CREHost,
    check_type: str,
    service_item: str,
) -> None:
    discovery = Discovery(
        host=host,
        discovery_options=DiscoveryOptions(
            action=DiscoveryAction.SINGLE_UPDATE,
            show_checkboxes=False,
            show_parameters=False,
            show_discovered_labels=False,
            show_plugin_names=False,
            ignore_errors=True,
        ),
        api_request={
            "update_target": target_phase,
            "update_services": [checkbox_id(
                check_type,
                service_item,
            )]
        },
    )
    discovery.execute_discovery()
예제 #2
0
def execute(params):
    """Execute a service discovery on a host"""
    host = watolib.Host.host(params["host_name"])
    discovery_request = StartDiscoveryRequest(host=host,
                                              folder=host.folder(),
                                              options=DiscoveryOptions(
                                                  action=DISCOVERY_ACTION[params["discover_mode"]],
                                                  show_checkboxes=False,
                                                  show_parameters=False,
                                                  show_discovered_labels=False,
                                                  show_plugin_names=False,
                                                  ignore_errors=True))
    _discovery_result = get_check_table(discovery_request)
    return Response(status=204)
예제 #3
0
def show_services(params):
    """Show all services of specific state"""
    host = watolib.Host.host(params["host_name"])
    discovery_request = StartDiscoveryRequest(
        host=host,
        folder=host.folder(),
        options=DiscoveryOptions(action='',
                                 show_checkboxes=False,
                                 show_parameters=False,
                                 show_discovered_labels=False,
                                 show_plugin_names=False,
                                 ignore_errors=True),
    )
    discovery_result = get_check_table(discovery_request)
    return _serve_services(host, discovery_result.check_table, params["discovery_state"])
예제 #4
0
def move_service(params):
    """Update the phase of a service"""
    host = watolib.Host.host(params["host_name"])
    discovery_request = {
        "update_target": params["target_state"],
        "update_services": [params["service_hash"]]
    }

    discovery_options = DiscoveryOptions(action='single-update',
                                         show_checkboxes=False,
                                         show_parameters=False,
                                         show_discovered_labels=False,
                                         show_plugin_names=False,
                                         ignore_errors=True)

    discovery = Discovery(host=host, discovery_options=discovery_options, request=discovery_request)

    discovery.execute_discovery()
    return Response(status=204)
예제 #5
0
def show_services(params) -> Response:
    """Show all services of specific phase"""
    host = Host.load_host(params["host_name"])
    discovery_request = StartDiscoveryRequest(
        host=host,
        folder=host.folder(),
        options=DiscoveryOptions(
            action="",
            show_checkboxes=False,
            show_parameters=False,
            show_discovered_labels=False,
            show_plugin_names=False,
            ignore_errors=True,
        ),
    )
    discovery_result = get_check_table(discovery_request)
    return _serve_services(
        host,
        discovery_result.check_table,
        [params["discovery_phase"]],
    )
예제 #6
0
def execute(params):
    """Execute a service discovery on a host"""
    host = watolib.Host.host(params["host_name"])
    body = params['body']
    discovery_request = StartDiscoveryRequest(
        host=host,
        folder=host.folder(),
        options=DiscoveryOptions(
            action=DISCOVERY_ACTION[body["mode"]],
            show_checkboxes=False,
            show_parameters=False,
            show_discovered_labels=False,
            show_plugin_names=False,
            ignore_errors=True,
        ),
    )
    discovery_result = get_check_table(discovery_request)
    return _serve_services(
        host,
        discovery_result.check_table,
        list(SERVICE_DISCOVERY_PHASES.keys()),
    )