[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