[icinga-checkins] icinga.org: icingaweb2-module-director/master: IcingaObject(legacy): Add flag to render only supported objects
git at icinga.org
git at icinga.org
Thu Nov 3 14:23:22 CET 2016
Module: icingaweb2-module-director
Branch: master
Commit: 31a321e13e642e2e49590af61d41f40761b20855
URL: https://git.icinga.org/?p=icingaweb2-module-director.git;a=commit;h=31a321e13e642e2e49590af61d41f40761b20855
Author: Markus Frosch <markus.frosch at icinga.com>
Date: Thu Oct 13 15:44:53 2016 +0200
IcingaObject(legacy): Add flag to render only supported objects
refs #12919
---
library/Director/Objects/IcingaCommand.php | 2 ++
library/Director/Objects/IcingaHost.php | 2 ++
library/Director/Objects/IcingaObject.php | 20 ++++++++++++++++++++
library/Director/Objects/IcingaObjectGroup.php | 2 ++
library/Director/Objects/IcingaService.php | 2 ++
library/Director/Objects/IcingaServiceSet.php | 2 ++
library/Director/Objects/IcingaTimePeriod.php | 2 ++
7 files changed, 32 insertions(+)
diff --git a/library/Director/Objects/IcingaCommand.php b/library/Director/Objects/IcingaCommand.php
index 523cfff..a0fff94 100644
--- a/library/Director/Objects/IcingaCommand.php
+++ b/library/Director/Objects/IcingaCommand.php
@@ -29,6 +29,8 @@ class IcingaCommand extends IcingaObject
protected $supportsArguments = true;
+ protected $supportedInLegacy = true;
+
protected $intervalProperties = array(
'timeout' => 'timeout',
);
diff --git a/library/Director/Objects/IcingaHost.php b/library/Director/Objects/IcingaHost.php
index 25abadd..1b21704 100644
--- a/library/Director/Objects/IcingaHost.php
+++ b/library/Director/Objects/IcingaHost.php
@@ -82,6 +82,8 @@ class IcingaHost extends IcingaObject
protected $supportsFields = true;
+ protected $supportedInLegacy = true;
+
public static function enumProperties(
DbConnection $connection = null,
$prefix = '',
diff --git a/library/Director/Objects/IcingaObject.php b/library/Director/Objects/IcingaObject.php
index dde7c30..af9e412 100644
--- a/library/Director/Objects/IcingaObject.php
+++ b/library/Director/Objects/IcingaObject.php
@@ -51,6 +51,9 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
/** @var bool Whether Sets of object can be defined */
protected $supportsSets = false;
+ /** @var bool If the object is rendered in legacy config */
+ protected $supportedInLegacy = false;
+
protected $rangeClass;
protected $type;
@@ -1450,6 +1453,10 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
return $config;
}
+ public function isSupportedInLegacy()
+ {
+ return $this->supportedInLegacy;
+ }
public function renderToLegacyConfig(IcingaConfig $config)
{
@@ -1457,6 +1464,19 @@ abstract class IcingaObject extends DbObject implements IcingaConfigRenderer
return;
}
+ if (! $this->isSupportedInLegacy()) {
+ $config->configFile(
+ 'director/ignored-objects', '.cfg'
+ )->prepend(
+ sprintf(
+ "# Not supported for legacy config: %s object_name=%s\n",
+ get_class($this),
+ $this->getObjectName()
+ )
+ );
+ return;
+ }
+
$filename = $this->getRenderingFilename();
if (
diff --git a/library/Director/Objects/IcingaObjectGroup.php b/library/Director/Objects/IcingaObjectGroup.php
index b92a31e..5612f5e 100644
--- a/library/Director/Objects/IcingaObjectGroup.php
+++ b/library/Director/Objects/IcingaObjectGroup.php
@@ -11,6 +11,8 @@ abstract class IcingaObjectGroup extends IcingaObject
{
protected $supportsImports = true;
+ protected $supportedInLegacy = true;
+
protected $defaultProperties = array(
'id' => null,
'object_name' => null,
diff --git a/library/Director/Objects/IcingaService.php b/library/Director/Objects/IcingaService.php
index c2a0f00..34b88bc 100644
--- a/library/Director/Objects/IcingaService.php
+++ b/library/Director/Objects/IcingaService.php
@@ -85,6 +85,8 @@ class IcingaService extends IcingaObject
protected $supportsSets = true;
+ protected $supportedInLegacy = true;
+
protected $keyName = array('host_id', 'service_set_id', 'object_name');
protected $prioritizedProperties = array('host_id');
diff --git a/library/Director/Objects/IcingaServiceSet.php b/library/Director/Objects/IcingaServiceSet.php
index 7de95e1..4e99679 100644
--- a/library/Director/Objects/IcingaServiceSet.php
+++ b/library/Director/Objects/IcingaServiceSet.php
@@ -28,6 +28,8 @@ class IcingaServiceSet extends IcingaObject
protected $supportsApplyRules = true;
+ protected $supportedInLegacy = true;
+
protected $relations = array(
'host' => 'IcingaHost',
);
diff --git a/library/Director/Objects/IcingaTimePeriod.php b/library/Director/Objects/IcingaTimePeriod.php
index c912eb0..4b97b88 100644
--- a/library/Director/Objects/IcingaTimePeriod.php
+++ b/library/Director/Objects/IcingaTimePeriod.php
@@ -22,6 +22,8 @@ class IcingaTimePeriod extends IcingaObject
protected $supportsRanges = true;
+ protected $supportedInLegacy = true;
+
protected $relations = array(
'zone' => 'IcingaZone',
);
More information about the icinga-checkins
mailing list