From: Marcin Haba Date: Mon, 5 Dec 2022 15:24:01 +0000 (+0100) Subject: baculum: Add age parameter to jobs and objects endpoints X-Git-Tag: Release-13.0.2~41 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=efa850584343c93df2bd7ff64b5cc0b0fb102f11;p=thirdparty%2Fbacula.git baculum: Add age parameter to jobs and objects endpoints --- diff --git a/gui/baculum/protected/API/Pages/API/Jobs.php b/gui/baculum/protected/API/Pages/API/Jobs.php index 4c101d1ed..cf1d95832 100644 --- a/gui/baculum/protected/API/Pages/API/Jobs.php +++ b/gui/baculum/protected/API/Pages/API/Jobs.php @@ -49,6 +49,7 @@ class Jobs extends BaculumAPIServer { $endtime_to = $this->Request->contains('endtime_to') && $misc->isValidInteger($this->Request['endtime_to']) ? (int)$this->Request['endtime_to'] : null; $realendtime_from = $this->Request->contains('realendtime_from') && $misc->isValidInteger($this->Request['realendtime_from']) ? (int)$this->Request['realendtime_from'] : null; $realendtime_to = $this->Request->contains('realendtime_to') && $misc->isValidInteger($this->Request['realendtime_to']) ? (int)$this->Request['realendtime_to'] : null; + $age = $this->Request->contains('age') && $misc->isValidInteger($this->Request['age']) ? (int)$this->Request['age'] : null; $order_by = $this->Request->contains('order_by') && $misc->isValidColumn($this->Request['order_by']) ? $this->Request['order_by']: 'JobId'; $order_direction = $this->Request->contains('order_direction') && $misc->isValidOrderDirection($this->Request['order_direction']) ? $this->Request['order_direction']: 'DESC'; @@ -145,6 +146,12 @@ class Jobs extends BaculumAPIServer { 'vals' => date('Y-m-d H:i:s', $starttime_to) ]; } + } elseif (!empty($age)) { // Job age (now() - age) + $params['Job.StartTime'] = []; + $params['Job.StartTime'][] = [ + 'operator' => '>=', + 'vals' => date('Y-m-d H:i:s', (time() - $age)) + ]; } // End time range diff --git a/gui/baculum/protected/API/Pages/API/Objects.php b/gui/baculum/protected/API/Pages/API/Objects.php index 97e1b9fdb..0be7449c9 100644 --- a/gui/baculum/protected/API/Pages/API/Objects.php +++ b/gui/baculum/protected/API/Pages/API/Objects.php @@ -53,6 +53,7 @@ class Objects extends BaculumAPIServer { $endtime_to = $this->Request->contains('endtime_to') && $misc->isValidInteger($this->Request['endtime_to']) ? (int)$this->Request['endtime_to'] : null; $realendtime_from = $this->Request->contains('realendtime_from') && $misc->isValidInteger($this->Request['realendtime_from']) ? (int)$this->Request['realendtime_from'] : null; $realendtime_to = $this->Request->contains('realendtime_to') && $misc->isValidInteger($this->Request['realendtime_to']) ? (int)$this->Request['realendtime_to'] : null; + $age = $this->Request->contains('age') && $misc->isValidInteger($this->Request['age']) ? (int)$this->Request['age'] : null; $order_by = $this->Request->contains('order_by') && $misc->isValidColumn($this->Request['order_by']) ? $this->Request['order_by']: 'ObjectId'; $order_direction = $this->Request->contains('order_direction') && $misc->isValidOrderDirection($this->Request['order_direction']) ? $this->Request['order_direction']: 'DESC'; @@ -178,6 +179,12 @@ class Objects extends BaculumAPIServer { 'vals' => date('Y-m-d H:i:s', $starttime_to) ]; } + } elseif (!empty($age)) { // Job age (now() - age) + $params['Job.StartTime'] = []; + $params['Job.StartTime'][] = [ + 'operator' => '>=', + 'vals' => date('Y-m-d H:i:s', (time() - $age)) + ]; } // End time range diff --git a/gui/baculum/protected/API/openapi_baculum.json b/gui/baculum/protected/API/openapi_baculum.json index bbad2f0b1..5dc391b7f 100644 --- a/gui/baculum/protected/API/openapi_baculum.json +++ b/gui/baculum/protected/API/openapi_baculum.json @@ -959,6 +959,16 @@ "type": "integer" } }, + { + + "name": "age", + "in": "query", + "required": false, + "description": "Job age in seconds (used is start time). starttime_from and starttime_to take precedence over this parameter.", + "schema": { + "type": "integer" + } + }, { "name": "order_by", "in": "query", @@ -6602,6 +6612,16 @@ "schema": { "type": "integer" } + }, + { + + "name": "age", + "in": "query", + "required": false, + "description": "Job age in seconds (used is start time). starttime_from and starttime_to take precedence over this parameter.", + "schema": { + "type": "integer" + } } ] }