]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
baculum: Add job status filter to objects endpoint
authorMarcin Haba <marcin.haba@bacula.pl>
Wed, 31 May 2023 08:43:11 +0000 (10:43 +0200)
committerMarcin Haba <marcin.haba@bacula.pl>
Thu, 1 Jun 2023 11:20:55 +0000 (13:20 +0200)
gui/baculum/protected/API/Pages/API/Objects.php
gui/baculum/protected/API/openapi_baculum.json

index 343ea56b42569ee8ed1c4b5756be42695c019ab5..be18c949a3db298570e8d84404a3567cf9d44589 100644 (file)
@@ -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'] = [];
index b9c3e28e8c3a503d54bac42c5544120ef3e770da..eac64c7180a4fdacd0306a86e70b0b3a1f751e16 100644 (file)
                                                        "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",