]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Add new options to list events command
authorEric Bollengier <eric@baculasystems.com>
Thu, 1 Apr 2021 11:49:54 +0000 (13:49 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:03:00 +0000 (09:03 +0100)
bacula/src/cats/sql_list.c
bacula/src/dird/ua_cmds.c
bacula/src/dird/ua_output.c

index 24ef902c2830f810642e4a9bc9892bc97389a92f..ef7dc87d7ba3d8be88e0f2fcfd461892d3ebd861 100644 (file)
@@ -574,6 +574,14 @@ void BDB::bdb_list_events_records(JCR *jcr, EVENTS_DBR *rec,
       pm_strcat(where, tmp2.c_str());
       p_and=true;
    }
+   if (rec->EventsCode[0]) {
+      int len = strlen(rec->EventsCode);
+      tmp.check_size(len*2+1);
+      db_escape_string(jcr, this, tmp.c_str(), rec->EventsCode, len);
+      Mmsg(tmp2, "%s Events.EventsCode = '%s' ", p_and?"AND": "WHERE", tmp.c_str());
+      pm_strcat(where, tmp2.c_str());
+      p_and=true;
+   }
    if (rec->start[0]) {
       int len = strlen(rec->start);
       tmp.check_size(len*2+1);
index 229d03bc17b7b670a93617d77e5cb0c490509f6b..385d51d1b1ec54adeb3db77dcf32456abbab9bef 100644 (file)
@@ -135,7 +135,8 @@ static struct cmdstruct commands[] = {                                      /* C
        "\tjobtotals | pools | volume | media <pool=pool-name> | files [type=<deleted|all>] jobid=<nn> | copies jobid=<nn> |\n"
        "\tjoblog jobid=<nn> | pluginrestoreconf jobid=<nn> restoreobjectid=<nn> | snapshot | \n"
        "\tfilemedia jobid=<nn> fileindex=<mm> | clients\n"
-       "\tevents [type=<str> | limit=<int> | order=<asc|desc> | days=<int> | start=<time-specification> | end=<time-specification> ]\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> | limit=<int> | order=<asc|desc> ]\n"
       ), false},
 
index a0912914c77e9712add08a9b2216d21f13b342e1..13e31833f3ff010dadb466784dbedb47ec06cbe8 100644 (file)
@@ -840,6 +840,15 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist)
 
             } else if (strcasecmp(ua->argk[j], NT_("end")) == 0 && ua->argv[j]) {
                bstrncpy(event.end, ua->argv[j], sizeof(event.end)); /* TODO: check format */
+
+            } else if (strcasecmp(ua->argk[j], NT_("source")) == 0 && ua->argv[j]) {
+               bstrncpy(event.EventsSource, ua->argv[j], sizeof(event.EventsSource)); /* TODO: check format */
+
+            } else if (strcasecmp(ua->argk[j], NT_("daemon")) == 0 && ua->argv[j]) {
+               bstrncpy(event.EventsDaemon, ua->argv[j], sizeof(event.EventsDaemon)); /* TODO: check format */
+
+            } else if (strcasecmp(ua->argk[j], NT_("code")) == 0 && ua->argv[j]) {
+               bstrncpy(event.EventsCode, ua->argv[j], sizeof(event.EventsCode)); /* TODO: check format */
             }
          }
          db_list_events_records(ua->jcr,ua->db, &event, prtit, ua, llist);
@@ -863,6 +872,9 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist)
                  || strcasecmp(ua->argk[i], NT_("objectid")) == 0
                  || strcasecmp(ua->argk[i], NT_("clientname")) == 0
                  || strcasecmp(ua->argk[i], NT_("jobid")) == 0
+                 || strcasecmp(ua->argk[i], NT_("source")) == 0
+                 || strcasecmp(ua->argk[i], NT_("daemon")) == 0
+                 || strcasecmp(ua->argk[i], NT_("code")) == 0
          ) {
          /* Ignore it */
       } else if (strcasecmp(ua->argk[i], NT_("snapshot")) == 0 ||