]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
baculum: Add fileset parameter to objects endpoint
authorMarcin Haba <marcin.haba@bacula.pl>
Wed, 25 Oct 2023 07:19:19 +0000 (09:19 +0200)
committerMarcin Haba <marcin.haba@bacula.pl>
Wed, 25 Oct 2023 07:19:19 +0000 (09:19 +0200)
gui/baculum/protected/API/Modules/ObjectManager.php
gui/baculum/protected/API/Pages/API/Objects.php
gui/baculum/protected/API/openapi_baculum.json

index 1b32009817f4507f7b2ba16f47f5723dad59a6f5..ee2964ead4d46f09b1814a1004c4df433cee7ba2 100644 (file)
@@ -127,7 +127,8 @@ class ObjectManager extends APIModule
                $sql = 'SELECT ' . $obj_record . ' 
 FROM Object 
 JOIN Job USING (JobId) 
-LEFT JOIN Client USING (ClientId) '
+LEFT JOIN Client USING (ClientId) 
+LEFT JOIN FileSet USING (FileSetId) '
 . $where['where'] . $order . $limit . $offset;
                $statement = Database::runQuery($sql, $where['params']);
                $result = $statement->fetchAll(\PDO::FETCH_OBJ);
index 88bc7e7a1f9a1361e9abd7b91a9d8e58968c9a21..7123a184dd6ae7ec77de27ae088310784363b7a0 100644 (file)
@@ -47,6 +47,7 @@ class Objects extends BaculumAPIServer {
                $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'] : '';
+               $fileset = $this->Request->contains('fileset') && $misc->isValidName($this->Request['fileset']) ? $this->Request['fileset'] : '';
                $joberrors = null;
                if ($this->Request->contains('joberrors') && $misc->isValidBoolean($this->Request['joberrors'])) {
                        $joberrors = $misc->isValidBooleanTrue($this->Request['joberrors']) ? true : false;
@@ -185,6 +186,12 @@ class Objects extends BaculumAPIServer {
                                'vals' => $client
                        ];
                }
+               if (!empty($fileset)) {
+                       $params['FileSet.FileSet'] = [];
+                       $params['FileSet.FileSet'][] = [
+                               'vals' => $fileset
+                       ];
+               }
                if (!empty($jobstatus)) {
                        $params['Job.JobStatus'] = [];
                        $params['Job.JobStatus'][] = [
index 884bb4eaa9a2138d50d1f74732de3d99ed8511e2..d6e63b11930062f951ab364c32d7df415468c068 100644 (file)
                                                "schema": {
                                                        "type": "string"
                                                }
+                                       },
+                                       {
+                                               "name": "fileset",
+                                               "in": "query",
+                                               "required": false,
+                                               "description": "FileSet name",
+                                               "schema": {
+                                                       "type": "string"
+                                               }
                                        }
                                ]
                        }