From: Eric Bollengier Date: Thu, 15 Oct 2020 09:54:18 +0000 (+0200) Subject: Allow to list objects by category X-Git-Tag: Release-11.3.2~988 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a1af32a8c77c2424ea4a6f00cfe2143090c16a9;p=thirdparty%2Fbacula.git Allow to list objects by category --- diff --git a/bacula/src/cats/sql_list.c b/bacula/src/cats/sql_list.c index d5d3f0757..8354fbbdf 100644 --- a/bacula/src/cats/sql_list.c +++ b/bacula/src/cats/sql_list.c @@ -182,6 +182,12 @@ void BDB::bdb_list_plugin_objects(JCR *jcr, OBJECT_DBR *obj_r, DB_LIST_HANDLER * append_filter(where.addr(), tmp.c_str()); } + if (obj_r->ObjectCategory[0] != 0) { + bdb_escape_string(jcr, esc.c_str(), obj_r->ObjectCategory, strlen(obj_r->ObjectCategory)); + Mmsg(tmp, " Object.ObjectCategory='%s'", esc.c_str()); + append_filter(where.addr(), tmp.c_str()); + } + if (obj_r->ObjectId != 0) { Mmsg(tmp, " Object.ObjectId=%d", obj_r->ObjectId); append_filter(where.addr(), tmp.c_str()); diff --git a/bacula/src/dird/ua_cmds.c b/bacula/src/dird/ua_cmds.c index bb74722c8..f2f4959dd 100644 --- a/bacula/src/dird/ua_cmds.c +++ b/bacula/src/dird/ua_cmds.c @@ -135,6 +135,7 @@ static struct cmdstruct commands[] = { /* C "\tjoblog jobid= | pluginrestoreconf jobid= restoreobjectid= | snapshot | \n" "\tfilemedia jobid= fileindex= | clients\n" "\tevents [type= | limit= | order= | days= | start= | end= ]\n" + "\tobjects [jobid= client= type= | category= | limit= | order= ]\n" ), false}, { NT_("llist"), llist_cmd, _("Full or long list like list command"), @@ -142,7 +143,8 @@ static struct cmdstruct commands[] = { /* C "\tjobtotals | pools | volume | media | files jobid= | copies jobid= |\n" "\tjoblog jobid= | pluginrestoreconf jobid= restoreobjectid= | snapshot |\n" "\tfilemedia jobid= fileindex= | clients\n" - "\tobject [jobid= client= type= [order=] [limit=\n"), false}, + "\tevents [type= | limit= | order= | days= | start= | end= ]\n" + "\tobject [jobid= client= type= category= order= limit=\n"), false}, { NT_("messages"), messagescmd, _("Display pending messages"), NT_(""), false}, { NT_("memory"), memory_cmd, _("Print current memory usage"), NT_(""), true}, diff --git a/bacula/src/dird/ua_output.c b/bacula/src/dird/ua_output.c index 28e1a923b..0ae7ce06d 100644 --- a/bacula/src/dird/ua_output.c +++ b/bacula/src/dird/ua_output.c @@ -698,6 +698,9 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist) } else if (strcasecmp(ua->argk[j], NT_("type")) == 0) { bstrncpy(obj_r.ObjectType, ua->argv[j], sizeof(obj_r.ObjectType)); + } else if (strcasecmp(ua->argk[j], NT_("category")) == 0) { + bstrncpy(obj_r.ObjectCategory, ua->argv[j], sizeof(obj_r.ObjectCategory)); + } else if (strcasecmp(ua->argk[j], NT_("limit")) == 0 && ua->argv[j]) { obj_r.limit = atoi(ua->argv[j]);