]> granicus.if.org Git - icinga2/commitdiff
DB IDO: Add check_source_object_id reference to endpoint objects.
authorMichael Friedrich <michael.friedrich@netways.de>
Thu, 20 Mar 2014 17:02:45 +0000 (18:02 +0100)
committerMichael Friedrich <michael.friedrich@netways.de>
Thu, 20 Mar 2014 17:03:47 +0000 (18:03 +0100)
Refs #5810
Refs #5636

components/db_ido_mysql/schema/mysql.sql
components/db_ido_mysql/schema/upgrade/0.0.9.sql [new file with mode: 0644]
components/db_ido_pgsql/schema/pgsql.sql
components/db_ido_pgsql/schema/upgrade/0.0.9.sql [new file with mode: 0644]
lib/db_ido/servicedbobject.cpp

index 080898dcd81013f4c90c9c55359749e185f0b31f..545e6fa521b0ec2899a135dc571332e62a138dd5 100644 (file)
@@ -1398,6 +1398,10 @@ ALTER TABLE icinga_servicechecks ADD COLUMN endpoint_object_id bigint default NU
 ALTER TABLE icinga_statehistory ADD COLUMN endpoint_object_id bigint default NULL;
 ALTER TABLE icinga_systemcommands ADD COLUMN endpoint_object_id bigint default NULL;
 
+ALTER TABLE icinga_servicestatus ADD COLUMN check_source_object_id bigint default NULL;
+ALTER TABLE icinga_hoststatus ADD COLUMN check_source_object_id bigint default NULL;
+ALTER TABLE icinga_statehistory ADD COLUMN check_source_object_id bigint default NULL;
+
 
 -- -----------------------------------------
 -- add index (delete)
diff --git a/components/db_ido_mysql/schema/upgrade/0.0.9.sql b/components/db_ido_mysql/schema/upgrade/0.0.9.sql
new file mode 100644 (file)
index 0000000..5786c74
--- /dev/null
@@ -0,0 +1,4 @@
+
+ALTER TABLE icinga_servicestatus ADD COLUMN check_source_object_id bigint default NULL;
+ALTER TABLE icinga_hoststatus ADD COLUMN check_source_object_id bigint default NULL;
+ALTER TABLE icinga_statehistory ADD COLUMN check_source_object_id bigint default NULL;
index c30e9e50d7a390c81237fb8dd41b325403b70c4e..ed96d8c18568c0013acafa1686d5f60d823dbb6d 100644 (file)
@@ -1426,6 +1426,9 @@ ALTER TABLE icinga_servicechecks ADD COLUMN endpoint_object_id bigint default NU
 ALTER TABLE icinga_statehistory ADD COLUMN endpoint_object_id bigint default NULL;
 ALTER TABLE icinga_systemcommands ADD COLUMN endpoint_object_id bigint default NULL;
 
+ALTER TABLE icinga_servicestatus ADD COLUMN check_source_object_id bigint default NULL;
+ALTER TABLE icinga_hoststatus ADD COLUMN check_source_object_id bigint default NULL;
+ALTER TABLE icinga_statehistory ADD COLUMN check_source_object_id bigint default NULL;
 
 -- -----------------------------------------
 -- add index (delete)
diff --git a/components/db_ido_pgsql/schema/upgrade/0.0.9.sql b/components/db_ido_pgsql/schema/upgrade/0.0.9.sql
new file mode 100644 (file)
index 0000000..0d6b0de
--- /dev/null
@@ -0,0 +1,5 @@
+
+ALTER TABLE icinga_servicestatus ADD COLUMN check_source_object_id bigint default NULL;
+ALTER TABLE icinga_hoststatus ADD COLUMN check_source_object_id bigint default NULL;
+ALTER TABLE icinga_statehistory ADD COLUMN check_source_object_id bigint default NULL;
+
index 208e516fa9c315238b21504fb88fef43688e7de4..4d00620e75bf5a6617ce15b2d619bc12ddf22b99 100644 (file)
@@ -145,7 +145,14 @@ Dictionary::Ptr ServiceDbObject::GetStatusFields(void) const
                fields->Set("output", CompatUtility::GetCheckResultOutput(cr));
                fields->Set("long_output", CompatUtility::GetCheckResultLongOutput(cr));
                fields->Set("perfdata", CompatUtility::GetCheckResultPerfdata(cr));
-               fields->Set("check_source", cr->GetCheckSource());
+
+               String check_source = cr->GetCheckSource();
+               fields->Set("check_source", check_source);
+
+               Endpoint::Ptr check_endpoint = Endpoint::GetByName(check_source);
+
+               if(check_endpoint)
+                       fields->Set("check_source_object_id", check_endpoint);
        }
 
        fields->Set("current_state", CompatUtility::GetServiceCurrentState(service));
@@ -887,7 +894,14 @@ void ServiceDbObject::AddStateChangeHistory(const Service::Ptr& service, const C
        if (cr) {
                fields1->Set("output", CompatUtility::GetCheckResultOutput(cr));
                fields1->Set("long_output", CompatUtility::GetCheckResultLongOutput(cr));
-               fields1->Set("check_source", cr->GetCheckSource());
+
+               String check_source = cr->GetCheckSource();
+               fields1->Set("check_source", check_source);
+
+               Endpoint::Ptr check_endpoint = Endpoint::GetByName(check_source);
+
+               if(check_endpoint)
+                       fields1->Set("check_source_object_id", check_endpoint);
        }
 
        fields1->Set("instance_id", 0); /* DbConnection class fills in real ID */