]> granicus.if.org Git - icinga2/commitdiff
DB IDO/Livestatus: Fix global enabled status values.
authorMichael Friedrich <michael.friedrich@netways.de>
Thu, 20 Mar 2014 10:33:59 +0000 (11:33 +0100)
committerMichael Friedrich <michael.friedrich@netways.de>
Thu, 20 Mar 2014 10:33:59 +0000 (11:33 +0100)
Fixes #5808

components/livestatus/statustable.cpp
components/livestatus/statustable.h
lib/db_ido/dbconnection.cpp

index f52523e9e7808c2fe60813b52c2e2fc064bd3219..ccd64caf1b3cb9bb7f634726220c56945cbf4707 100644 (file)
@@ -68,17 +68,17 @@ void StatusTable::AddColumns(Table *table, const String& prefix,
        table->AddColumn(prefix + "livecheck_overflows_rate", Column(&Table::ZeroAccessor, objectAccessor));
 
        table->AddColumn(prefix + "nagios_pid", Column(&StatusTable::NagiosPidAccessor, objectAccessor));
-       table->AddColumn(prefix + "enable_notifications", Column(&Table::OneAccessor, objectAccessor));
-       table->AddColumn(prefix + "execute_service_checks", Column(&Table::OneAccessor, objectAccessor));
+       table->AddColumn(prefix + "enable_notifications", Column(&StatusTable::EnableNotificationsAccessor, objectAccessor));
+       table->AddColumn(prefix + "execute_service_checks", Column(&StatusTable::ExecuteServiceChecksAccessor, objectAccessor));
        table->AddColumn(prefix + "accept_passive_service_checks", Column(&Table::OneAccessor, objectAccessor));
        table->AddColumn(prefix + "execute_host_checks", Column(&Table::OneAccessor, objectAccessor));
        table->AddColumn(prefix + "accept_passive_host_checks", Column(&Table::OneAccessor, objectAccessor));
-       table->AddColumn(prefix + "enable_event_handlers", Column(&Table::OneAccessor, objectAccessor));
+       table->AddColumn(prefix + "enable_event_handlers", Column(&StatusTable::EnableEventHandlersAccessor, objectAccessor));
        table->AddColumn(prefix + "obsess_over_services", Column(&Table::ZeroAccessor, objectAccessor));
        table->AddColumn(prefix + "obsess_over_hosts", Column(&Table::ZeroAccessor, objectAccessor));
        table->AddColumn(prefix + "check_service_freshness", Column(&Table::OneAccessor, objectAccessor));
        table->AddColumn(prefix + "check_host_freshness", Column(&Table::OneAccessor, objectAccessor));
-       table->AddColumn(prefix + "enable_flap_detection", Column(&Table::OneAccessor, objectAccessor));
+       table->AddColumn(prefix + "enable_flap_detection", Column(&StatusTable::EnableFlapDetectionAccessor, objectAccessor));
        table->AddColumn(prefix + "process_performance_data", Column(&StatusTable::ProcessPerformanceDataAccessor, objectAccessor));
        table->AddColumn(prefix + "check_external_commands", Column(&Table::OneAccessor, objectAccessor));
        table->AddColumn(prefix + "program_start", Column(&StatusTable::ProgramStartAccessor, objectAccessor));
@@ -111,74 +111,94 @@ void StatusTable::FetchRows(const AddRowFunction& addRowFn)
        addRowFn(obj);
 }
 
-Value StatusTable::ConnectionsAccessor(const Value& row)
+Value StatusTable::ConnectionsAccessor(const Value&)
 {
        return LivestatusListener::GetConnections();
 }
 
-Value StatusTable::ConnectionsRateAccessor(const Value& row)
+Value StatusTable::ConnectionsRateAccessor(const Value&)
 {
        return (LivestatusListener::GetConnections() / (Utility::GetTime() - Application::GetStartTime()));
 }
 
-Value StatusTable::ServiceChecksAccessor(const Value& row)
+Value StatusTable::ServiceChecksAccessor(const Value&)
 {
        long timespan = static_cast<long>(Utility::GetTime() - Application::GetStartTime());
        return CIB::GetActiveChecksStatistics(timespan);
 }
 
-Value StatusTable::ServiceChecksRateAccessor(const Value& row)
+Value StatusTable::ServiceChecksRateAccessor(const Value&)
 {
        long timespan = static_cast<long>(Utility::GetTime() - Application::GetStartTime());
        return (CIB::GetActiveChecksStatistics(timespan) / (Utility::GetTime() - Application::GetStartTime()));
 }
 
-Value StatusTable::ExternalCommandsAccessor(const Value& row)
+Value StatusTable::ExternalCommandsAccessor(const Value&)
 {
        return Query::GetExternalCommands();
 }
 
-Value StatusTable::ExternalCommandsRateAccessor(const Value& row)
+Value StatusTable::ExternalCommandsRateAccessor(const Value&)
 {
        return (Query::GetExternalCommands() / (Utility::GetTime() - Application::GetStartTime()));
 }
 
-Value StatusTable::NagiosPidAccessor(const Value& row)
+Value StatusTable::NagiosPidAccessor(const Value&)
 {
        return Utility::GetPid();
 }
 
+Value StatusTable::EnableNotificationsAccessor(const Value&)
+{
+       return (IcingaApplication::GetInstance()->GetEnableNotifications() ? 1 : 0);
+}
+
+Value StatusTable::ExecuteServiceChecksAccessor(const Value&)
+{
+       return (IcingaApplication::GetInstance()->GetEnableChecks() ? 1 : 0);
+}
+
+Value StatusTable::EnableEventHandlersAccessor(const Value&)
+{
+       return (IcingaApplication::GetInstance()->GetEnableEventHandlers() ? 1 : 0);
+}
+
+Value StatusTable::EnableFlapDetectionAccessor(const Value&)
+{
+       return (IcingaApplication::GetInstance()->GetEnableFlapping() ? 1 : 0);
+}
+
 Value StatusTable::ProcessPerformanceDataAccessor(const Value&)
 {
        return (IcingaApplication::GetInstance()->GetEnablePerfdata() ? 1 : 0);
 }
 
-Value StatusTable::ProgramStartAccessor(const Value& row)
+Value StatusTable::ProgramStartAccessor(const Value&)
 {
        return static_cast<long>(Application::GetStartTime());
 }
 
-Value StatusTable::NumHostsAccessor(const Value& row)
+Value StatusTable::NumHostsAccessor(const Value&)
 {
        return static_cast<long>(DynamicType::GetObjects<Host>().size());
 }
 
-Value StatusTable::NumServicesAccessor(const Value& row)
+Value StatusTable::NumServicesAccessor(const Value&)
 {
        return static_cast<long>(DynamicType::GetObjects<Service>().size());
 }
 
-Value StatusTable::ProgramVersionAccessor(const Value& row)
+Value StatusTable::ProgramVersionAccessor(const Value&)
 {
        return Application::GetVersion();
 }
 
-Value StatusTable::LivestatusVersionAccessor(const Value& row)
+Value StatusTable::LivestatusVersionAccessor(const Value&)
 {
        return Application::GetVersion();
 }
 
-Value StatusTable::LivestatusActiveConnectionsAccessor(const Value& row)
+Value StatusTable::LivestatusActiveConnectionsAccessor(const Value&)
 {
        return LivestatusListener::GetClientsConnected();
 }
index 9122f00ca32de8f02a92c575148a2278e2421872..f79254b2c634b6ce614781d7d1a1a3a6677364d7 100644 (file)
@@ -52,6 +52,10 @@ protected:
        static Value ExternalCommandsAccessor(const Value& row);
        static Value ExternalCommandsRateAccessor(const Value& row);
        static Value NagiosPidAccessor(const Value& row);
+       static Value EnableNotificationsAccessor(const Value& row);
+       static Value ExecuteServiceChecksAccessor(const Value& row);
+       static Value EnableEventHandlersAccessor(const Value& row);
+       static Value EnableFlapDetectionAccessor(const Value& row);
         static Value ProcessPerformanceDataAccessor(const Value& row);
        static Value ProgramStartAccessor(const Value& row);
        static Value NumHostsAccessor(const Value& row);
index a2bea6f9754dcd3d0079299a8831a1b2ace058fd..97c2eb52c8c7eb635101acb23cdad65118dd048e 100644 (file)
@@ -94,12 +94,11 @@ void DbConnection::ProgramStatusHandler(void)
        query2.Fields->Set("process_id", Utility::GetPid());
        query2.Fields->Set("daemon_mode", 1);
        query2.Fields->Set("last_command_check", DbValue::FromTimestamp(Utility::GetTime()));
-       query2.Fields->Set("notifications_enabled", 1);
-       query2.Fields->Set("active_service_checks_enabled", 1);
+       query2.Fields->Set("notifications_enabled", (IcingaApplication::GetInstance()->GetEnableNotifications() ? 1 : 0));
+       query2.Fields->Set("active_service_checks_enabled", (IcingaApplication::GetInstance()->GetEnableChecks() ? 1 : 0));
        query2.Fields->Set("passive_service_checks_enabled", 1);
-       query2.Fields->Set("event_handlers_enabled", 1);
-       query2.Fields->Set("flap_detection_enabled", 1);
-       query2.Fields->Set("failure_prediction_enabled", 1);
+       query2.Fields->Set("event_handlers_enabled", (IcingaApplication::GetInstance()->GetEnableEventHandlers() ? 1 : 0));
+       query2.Fields->Set("flap_detection_enabled", (IcingaApplication::GetInstance()->GetEnableFlapping() ? 1 : 0));
        query2.Fields->Set("process_performance_data", (IcingaApplication::GetInstance()->GetEnablePerfdata() ? 1 : 0));
        DbObject::OnQuery(query2);