diff --git a/sysutils/nut/Makefile b/sysutils/nut/Makefile index ed35203b97..559cd57818 100644 --- a/sysutils/nut/Makefile +++ b/sysutils/nut/Makefile @@ -1,6 +1,5 @@ PLUGIN_NAME= nut -PLUGIN_VERSION= 1.9 -PLUGIN_REVISION= 1 +PLUGIN_VERSION= 1.10 PLUGIN_COMMENT= Network UPS Tools PLUGIN_DEPENDS= nut PLUGIN_MAINTAINER= m.muenz@gmail.com diff --git a/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/Api/DiagnosticsController.php b/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/Api/DiagnosticsController.php index fe1faf74ac..aac5c15566 100644 --- a/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/Api/DiagnosticsController.php +++ b/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/Api/DiagnosticsController.php @@ -37,16 +37,30 @@ class DiagnosticsController extends ApiControllerBase public function upsstatusAction() { $mdl = new Nut(); - $host = '127.0.0.1'; - if (!empty((string)$mdl->netclient->address)) { + $targets = array(); + foreach ($mdl->upses->ups->iterateItems() as $ups) { + if ((string)$ups->enabled == '1') { + $targets[] = (string)$ups->name; + } + } + if ((string)$mdl->netclient->enable == '1' && !empty((string)$mdl->netclient->address)) { $host = (string)$mdl->netclient->address; + if (strpos($host, ':') !== false) { + $host = '[' . $host . ']'; + } + if (!empty((string)$mdl->netclient->port)) { + $host .= ':' . (string)$mdl->netclient->port; + } + $targets[] = (string)$mdl->netclient->name . '@' . $host; } - $upsname = 'UPSName'; - if (!empty((string)$mdl->general->name)) { - $upsname = (string)$mdl->general->name; + $items = array(); + if (!empty($targets)) { + $backend = new Backend(); + $items = json_decode((string)$backend->configdpRun('nut upsstatus', array(implode(',', $targets))), true); + if (!is_array($items)) { + $items = array(); + } } - $backend = new Backend(); - $response = $backend->configdpRun('nut upsstatus', array("{$upsname}@{$host}")); - return array("response" => $response); + return array("items" => $items); } } diff --git a/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/Api/SettingsController.php b/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/Api/SettingsController.php index b49e767c82..406fff7642 100644 --- a/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/Api/SettingsController.php +++ b/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/Api/SettingsController.php @@ -36,4 +36,34 @@ class SettingsController extends ApiMutableModelControllerBase { protected static $internalModelClass = '\OPNsense\Nut\Nut'; protected static $internalModelName = 'nut'; + + public function searchUpsAction() + { + return $this->searchBase('upses.ups', ['enabled', 'name', 'driver', 'args']); + } + + public function getUpsAction($uuid = null) + { + return $this->getBase('ups', 'upses.ups', $uuid); + } + + public function addUpsAction() + { + return $this->addBase('ups', 'upses.ups'); + } + + public function setUpsAction($uuid) + { + return $this->setBase('ups', 'upses.ups', $uuid); + } + + public function delUpsAction($uuid) + { + return $this->delBase('upses.ups', $uuid); + } + + public function toggleUpsAction($uuid) + { + return $this->toggleBase('upses.ups', $uuid); + } } diff --git a/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/IndexController.php b/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/IndexController.php index 8e5358bf08..45361a1c73 100644 --- a/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/IndexController.php +++ b/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/IndexController.php @@ -45,6 +45,8 @@ public function indexAction() { $backend = new Backend(); $this->view->settings = $this->getForm("settings"); + $this->view->formDialogUps = $this->getForm("dialogUps"); + $this->view->formGridUps = $this->getFormGrid("dialogUps"); $this->view->pick('OPNsense/Nut/index'); } } diff --git a/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/forms/dialogUps.xml b/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/forms/dialogUps.xml new file mode 100644 index 0000000000..ae38d6c447 --- /dev/null +++ b/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/forms/dialogUps.xml @@ -0,0 +1,42 @@ +
diff --git a/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/forms/settings.xml b/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/forms/settings.xml index 48b3fdf6ad..fe04ca8cee 100644 --- a/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/forms/settings.xml +++ b/sysutils/nut/src/opnsense/mvc/app/controllers/OPNsense/Nut/forms/settings.xml @@ -13,12 +13,6 @@