From 9963a21236a21a961bc0161fe69dcd038cddc978 Mon Sep 17 00:00:00 2001 From: Alexander Klimov Date: Fri, 7 Mar 2014 17:27:18 +0100 Subject: [PATCH] Raise error if a configuration file is missing --- .../application/controllers/ConfigController.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/monitoring/application/controllers/ConfigController.php b/modules/monitoring/application/controllers/ConfigController.php index 71498e832..f70a637db 100644 --- a/modules/monitoring/application/controllers/ConfigController.php +++ b/modules/monitoring/application/controllers/ConfigController.php @@ -237,7 +237,12 @@ class Monitoring_ConfigController extends BaseConfigController { $form = new CreateInstanceForm(); $form->setRequest($this->getRequest()); if ($form->isSubmittedAndValid()) { - $instanceConfig = IcingaConfig::module('monitoring', 'instances')->toArray(); + $instanceConfig = IcingaConfig::module('monitoring', 'instances'); + if ($instanceConfig === null) { + $instanceConfig = array(); + } else { + $instanceConfig = $instanceConfig->toArray(); + } $instanceConfig[$form->getInstanceName()] = $form->getConfig()->toArray(); if ($this->writeConfiguration(new Zend_Config($instanceConfig), 'instances')) { $this->addSuccessMessage('Instance Creation Succeeded'); @@ -256,8 +261,14 @@ class Monitoring_ConfigController extends BaseConfigController { */ private function writeConfiguration($config, $file) { + $configFile = IcingaConfig::module('monitoring', $file); + if ($configFile === null) { + throw new Exception('Configuration file is missing!'); + } else { + $configFile = $configFile->getConfigFile(); + } $writer = new PreservingIniWriter(array( - 'filename' => IcingaConfig::module('monitoring', $file)->getConfigFile(), + 'filename' => $configFile, 'config' => $config ));