diff --git a/library/Director/Objects/IcingaObject.php b/library/Director/Objects/IcingaObject.php index b6d5e10e..93582494 100644 --- a/library/Director/Objects/IcingaObject.php +++ b/library/Director/Objects/IcingaObject.php @@ -587,7 +587,7 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer public function setImports($imports) { - if (! is_array($imports)) { + if (! is_array($imports) && $imports !== null) { $imports = array($imports); } diff --git a/library/Director/Objects/IcingaObjectImports.php b/library/Director/Objects/IcingaObjectImports.php index ce1ef07a..ebbbddc5 100644 --- a/library/Director/Objects/IcingaObjectImports.php +++ b/library/Director/Objects/IcingaObjectImports.php @@ -81,9 +81,18 @@ class IcingaObjectImports implements Iterator, Countable, IcingaConfigRenderer public function set($import) { + if ($import === null) { + if (empty($this->imports)) { + return $this; + } else { + return $this->clear(); + } + } + if (! is_array($import)) { $import = array($import); } + $existing = array_keys($this->imports); $new = array(); $class = $this->getImportClass(); @@ -105,7 +114,6 @@ class IcingaObjectImports implements Iterator, Countable, IcingaConfigRenderer } $this->imports = array(); - $this->modified = true; return $this->add($import); } @@ -301,6 +309,7 @@ class IcingaObjectImports implements Iterator, Countable, IcingaConfigRenderer foreach ($this->objects as $k => $v) { $this->storedImports[$k] = clone($v); } + $this->modified = false; } protected function getImportClass()