Exemplo n.º 1
0
def dashlet_http_variables(dashlet: Dashlet) -> HTTPVariables:
    vs_general_settings = dashlet_vs_general_settings(dashlet, dashlet.single_infos())
    dashlet_settings = vs_general_settings.value_to_json(dashlet._dashlet_spec)
    dashlet_params = dashlet.vs_parameters()
    assert isinstance(dashlet_params, ValueSpec)  # help mypy
    dashlet_properties = dashlet_params.value_to_json(dashlet._dashlet_spec)

    args: HTTPVariables = []
    args.append(("settings", json.dumps(dashlet_settings)))
    args.append(("context", json.dumps(dashlet._dashlet_spec["context"])))
    args.append(("properties", json.dumps(dashlet_properties)))

    return args
Exemplo n.º 2
0
    def generate_response_from_request(cls):
        settings = json.loads(html.request.get_str_input_mandatory("settings"))

        try:
            dashlet_type = cast(Dashlet, dashlet_registry[settings.get("type")])
        except KeyError:
            raise MKUserError("type", _('The requested dashlet type does not exist.'))

        settings = dashlet_vs_general_settings(
            dashlet_type, dashlet_type.single_infos()).value_from_json(settings)

        properties = cls.vs_parameters().value_from_json(
            json.loads(html.request.get_str_input_mandatory("properties")))
        context = json.loads(html.request.get_str_input_mandatory("context", "{}"))
        response_data = cls.generate_response_data(properties, context, settings)
        return create_figures_response(response_data)
Exemplo n.º 3
0
def dashlet_http_variables(dashlet: Dashlet) -> HTTPVariables:
    vs_general_settings = dashlet_vs_general_settings(dashlet,
                                                      dashlet.single_infos())
    dashlet_settings = vs_general_settings.value_to_json(dashlet._dashlet_spec)
    dashlet_params = dashlet.vs_parameters()
    assert isinstance(dashlet_params, ValueSpec)  # help mypy
    dashlet_properties = dashlet_params.value_to_json(dashlet._dashlet_spec)

    context = visuals.get_merged_context(
        visuals.get_context_from_uri_vars(["host", "service"],
                                          dashlet.single_infos()),
        dashlet._dashlet_spec["context"])

    args: HTTPVariables = []
    args.append(("settings", json.dumps(dashlet_settings)))
    args.append(("context", json.dumps(context)))
    args.append(("properties", json.dumps(dashlet_properties)))

    return args