]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
baculum: Add volstatus filter to volumes endpoint
authorMarcin Haba <marcin.haba@bacula.pl>
Mon, 24 Apr 2023 13:20:08 +0000 (15:20 +0200)
committerMarcin Haba <marcin.haba@bacula.pl>
Mon, 1 May 2023 11:18:25 +0000 (13:18 +0200)
gui/baculum/protected/API/Pages/API/Volumes.php
gui/baculum/protected/API/openapi_baculum.json

index efe08b0b767c60e21a271770dbad092056ab4bcd..090ec6bdbf38a97a6aab2ae19a7fccceef517244 100644 (file)
@@ -40,6 +40,7 @@ class Volumes extends BaculumAPIServer {
                if ($this->Request->contains('enabled') && $misc->isValidBoolean($this->Request['enabled'])) {
                        $enabled = $misc->isValidBooleanTrue($this->Request['enabled']) ? 1 : 0;
                }
+               $volstatus = $this->Request->contains('volstatus') && $misc->isValidState($this->Request['volstatus']) ? $this->Request['volstatus'] : null;
                $voltype = $this->Request->contains('voltype') && $misc->isValidVolType($this->Request['voltype']) ? $this->Request['voltype'] : null;
                $pool = $this->Request->contains('pool') && $misc->isValidName($this->Request['pool']) ? $this->Request['pool'] : null;
                $storage = $this->Request->contains('storage') && $misc->isValidName($this->Request['storage']) ? $this->Request['storage'] : null;
@@ -58,6 +59,12 @@ class Volumes extends BaculumAPIServer {
                        ];
                }
 
+               if (is_string($volstatus)) {
+                       $params['Media.VolStatus'][] = [
+                               'vals' => $volstatus
+                       ];
+               }
+
                if (is_string($voltype)) {
                        $props['voltype'] = $voltype;
                }
index 73a4668aacaf664e5fa6ddbdbdbb8217a2f3e3e6..6a888301001ef2d5039ca795753616cab78e8910 100644 (file)
                                                "schema": {
                                                        "type": "boolean"
                                                }
+                                       },
+                                       {
+                                               "name": "volstatus",
+                                               "in": "query",
+                                               "description": "Volume status.",
+                                               "required": false,
+                                               "schema": {
+                                                       "type": "string",
+                                                       "enum": ["Append", "Archive", "Disabled", "Full", "Used", "Cleaning", "Purged", "Recycle", "Read-Only", "Error"]
+                                               }
                                        }
                                ]
                        }