Add max-size to snapshot list output
[lttng-tools.git] / src / bin / lttng / commands / snapshot.c
index dd1137baa157c0c051256f4a71934a1de1ba3301..94deb0cfa2eb0f06acd61cd68daf5efc9ac51874 100644 (file)
@@ -50,6 +50,7 @@ enum {
        OPT_HELP = 1,
        OPT_LIST_OPTIONS,
        OPT_MAX_SIZE,
+       OPT_LIST_COMMANDS,
 };
 
 static struct poptOption snapshot_opts[] = {
@@ -61,6 +62,7 @@ static struct poptOption snapshot_opts[] = {
        {"name",         'n', POPT_ARG_STRING, &opt_output_name, 0, 0, 0},
        {"max-size",     'm', POPT_ARG_STRING, 0, OPT_MAX_SIZE, 0, 0},
        {"list-options",   0, POPT_ARG_NONE, NULL, OPT_LIST_OPTIONS, NULL, NULL},
+       {"list-commands",  0, POPT_ARG_NONE, NULL, OPT_LIST_COMMANDS},
        {0, 0, 0, 0, 0, 0, 0}
 };
 
@@ -193,10 +195,11 @@ static int list_output(void)
        MSG("Snapshot output list for session %s", current_session_name);
 
        while ((s_iter = lttng_snapshot_output_list_get_next(list)) != NULL) {
-               MSG("%s[%" PRIu32 "] %s: %s", indent4,
+               MSG("%s[%" PRIu32 "] %s: %s (max-size: %" PRId64 ")", indent4,
                                lttng_snapshot_output_get_id(s_iter),
                                lttng_snapshot_output_get_name(s_iter),
-                               lttng_snapshot_output_get_ctrl_url(s_iter));
+                               lttng_snapshot_output_get_ctrl_url(s_iter),
+                               lttng_snapshot_output_get_maxsize(s_iter));
                output_seen = 1;
        }
 
@@ -262,6 +265,8 @@ static int add_output(const char *url)
 {
        int ret;
        struct lttng_snapshot_output *output = NULL;
+       char name[NAME_MAX];
+       const char *n_ptr;
 
        if (!url && (!opt_data_url || !opt_ctrl_url)) {
                ret = CMD_ERROR;
@@ -280,11 +285,21 @@ static int add_output(const char *url)
                goto error;
        }
 
+       n_ptr = lttng_snapshot_output_get_name(output);
+       if (*n_ptr == '\0') {
+               int pret;
+               pret = snprintf(name, sizeof(name), DEFAULT_SNAPSHOT_NAME "-%" PRIu32,
+                               lttng_snapshot_output_get_id(output));
+               if (pret < 0) {
+                       PERROR("snprintf add output name");
+               }
+               n_ptr = name;
+       }
+
        MSG("Snapshot output successfully added for session %s",
                        current_session_name);
        MSG("  [%" PRIu32 "] %s: %s (max-size: %" PRId64 ")",
-                       lttng_snapshot_output_get_id(output),
-                       lttng_snapshot_output_get_name(output),
+                       lttng_snapshot_output_get_id(output), n_ptr,
                        lttng_snapshot_output_get_ctrl_url(output),
                        lttng_snapshot_output_get_maxsize(output));
 error:
@@ -440,6 +455,9 @@ int cmd_snapshot(int argc, const char **argv)
                case OPT_LIST_OPTIONS:
                        list_cmd_options(stdout, snapshot_opts);
                        goto end;
+               case OPT_LIST_COMMANDS:
+                       list_commands(actions, stdout);
+                       goto end;
                case OPT_MAX_SIZE:
                {
                        uint64_t val;
@@ -475,10 +493,17 @@ int cmd_snapshot(int argc, const char **argv)
 
        ret = handle_command(poptGetArgs(pc));
        if (ret < 0) {
-               if (ret == -LTTNG_ERR_EPERM) {
+               switch (-ret) {
+               case LTTNG_ERR_EPERM:
                        ERR("The session needs to be set in no output mode (--no-output)");
+                       break;
+               case LTTNG_ERR_SNAPSHOT_NODATA:
+                       WARN("%s", lttng_strerror(ret));
+                       break;
+               default:
+                       ERR("%s", lttng_strerror(ret));
+                       break;
                }
-               ERR("%s", lttng_strerror(ret));
                goto end;
        }
 
This page took 0.025265 seconds and 4 git commands to generate.