From d5e3cd307a077f775797b2c6abe6ea6ebc67bfe5 Mon Sep 17 00:00:00 2001 From: Eric Bollengier Date: Thu, 1 Apr 2021 13:49:54 +0200 Subject: [PATCH] Add new options to list events command --- bacula/src/cats/sql_list.c | 8 ++++++++ bacula/src/dird/ua_cmds.c | 3 ++- bacula/src/dird/ua_output.c | 12 ++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/bacula/src/cats/sql_list.c b/bacula/src/cats/sql_list.c index 24ef902c2..ef7dc87d7 100644 --- a/bacula/src/cats/sql_list.c +++ b/bacula/src/cats/sql_list.c @@ -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); diff --git a/bacula/src/dird/ua_cmds.c b/bacula/src/dird/ua_cmds.c index 229d03bc1..385d51d1b 100644 --- a/bacula/src/dird/ua_cmds.c +++ b/bacula/src/dird/ua_cmds.c @@ -135,7 +135,8 @@ static struct cmdstruct commands[] = { /* C "\tjobtotals | pools | volume | media | files [type=] jobid= | copies jobid= |\n" "\tjoblog jobid= | pluginrestoreconf jobid= restoreobjectid= | snapshot | \n" "\tfilemedia jobid= fileindex= | clients\n" - "\tevents [type= | limit= | order= | days= | start= | end= ]\n" + "\tevents [type= | limit= | order= | days= | start= | end= |\n" + "\t\t source= | code= | type= ]\n" "\tobjects [jobid= client= type= | category= | limit= | order= ]\n" ), false}, diff --git a/bacula/src/dird/ua_output.c b/bacula/src/dird/ua_output.c index a0912914c..13e31833f 100644 --- a/bacula/src/dird/ua_output.c +++ b/bacula/src/dird/ua_output.c @@ -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 || -- 2.47.3