X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=action_list_graphs.c;h=d7cea47f41f8635475c6e00bdf991e799a3fc422;hb=57811ec03166433462141458b43b1347199e0519;hp=9fc8f45a5079207721a1084fb569c1b6073c7b29;hpb=7549e5e9405595cc9069faa86478de3a65a61ce2;p=collection4.git diff --git a/action_list_graphs.c b/action_list_graphs.c index 9fc8f45..d7cea47 100644 --- a/action_list_graphs.c +++ b/action_list_graphs.c @@ -3,61 +3,51 @@ #include #include -#include -#include - +#include "action_list_graphs.h" +#include "graph.h" #include "graph_list.h" #include "utils_params.h" -static int print_graph_json (const graph_list_t *gl, void *user_data) /* {{{ */ +#include +#include + +static int print_graph_inst_json (__attribute__((unused)) graph_config_t *cfg, /* {{{ */ + graph_instance_t *inst, + void *user_data) { _Bool *first; + graph_ident_t *ident; + char *json; - if ((gl == NULL) || (user_data == NULL)) - return (EINVAL); + first = user_data; - first = (_Bool *) user_data; - if (!*first) - printf (",\n"); - *first = 0; + ident = inst_get_selector (inst); + if (ident == NULL) + return (-1); - printf (" {"); + json = ident_to_json (ident); + if (json == NULL) + { + ident_destroy (ident); + return (ENOMEM); + } - printf ("\"host\":\"%s\"", gl->host); - - printf (",\"plugin\":\"%s\"", gl->plugin); - if (gl->plugin_instance != NULL) - printf (",\"plugin_instance\":\"%s\"", gl->plugin_instance); + if (*first) + printf ("%s", json); else - printf (",\"plugin_instance\":null"); + printf (",\n%s", json); - printf (",\"type\":\"%s\"", gl->type); - if (gl->type_instance != NULL) - printf (",\"type_instance\":\"%s\"", gl->type_instance); - else - printf (",\"type_instance\":null"); - - printf ("}"); + *first = 0; + ident_destroy (ident); return (0); -} /* }}} int print_graph_json */ +} /* }}} int print_graph_inst_json */ -static int print_graph_html (const graph_list_t *gl, - void __attribute__((unused)) *user_data) +static int print_graph_json (graph_config_t *cfg, /* {{{ */ + void *user_data) { - if (gl == NULL) - return (EINVAL); - - printf ("
  • %s/%s", gl->host, gl->plugin); - if (gl->plugin_instance != NULL) - printf ("-%s", gl->plugin_instance); - printf ("/%s", gl->type); - if (gl->type_instance != NULL) - printf ("-%s", gl->type_instance); - printf ("
  • \n"); - - return (0); -} + return (gl_graph_instance_get_all (cfg, print_graph_inst_json, user_data)); +} /* }}} int print_graph_json */ static int list_graphs_json (void) /* {{{ */ { @@ -66,18 +56,51 @@ static int list_graphs_json (void) /* {{{ */ printf ("Content-Type: application/json\n\n"); printf ("[\n"); - gl_foreach (print_graph_json, /* user_data = */ &first); + gl_graph_get_all (print_graph_json, /* user_data = */ &first); printf ("\n]"); return (0); } /* }}} int list_graphs_json */ +static int print_graph_inst_html (graph_config_t *cfg, /* {{{ */ + graph_instance_t *inst, + __attribute__((unused)) void *user_data) +{ + char params[1024]; + char desc[1024]; + + memset (params, 0, sizeof (params)); + inst_get_params (cfg, inst, params, sizeof (params)); + + memset (desc, 0, sizeof (desc)); + inst_describe (cfg, inst, desc, sizeof (desc)); + + printf ("
  • %s
  • \n", params, desc); + + return (0); +} /* }}} int print_graph_inst_html */ + +static int print_graph_html (graph_config_t *cfg, /* {{{ */ + __attribute__((unused)) void *user_data) +{ + char buffer[1024]; + + memset (buffer, 0, sizeof (buffer)); + graph_get_title (cfg, buffer, sizeof (buffer)); + + printf ("
  • %s\n
      \n", buffer); + gl_graph_instance_get_all (cfg, print_graph_inst_html, /* user_data = */ NULL); + printf ("
    \n"); + + return (0); +} /* }}} int print_graph_html */ + static int list_graphs_html (void) /* {{{ */ { printf ("Content-Type: text/html\n\n"); printf ("
      \n"); - gl_foreach (print_graph_html, /* user_data = */ NULL); + gl_graph_get_all (print_graph_html, /* user_data = */ NULL); printf ("
    \n"); return (0);