X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=action_list_graphs.c;h=29e3d8b887839b3c3424578280e38e68e89c691a;hb=586ff0da90125e8449db2ee1b5894c5883255daa;hp=16d5cc4405761178a838a0e6de3426a4b93d5c98;hpb=bdd9ce2f4b4fc04f66fe96da300cc10d8f4222ee;p=collection4.git diff --git a/action_list_graphs.c b/action_list_graphs.c index 16d5cc4..29e3d8b 100644 --- a/action_list_graphs.c +++ b/action_list_graphs.c @@ -3,82 +3,98 @@ #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 = (_Bool *) user_data; - if (!*first) - printf (",\n"); - *first = 0; + first = user_data; - printf (" {"); + ident = inst_get_selector (inst); + if (ident == NULL) + return (-1); - printf ("\"host\":\"%s\"", gl->host); - - printf (",\"plugin\":\"%s\"", gl->plugin); - if (gl->plugin_instance != NULL) - printf (",\"plugin_instance\":\"%s\"", gl->plugin_instance); - else - printf (",\"plugin_instance\":null"); + json = ident_to_json (ident); + if (json == NULL) + { + ident_destroy (ident); + return (ENOMEM); + } - printf (",\"type\":\"%s\"", gl->type); - if (gl->type_instance != NULL) - printf (",\"type_instance\":\"%s\"", gl->type_instance); + if (*first) + printf ("%s", json); else - printf (",\"type_instance\":null"); + printf (",\n%s", json); - printf ("}"); + *first = 0; + ident_destroy (ident); return (0); +} /* }}} int print_graph_inst_json */ + +static int print_graph_json (graph_config_t *cfg, /* {{{ */ + void *user_data) +{ + return (gl_graph_instance_get_all (cfg, print_graph_inst_json, user_data)); } /* }}} int print_graph_json */ -static int print_graph_inst_html (__attribute__((unused)) graph_config_t *cfg, /* {{{ */ - graph_instance_t *inst, - __attribute__((unused)) void *user_data) +static int list_graphs_json (void) /* {{{ */ { - char buffer[1024]; + _Bool first = 1; - memset (buffer, 0, sizeof (buffer)); - gl_instance_get_ident (inst, buffer, sizeof (buffer)); + printf ("Content-Type: application/json\n\n"); - printf ("
  • %s
  • \n", buffer); + printf ("[\n"); + gl_graph_get_all (print_graph_json, /* user_data = */ &first); + printf ("\n]"); return (0); -} /* }}} int print_graph_inst_html */ +} /* }}} int list_graphs_json */ -static int print_graph_html (graph_config_t *cfg, /* {{{ */ +static int print_graph_inst_html (graph_config_t *cfg, /* {{{ */ + graph_instance_t *inst, __attribute__((unused)) void *user_data) { - printf ("
  • %p\n
      \n", (void *) cfg); - gl_graph_instance_get_all (cfg, print_graph_inst_html, /* user_data = */ NULL); - printf ("
    \n"); + 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_html */ +} /* }}} int print_graph_inst_html */ -static int list_graphs_json (void) /* {{{ */ +static int print_graph_html (graph_config_t *cfg, /* {{{ */ + __attribute__((unused)) void *user_data) { - _Bool first = 1; + char buffer[1024]; - printf ("Content-Type: application/json\n\n"); + memset (buffer, 0, sizeof (buffer)); + graph_get_title (cfg, buffer, sizeof (buffer)); - printf ("[\n"); - gl_foreach (print_graph_json, /* user_data = */ &first); - printf ("\n]"); + printf ("
  • %s\n
      \n", buffer); + gl_graph_instance_get_all (cfg, print_graph_inst_html, /* user_data = */ NULL); + printf ("
  • \n"); return (0); -} /* }}} int list_graphs_json */ +} /* }}} int print_graph_html */ static int list_graphs_html (void) /* {{{ */ {