From: Marcin Haba Date: Thu, 15 Dec 2022 09:49:22 +0000 (+0100) Subject: baculum: Add dedupengine output type to status storage X-Git-Tag: Release-13.0.2~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=33971c7f9e7e38d58723409ce0fbdfec8b1d8197;p=thirdparty%2Fbacula.git baculum: Add dedupengine output type to status storage --- diff --git a/gui/baculum/protected/API/Modules/StatusStorage.php b/gui/baculum/protected/API/Modules/StatusStorage.php index d8690f88d..724478a55 100644 --- a/gui/baculum/protected/API/Modules/StatusStorage.php +++ b/gui/baculum/protected/API/Modules/StatusStorage.php @@ -38,6 +38,7 @@ class StatusStorage extends ComponentStatusModule { const OUTPUT_TYPE_RUNNING = 'running'; const OUTPUT_TYPE_TERMINATED = 'terminated'; const OUTPUT_TYPE_DEVICES = 'devices'; + const OUTPUT_TYPE_DEDUPENGINE = 'dedupengine'; /** * Get parsed storage status. @@ -78,18 +79,23 @@ class StatusStorage extends ComponentStatusModule { $autochangers = []; $ach_dev = []; $empty_lines = 0; - for($i = 0; $i < count($output); $i++) { + for ($i = 0; $i < count($output); $i++) { + if (preg_match('/[\[\]]$/', $output[$i]) === 1) { + $output[$i] = ''; + } if (empty($output[$i])) { $empty_lines++; - if (count($part) > 10) { - $result[] = $part; - $part = []; - } if (count($ach_dev) == 2) { $autochangers[$autochanger]['devices'][] = $ach_dev; $ach_dev = []; + continue; + } + if (count($part) > 7) { + $result[] = $part; + $part = []; + continue; } - if ($empty_lines == 4 && $autochanger) { + if ($empty_lines > 3 && $autochanger) { $autochanger = null; } } else { @@ -144,7 +150,8 @@ class StatusStorage extends ComponentStatusModule { self::OUTPUT_TYPE_HEADER, self::OUTPUT_TYPE_RUNNING, self::OUTPUT_TYPE_TERMINATED, - self::OUTPUT_TYPE_DEVICES + self::OUTPUT_TYPE_DEVICES, + self::OUTPUT_TYPE_DEDUPENGINE ) ); } diff --git a/gui/baculum/protected/API/Pages/API/StorageStatus.php b/gui/baculum/protected/API/Pages/API/StorageStatus.php index a2f97423f..900f9de9e 100644 --- a/gui/baculum/protected/API/Pages/API/StorageStatus.php +++ b/gui/baculum/protected/API/Pages/API/StorageStatus.php @@ -58,7 +58,9 @@ class StorageStatus extends ConsoleOutputPage { $out = (object)['output' => [], 'error' => 0]; if ($out_format === parent::OUTPUT_FORMAT_RAW) { - $out = $this->getRawOutput(['storage' => $storage->name]); + $out = $this->getRawOutput([ + 'storage' => $storage->name + ]); } elseif ($out_format === parent::OUTPUT_FORMAT_JSON) { $out = $this->getJSONOutput([ 'storage' => $storage->name, diff --git a/gui/baculum/protected/API/openapi_baculum.json b/gui/baculum/protected/API/openapi_baculum.json index 3b8df22e7..e4b540142 100644 --- a/gui/baculum/protected/API/openapi_baculum.json +++ b/gui/baculum/protected/API/openapi_baculum.json @@ -2527,17 +2527,18 @@ { "$ref": "#/components/parameters/StorageId" }, - { - "$ref": "#/components/parameters/Output" - }, { "name": "type", "in": "query", + "required": false, "description": "Output type using together with output=json parameter.", "schema": { "type": "string", - "enum": ["header", "running", "devices", "terminated"] + "enum": ["header", "running", "devices", "terminated", "dedupengine"] } + }, + { + "$ref": "#/components/parameters/Output" } ] }