X-Git-Url: https://git.octo.it/?p=collection4.git;a=blobdiff_plain;f=src%2Faction_show_instance.c;h=0d5420aa132683dbe12eae51cfbc9c0acd658b5c;hp=034aeb05fabbe8bc40a7e39f0beb5e7f6f9ccc3b;hb=39d3a136ce18b3436df829c07571c7c19763975a;hpb=9215c4b703c9024eb34ffb3157ab80bbebd5be89 diff --git a/src/action_show_instance.c b/src/action_show_instance.c index 034aeb0..0d5420a 100644 --- a/src/action_show_instance.c +++ b/src/action_show_instance.c @@ -146,21 +146,126 @@ static int left_menu (void *user_data) /* {{{ */ { show_graph_data_t *data = user_data; char params[1024]; + graph_instance_t *inst; + graph_ident_t *ident; + const char *host; memset (params, 0, sizeof (params)); graph_get_params (data->cfg, params, sizeof (params)); html_escape_buffer (params, sizeof (params)); + inst = inst_get_selected (data->cfg); + ident = inst_get_selector (inst); + host = ident_get_host (ident); + if (IS_ANY (host)) + host = NULL; + printf ("\n\n", + "
  • All graphs
  • \n", script_name (), params, script_name ()); + if (host != NULL) + { + char host_html[1024]; + char host_uri[1024]; + + html_escape_copy (host_html, host, sizeof (host_html)); + uri_escape_copy (host_uri, host, sizeof (host_uri)); + + printf ("
  • Host "%s"
  • \n", + script_name (), host_uri, host_html); + } + printf ("\n"); + + host = NULL; + ident_destroy (ident); return (0); } /* }}} int left_menu */ +static int show_instance_json (graph_config_t *cfg, /* {{{ */ + graph_instance_t *inst, + long begin, long end, int index) +{ + yajl_gen_config handler_config; + yajl_gen handler; + const unsigned char *json_buffer; + unsigned int json_buffer_length; + + graph_ident_t *graph_selector; + graph_ident_t *inst_selector; + + graph_selector = graph_get_selector (cfg); + if (graph_selector == NULL) + return (ENOMEM); + + inst_selector = inst_get_selector (inst); + if (inst_selector == NULL) + { + ident_destroy (inst_selector); + return (ENOMEM); + } + + memset (&handler_config, 0, sizeof (handler_config)); + handler_config.beautify = 1; + handler_config.indentString = " "; + + handler = yajl_gen_alloc2 (/* callback = */ NULL, + &handler_config, + /* alloc functions = */ NULL, + /* context = */ NULL); + if (handler == NULL) + { + ident_destroy (inst_selector); + ident_destroy (graph_selector); + return (-1); + } + + yajl_gen_map_open (handler); + + yajl_gen_string (handler, + (unsigned char *) "graph_selector", + (unsigned int) strlen ("graph_selector")); + ident_to_json (graph_selector, handler); + ident_destroy (graph_selector); + + yajl_gen_string (handler, + (unsigned char *) "instance_selector", + (unsigned int) strlen ("instance_selector")); + ident_to_json (inst_selector, handler); + ident_destroy (inst_selector); + + yajl_gen_string (handler, + (unsigned char *) "begin", + (unsigned int) strlen ("begin")); + yajl_gen_integer (handler, begin); + + yajl_gen_string (handler, + (unsigned char *) "end", + (unsigned int) strlen ("end")); + yajl_gen_integer (handler, end); + + yajl_gen_map_close (handler); + + json_buffer = NULL; + json_buffer_length = 0; + yajl_gen_get_buf (handler, &json_buffer, &json_buffer_length); + + if (json_buffer == NULL) + { + yajl_gen_free (handler); + return (EINVAL); + } + + printf ("
    \n", index); + printf ("\n", + index, (const char *) json_buffer); + + yajl_gen_free (handler); + return (0); +} /* }}} int show_instance_json */ + static int show_instance_cb (graph_config_t *cfg, /* {{{ */ graph_instance_t *inst, void *user_data) @@ -212,6 +317,12 @@ static int show_instance_cb (graph_config_t *cfg, /* {{{ */ ""%s / %s"\n", script_name (), params, title, descr); + show_instance_json (cfg, inst, begin, end, data->graph_count); + + printf ("
    " + "Get graph data as JSON
    \n", + script_name (), params, time_params); + data->graph_count++; return (0); @@ -220,6 +331,7 @@ static int show_instance_cb (graph_config_t *cfg, /* {{{ */ static int show_instance (void *user_data) /* {{{ */ { show_graph_data_t *data = user_data; + char params[1024]; int status; status = inst_get_all_selected (data->cfg, @@ -228,6 +340,14 @@ static int show_instance (void *user_data) /* {{{ */ fprintf (stderr, "show_instance: inst_get_all_selected failed " "with status %i\n", status); + memset (params, 0, sizeof (params)); + graph_get_params (data->cfg, params, sizeof (params)); + html_escape_buffer (params, sizeof (params)); + + printf ("
    " + "Get graph definition as JSON
    \n", + script_name (), params); + return (0); } /* }}} int show_instance */