]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Fix #8787 Add category shortcuts for Database and Virtual Machine in the list object...
authorEric Bollengier <eric@baculasystems.com>
Fri, 4 Feb 2022 14:23:53 +0000 (15:23 +0100)
committerEric Bollengier <eric@baculasystems.com>
Thu, 14 Sep 2023 11:56:57 +0000 (13:56 +0200)
bacula/src/dird/ua_cmds.c
bacula/src/dird/ua_output.c

index 20c4a3ffb874cec2bf22740cce14b050bba61596..237427c5f4304e3cedda19957a45b6c508d537f0 100644 (file)
@@ -137,7 +137,7 @@ static struct cmdstruct commands[] = {                                      /* C
        "\tfilemedia jobid=<nn> fileindex=<mm> | clients | jobmedia [jobid=<nn> volume=<s>] |\n"
        "\tevents [type=<str> | limit=<int> | order=<asc|desc> | days=<int> | start=<time-specification> | end=<time-specification> |\n"
        "\t\t source=<str> | code=<str> | type=<str> ]\n"
-       "\tobjects [jobid=<jobid> client=<cli> type=<str> | category=<str> | status=<S> | limit=<int> | order=<asc|desc> ]\n"
+       "\tobjects [jobid=<jobid> client=<cli> type=<str> | category=<str|db|vm> | status=<S> | limit=<int> | order=<asc|desc> ]\n"
        "\tmetadata type=<email|attachment> tenant=<str> [owner=<str>]\n"
        "\t    [jobid=<jobids> client=<cc> order=<Asc|desc> limit=<nn> orderby=<time> offset=<nn>]\n"
        "\t    [from=<str> to=<str> cc=<str> tags=<str> subject=<str> bodypreview=<str> all=<str>\n"
index e9a238d9fd360beb1741e3e8fa75fe32250d1605..4c7dc0a9feff2d8783780e9281c9734151523cde 100644 (file)
@@ -392,6 +392,19 @@ static bool setup_start_date(const char *val, bool days, char *dest, uint32_t de
    return true;
 }
 
+/* shortcuts for the list object category=xx command */
+struct object_category_sc_t {
+   const char *name;
+   const char *value;
+};
+
+static
+struct object_category_sc_t object_category_sc[] = {
+   NT_("db"), NT_("Database"),
+   NT_("vm"), NT_("Virtual Machine"),
+   NULL, NULL
+};
+
 static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist)
 {
    POOLMEM *VolumeName;
@@ -761,7 +774,14 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist)
                bstrncpy(obj_r.ObjectType, ua->argv[j], sizeof(obj_r.ObjectType));
 
             } else if (strcasecmp(ua->argk[j], NT_("category")) == 0 && ua->argv[j]) {
-               bstrncpy(obj_r.ObjectCategory, ua->argv[j], sizeof(obj_r.ObjectCategory));
+               const char *val = ua->argv[j];
+               for (int i=0 ; object_category_sc[i].name ; i++) {
+                  if (strcasecmp(val, object_category_sc[i].name) == 0) {
+                     val = object_category_sc[i].value;
+                     break;
+                  }
+               }
+               bstrncpy(obj_r.ObjectCategory, val, sizeof(obj_r.ObjectCategory));
 
             } else if (strcasecmp(ua->argk[j], NT_("status")) == 0 && ua->argv[j]) {
                int32_t status = (int32_t)ua->argv[j][0];