From: Marcin Haba Date: Wed, 31 May 2023 08:43:11 +0000 (+0200) Subject: baculum: Add job status filter to objects endpoint X-Git-Tag: Release-13.0.4~81 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e938a6e9bf6c9977b8ca10db866473696933a05d;p=thirdparty%2Fbacula.git baculum: Add job status filter to objects endpoint --- diff --git a/gui/baculum/protected/API/Pages/API/Objects.php b/gui/baculum/protected/API/Pages/API/Objects.php index 343ea56b4..be18c949a 100644 --- a/gui/baculum/protected/API/Pages/API/Objects.php +++ b/gui/baculum/protected/API/Pages/API/Objects.php @@ -45,6 +45,7 @@ class Objects extends BaculumAPIServer { $objectstatus = $this->Request->contains('objectstatus') && $misc->isValidState($this->Request['objectstatus']) ? $this->Request['objectstatus'] : null; $jobname = $this->Request->contains('jobname') && $misc->isValidName($this->Request['jobname']) ? $this->Request['jobname'] : null; $jobids = $this->Request->contains('jobids') && $misc->isValidIdsList($this->Request['jobids']) ? explode(',', $this->Request['jobids']) : []; + $jobstatus = $this->Request->contains('jobstatus') && $misc->isValidState($this->Request['jobstatus']) ? $this->Request['jobstatus'] : null; $client = $this->Request->contains('client') && $misc->isValidName($this->Request['client']) ? $this->Request['client'] : ''; $joberrors = null; if ($this->Request->contains('joberrors') && $misc->isValidBoolean($this->Request['joberrors'])) { @@ -177,6 +178,12 @@ class Objects extends BaculumAPIServer { 'vals' => $client ]; } + if (!empty($jobstatus)) { + $params['Job.JobStatus'] = []; + $params['Job.JobStatus'][] = [ + 'vals' => $jobstatus + ]; + } if (!is_null($joberrors)) { if ($joberrors === true) { $params['Job.JobErrors'] = []; diff --git a/gui/baculum/protected/API/openapi_baculum.json b/gui/baculum/protected/API/openapi_baculum.json index b9c3e28e8..eac64c718 100644 --- a/gui/baculum/protected/API/openapi_baculum.json +++ b/gui/baculum/protected/API/openapi_baculum.json @@ -8215,6 +8215,17 @@ "type": "boolean" } }, + { + + "name": "jobstatus", + "in": "query", + "required": false, + "description": "Job status. Note, some statuses can be not visible outside (used internally by Bacula)", + "schema": { + "enum": ["C", "R", "B", "T", "W", "E", "e", "f", "D", "A", "I", "F", "S", "m", "M", "s", "j", "c", "d", "t", "p", "i", "a", "l", "L"], + "type": "string" + } + }, { "name": "joberrors", "in": "query",