From: Marcin Haba Date: Sun, 4 Jul 2021 19:03:15 +0000 (+0200) Subject: baculum: Improve checking director in status director API endpoint X-Git-Tag: Release-11.3.2~206 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b01f566ffb46d15fca9607ac6849e846773f5500;p=thirdparty%2Fbacula.git baculum: Improve checking director in status director API endpoint --- diff --git a/gui/baculum/protected/API/Class/StatusDirector.php b/gui/baculum/protected/API/Class/StatusDirector.php index 30394ba6c..b2bcd1343 100644 --- a/gui/baculum/protected/API/Class/StatusDirector.php +++ b/gui/baculum/protected/API/Class/StatusDirector.php @@ -80,7 +80,12 @@ class StatusDirector extends ComponentStatusModule { * @return array array with parsed director status values */ public function parseStatus(array $output, $type) { - $result = array(); + $result = [ + self::OUTPUT_TYPE_HEADER => [], + self::OUTPUT_TYPE_SCHEDULED => [], + self::OUTPUT_TYPE_RUNNING => [], + self::OUTPUT_TYPE_TERMINATED => [] + ]; $type = null; $line = null; $types = array( diff --git a/gui/baculum/protected/API/Pages/API/DirectorStatus.php b/gui/baculum/protected/API/Pages/API/DirectorStatus.php index 8daa0d566..c2f755eb4 100644 --- a/gui/baculum/protected/API/Pages/API/DirectorStatus.php +++ b/gui/baculum/protected/API/Pages/API/DirectorStatus.php @@ -37,7 +37,13 @@ class DirectorStatus extends ConsoleOutputPage { $type = $this->Request->contains('type') && $status->isValidOutputType($this->Request['type']) ? $this->Request['type'] : null; $out_format = $this->Request->contains('output') && $this->isOutputFormatValid($this->Request['output']) ? $this->Request['output'] : parent::OUTPUT_FORMAT_RAW; - if (is_null($director)) { + $dirs = []; + $result = $this->getModule('bconsole')->getDirectors(); + if ($result->exitcode === 0) { + $dirs = $result->output; + } + + if (is_null($director) || !in_array($director, $dirs)) { // Invalid director $this->output = BconsoleError::MSG_ERROR_INVALID_DIRECTOR; $this->error = BconsoleError::ERROR_INVALID_DIRECTOR;