]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Add offset= parameter in the 'list events' command
authorEric Bollengier <eric@baculasystems.com>
Mon, 26 Apr 2021 10:04:49 +0000 (12:04 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:03:01 +0000 (09:03 +0100)
bacula/src/cats/sql_list.c
bacula/src/dird/ua_output.c
bacula/src/lib/events.h

index 878c516d0734abec727f46d5518a2f4f60873531..4f881a503276bec5cc758d2ae075955207d6d631 100644 (file)
@@ -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);
index 2a918d954b6f56587d421afc0b72f550d281e767..3db0cabb8bb866617febe202e79ed53a1372fc23 100644 (file)
@@ -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 ||
index 8b9a25408f3c04b70b2436dc7e899fb6ccc16c85..aa47fe32aee5c6df9b12588de8e69d790f171c1b 100644 (file)
@@ -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];
 };