]> granicus.if.org Git - icinga2/commitdiff
DB IDO: Add 'is_reachable' column to {host,service}status tables.
authorMichael Friedrich <Michael.Friedrich@netways.de>
Sat, 10 May 2014 19:03:47 +0000 (21:03 +0200)
committerMichael Friedrich <Michael.Friedrich@netways.de>
Sat, 10 May 2014 19:03:47 +0000 (21:03 +0200)
Refs #6094

components/db_ido_mysql/schema/mysql.sql
components/db_ido_mysql/schema/upgrade/0.0.11.sql [new file with mode: 0644]
components/db_ido_pgsql/schema/pgsql.sql
components/db_ido_pgsql/schema/upgrade/0.0.11.sql [new file with mode: 0644]
lib/db_ido/hostdbobject.cpp
lib/db_ido/servicedbobject.cpp
lib/icinga/compatutility.cpp
lib/icinga/compatutility.h

index a462e2a55dd00a073f351e994922e8ca3e00c0c5..119d5fda6cff6893ccd4f4b40150a589d26d606c 100644 (file)
@@ -747,6 +747,7 @@ CREATE TABLE IF NOT EXISTS icinga_hoststatus (
   normal_check_interval double  default '0',
   retry_check_interval double  default '0',
   check_timeperiod_object_id bigint unsigned default 0,
+  is_reachable smallint default 0,
   PRIMARY KEY  (hoststatus_id),
   UNIQUE KEY object_id (host_object_id)
 ) ENGINE=InnoDB  COMMENT='Current host status information';
@@ -1230,6 +1231,7 @@ CREATE TABLE IF NOT EXISTS icinga_servicestatus (
   normal_check_interval double  default '0',
   retry_check_interval double  default '0',
   check_timeperiod_object_id bigint unsigned default 0,
+  is_reachable smallint default 0,
   PRIMARY KEY  (servicestatus_id),
   UNIQUE KEY object_id (service_object_id)
 ) ENGINE=InnoDB  COMMENT='Current service status information';
diff --git a/components/db_ido_mysql/schema/upgrade/0.0.11.sql b/components/db_ido_mysql/schema/upgrade/0.0.11.sql
new file mode 100644 (file)
index 0000000..5c30f67
--- /dev/null
@@ -0,0 +1,8 @@
+
+
+-- -----------------------------------------
+-- #6094
+-- -----------------------------------------
+
+ALTER TABLE icinga_hoststatus ADD COLUMN is_reachable smallint(6) DEFAULT NULL;
+ALTER TABLE icinga_servicestatus ADD COLUMN is_reachable smallint(6) DEFAULT NULL;
index f568ca8ccf88dc5610eba6c497a7fc12cf2fd67f..bc106e8e955c8a6387eb500ad26394e408d5bab6 100644 (file)
@@ -773,6 +773,7 @@ CREATE TABLE  icinga_hoststatus (
   normal_check_interval double precision  default 0,
   retry_check_interval double precision  default 0,
   check_timeperiod_object_id bigint default 0,
+  is_reachable INTEGER  default 0,
   CONSTRAINT PK_hoststatus_id PRIMARY KEY (hoststatus_id) ,
   CONSTRAINT UQ_hoststatus UNIQUE (host_object_id)
 ) ;
@@ -1256,6 +1257,7 @@ CREATE TABLE  icinga_servicestatus (
   normal_check_interval double precision  default 0,
   retry_check_interval double precision  default 0,
   check_timeperiod_object_id bigint default 0,
+  is_reachable INTEGER  default 0,
   CONSTRAINT PK_servicestatus_id PRIMARY KEY (servicestatus_id) ,
   CONSTRAINT UQ_servicestatus UNIQUE (service_object_id)
 ) ;
diff --git a/components/db_ido_pgsql/schema/upgrade/0.0.11.sql b/components/db_ido_pgsql/schema/upgrade/0.0.11.sql
new file mode 100644 (file)
index 0000000..f2c4894
--- /dev/null
@@ -0,0 +1,8 @@
+
+
+-- -----------------------------------------
+-- #6094
+-- -----------------------------------------
+
+ALTER TABLE icinga_hoststatus ADD COLUMN is_reachable INTEGER  default 0;
+ALTER TABLE icinga_servicestatus ADD COLUMN is_reachable INTEGER  default 0;
index 9b88bc6b5daa4a606829899240209571c3d141a3..6fd0cfb67d7d443b89235a8534645da2a62b47a0 100644 (file)
@@ -167,6 +167,7 @@ Dictionary::Ptr HostDbObject::GetStatusFields(void) const
        fields->Set("normal_check_interval", CompatUtility::GetCheckableCheckInterval(host));
        fields->Set("retry_check_interval", CompatUtility::GetCheckableRetryInterval(host));
        fields->Set("check_timeperiod_object_id", host->GetCheckPeriod());
+       fields->Set("is_reachable", CompatUtility::GetCheckableIsReachable(host));
 
        return fields;
 }
index 7b3434807a6e5117760916290aa4875e16335542..68946b2a9c72c699eb178e6becbeddedc9513b53 100644 (file)
@@ -161,6 +161,7 @@ Dictionary::Ptr ServiceDbObject::GetStatusFields(void) const
        fields->Set("retry_check_interval", CompatUtility::GetCheckableRetryInterval(service));
        fields->Set("check_timeperiod_object_id", service->GetCheckPeriod());
        fields->Set("modified_service_attributes", service->GetModifiedAttributes());
+       fields->Set("is_reachable", CompatUtility::GetCheckableIsReachable(service));
 
        return fields;
 }
index eac272aa2547a3dbb80620d3cf352104be739421..218a4fcbc6ca6f0c64b029328cec790151e2b429 100644 (file)
@@ -216,6 +216,11 @@ int CompatUtility::GetCheckableIsFlapping(const Checkable::Ptr& checkable)
        return (checkable->IsFlapping() ? 1 : 0);
 }
 
+int CompatUtility::GetCheckableIsReachable(const Checkable::Ptr& checkable)
+{
+       return (checkable->IsReachable() ? 1 : 0);
+}
+
 String CompatUtility::GetCheckablePercentStateChange(const Checkable::Ptr& checkable)
 {
        return Convert::ToString(checkable->GetFlappingCurrent());
index f7b6e7d13f666a8c36f5a4f29e1ceba78fc91436..f51e845cf0937bda697e1d75be9b11016abd5f3a 100644 (file)
@@ -59,6 +59,7 @@ public:
        static int GetCheckableEventHandlerEnabled(const Checkable::Ptr& checkable);
        static int GetCheckableFlapDetectionEnabled(const Checkable::Ptr& checkable);
        static int GetCheckableIsFlapping(const Checkable::Ptr& checkable);
+        static int GetCheckableIsReachable(const Checkable::Ptr& checkable);
        static String GetCheckablePercentStateChange(const Checkable::Ptr& checkable);
        static int GetCheckableProcessPerformanceData(const Checkable::Ptr& checkable);