]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
baculum: Add priorjobname parameter to jobs endpoint
authorMarcin Haba <marcin.haba@bacula.pl>
Wed, 19 Apr 2023 09:46:30 +0000 (11:46 +0200)
committerMarcin Haba <marcin.haba@bacula.pl>
Thu, 20 Apr 2023 10:00:26 +0000 (12:00 +0200)
gui/baculum/protected/API/Pages/API/Jobs.php
gui/baculum/protected/API/openapi_baculum.json

index 9eaace6e4e3dc27a4e2c1de5313d793fd5c5fe70..ccb3be6ef969c8e3f0ae026e6dd9f405c88913e6 100644 (file)
@@ -60,6 +60,7 @@ class Jobs extends BaculumAPIServer {
                $order_direction = $this->Request->contains('order_direction') && $misc->isValidOrderDirection($this->Request['order_direction']) ? $this->Request['order_direction']: 'DESC';
                $mode = ($this->Request->contains('overview') && $misc->isValidBooleanTrue($this->Request['overview'])) ? JobManager::JOB_RESULT_MODE_OVERVIEW : JobManager::JOB_RESULT_MODE_NORMAL;
                $view = ($this->Request->contains('view') && $misc->isValidResultView($this->Request['view'])) ? $this->Request['view'] : JobManager::JOB_RESULT_VIEW_FULL;
+               $priorjobname = $this->Request->contains('priorjobname') && $misc->isValidName($this->Request['priorjobname']) ? $this->Request['priorjobname'] : '';
 
                if (!empty($jobids)) {
                        /**
@@ -243,6 +244,13 @@ class Jobs extends BaculumAPIServer {
                        }
                }
 
+               if ($view == JobManager::JOB_RESULT_VIEW_ADVANCED) {
+                       $params['PriorJob.Name'] = [];
+                       $params['PriorJob.Name'][] = [
+                               'vals' => $priorjobname
+                       ];
+               }
+
                $result = $this->getModule('bconsole')->bconsoleCommand(
                        $this->director,
                        ['.jobs'],
index 9b6b08bc8b880055bbc480c4609458b07afd52f5..2cdc92d0cd8e2f6fd1b9d56298e1d12c28a9041a 100644 (file)
                                                "schema": {
                                                        "type": "boolean"
                                                }
+                                       },
+                                       {
+                                               "name": "view",
+                                               "in": "query",
+                                               "required": false,
+                                               "description": "Set result view type: full (default) - display all job properties, basic - display only base properties, advanced - display all full view properties plus some special like 'priorjobname'.",
+                                               "schema": {
+                                                       "type": "string",
+                                                       "enum": ["basic", "full", "advanced"]
+                                               }
+                                       },
+                                       {
+                                               "name": "priorjobname",
+                                               "in": "query",
+                                               "required": false,
+                                               "description": "Prior job name. NOTE: It works only if 'view' parameter is set to 'advanced'.",
+                                               "schema": {
+                                                       "type": "string",
+                                                       "pattern": "[a-zA-Z0-9:.-_ ]+"
+                                               }
                                        }
                                ]
                        }