From: Eric Bollengier Date: Mon, 26 Apr 2021 10:04:49 +0000 (+0200) Subject: Add offset= parameter in the 'list events' command X-Git-Tag: Release-11.3.2~562 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3eaf36589cfa680e3359833b66cae8ebe2d44b00;p=thirdparty%2Fbacula.git Add offset= parameter in the 'list events' command --- diff --git a/bacula/src/cats/sql_list.c b/bacula/src/cats/sql_list.c index 878c516d0..4f881a503 100644 --- a/bacula/src/cats/sql_list.c +++ b/bacula/src/cats/sql_list.c @@ -550,7 +550,7 @@ void BDB::bdb_list_events_records(JCR *jcr, EVENTS_DBR *rec, bdb_lock(); if (rec->limit > 0) { - Mmsg(str_limit, " LIMIT %d", rec->limit); + Mmsg(str_limit, " LIMIT %d OFFSET %d", rec->limit, rec->offset); } if (rec->EventsType[0]) { int len = strlen(rec->EventsType); diff --git a/bacula/src/dird/ua_output.c b/bacula/src/dird/ua_output.c index 2a918d954..3db0cabb8 100644 --- a/bacula/src/dird/ua_output.c +++ b/bacula/src/dird/ua_output.c @@ -857,6 +857,9 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist) } else if (strcasecmp(ua->argk[j], NT_("limit")) == 0 && ua->argv[j]) { event.limit = atoi(ua->argv[j]); + } else if (strcasecmp(ua->argk[j], NT_("offset")) == 0 && ua->argv[j]) { + event.offset = atoi(ua->argv[j]); + } else if (strcasecmp(ua->argk[j], NT_("order")) == 0 && ua->argv[j]) { /* Other order are tested before */ event.order = bstrcasecmp(ua->argv[j], "DESC") == 0; @@ -912,6 +915,7 @@ static int do_list_cmd(UAContext *ua, const char *cmd, e_list_type llist) || strcasecmp(ua->argk[i], NT_("source")) == 0 || strcasecmp(ua->argk[i], NT_("daemon")) == 0 || strcasecmp(ua->argk[i], NT_("code")) == 0 + || strcasecmp(ua->argk[i], NT_("offset")) == 0 ) { /* Ignore it */ } else if (strcasecmp(ua->argk[i], NT_("snapshot")) == 0 || diff --git a/bacula/src/lib/events.h b/bacula/src/lib/events.h index 8b9a25408..aa47fe32a 100644 --- a/bacula/src/lib/events.h +++ b/bacula/src/lib/events.h @@ -24,7 +24,7 @@ /* Events record -- same format as database */ class EVENTS_DBR: public SMARTALLOC { public: - EVENTS_DBR(): EventsId(0), EventsTime(0), EventsRef(0), EventsText(NULL), limit(100), order(0) + EVENTS_DBR(): EventsId(0), EventsTime(0), EventsRef(0), EventsText(NULL), limit(100), order(0), offset(0) { *EventsDaemon = *EventsType = *EventsSource = *EventsCode = *start = *end = 0; }; @@ -47,6 +47,7 @@ public: /* Extra stuff not in DB */ int limit; /* limit the records to display */ int order; /* ASC/DESC 0/1 */ + int offset; /* offset with limit */ char start[MAX_TIME_LENGTH]; /* Search between start and end */ char end[MAX_TIME_LENGTH]; };