]> 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)
committerEric Bollengier <eric@baculasystems.com>
Tue, 31 Oct 2023 15:00:30 +0000 (16:00 +0100)
gui/baculum/protected/API/Modules/ObjectManager.php
gui/baculum/protected/API/Pages/API/Objects.php
gui/baculum/protected/API/openapi_baculum.json

index 80ba20740292cb653b997ef1b495283ea0f00c71..4acb74dd61a25aa9aa6735f54ee7aafcbaeda487 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 65de4994d36196a4d0ecad8f2c740b9ec9e33c5b..b50efc7a944ad63b84971588dcc78c65b3b3bbc6 100644 (file)
                                                "schema": {
                                                        "type": "string"
                                                }
+                                       },
+                                       {
+                                               "name": "fileset",
+                                               "in": "query",
+                                               "required": false,
+                                               "description": "FileSet name",
+                                               "schema": {
+                                                       "type": "string"
+                                               }
                                        }
                                ]
                        }