]> granicus.if.org Git - icinga2/commitdiff
Livestatus: Add 'is_reachable' to hosts/services table.
authorMichael Friedrich <Michael.Friedrich@netways.de>
Sat, 10 May 2014 18:37:09 +0000 (20:37 +0200)
committerMichael Friedrich <Michael.Friedrich@netways.de>
Sat, 10 May 2014 18:37:09 +0000 (20:37 +0200)
Refs #6094

components/livestatus/hoststable.cpp
components/livestatus/hoststable.h
components/livestatus/servicestable.cpp
components/livestatus/servicestable.h
doc/9-appendix.md
test/livestatus/queries/host/state
test/livestatus/queries/service/state

index 4d619c6e7711e894fd1bfad2c7616fda7c37e84a..679cb0bfcef5ca7d746f7f1053f3b847e494af25 100644 (file)
@@ -157,6 +157,7 @@ void HostsTable::AddColumns(Table *table, const String& prefix,
        table->AddColumn(prefix + "services", Column(&HostsTable::ServicesAccessor, objectAccessor));
        table->AddColumn(prefix + "services_with_state", Column(&HostsTable::ServicesWithStateAccessor, objectAccessor));
        table->AddColumn(prefix + "services_with_info", Column(&HostsTable::ServicesWithInfoAccessor, objectAccessor));
+       table->AddColumn(prefix + "is_reachable", Column(&HostsTable::IsReachableAccessor, objectAccessor));
 }
 
 String HostsTable::GetName(void) const
@@ -1481,3 +1482,13 @@ Value HostsTable::ServicesWithInfoAccessor(const Value& row)
 
        return services;
 }
+
+Value HostsTable::IsReachableAccessor(const Value& row)
+{
+       Host::Ptr host = static_cast<Host::Ptr>(row);
+
+       if (!host)
+               return Empty;
+
+       return host->IsReachable();
+}
index 1c821c2dfdb3440c21db6f9953378cda1a59de78..047e054761b853013cb8cb6af4d557c2d4bb8360 100644 (file)
@@ -140,6 +140,7 @@ protected:
        static Value ServicesAccessor(const Value& row);
        static Value ServicesWithStateAccessor(const Value& row);
        static Value ServicesWithInfoAccessor(const Value& row);
+        static Value IsReachableAccessor(const Value& row);
 };
 
 }
index 037850852212b441a5ed193d1f8cb57a1b6e4b5a..98c32106aa63cdf0494649bdb2756bd7d2f177d1 100644 (file)
@@ -127,6 +127,7 @@ void ServicesTable::AddColumns(Table *table, const String& prefix,
        table->AddColumn(prefix + "groups", Column(&ServicesTable::GroupsAccessor, objectAccessor));
        table->AddColumn(prefix + "contact_groups", Column(&ServicesTable::ContactGroupsAccessor, objectAccessor));
        table->AddColumn(prefix + "check_source", Column(&ServicesTable::CheckSourceAccessor, objectAccessor));
+       table->AddColumn(prefix + "is_reachable", Column(&ServicesTable::IsReachableAccessor, objectAccessor));
 
        HostsTable::AddColumns(table, "host_", boost::bind(&ServicesTable::HostAccessor, _1, objectAccessor));
 }
@@ -1167,4 +1168,12 @@ Value ServicesTable::CheckSourceAccessor(const Value& row)
        return Empty;
 }
 
+Value ServicesTable::IsReachableAccessor(const Value& row)
+{
+       Service::Ptr service = static_cast<Service::Ptr>(row);
+
+       if (!service)
+               return Empty;
 
+       return service->IsReachable();
+}
index 2ef22f3cc4ddebf4e4b9176bc79b9401f27385cd..4662628bfb9e1dd2d9ec7c9e4627282780d9da97 100644 (file)
@@ -124,6 +124,7 @@ protected:
        static Value GroupsAccessor(const Value& row);
        static Value ContactGroupsAccessor(const Value& row);
         static Value CheckSourceAccessor(const Value& row);
+        static Value IsReachableAccessor(const Value& row);
 };
 
 }
index 2b58b07c8cf0b696be76a57515ecd24eeb1d5180..92d713ff4c956ec9f1f5d4bea9f73a84d87b095a 100644 (file)
@@ -488,6 +488,8 @@ New columns:
 
   Table     | Column
   ----------|--------------
+  hosts     | is_reachable
+  services  | is_reachable
   services  | check_source
   downtimes | triggers
   downtimes | trigger_time
index 0eff60449e630dedceaf0b38af6c23b54a9ca8e7..ba59c9e92819d6fdb0fcda989a73e43ec0ff602c 100644 (file)
@@ -1,4 +1,4 @@
 GET hosts
-Columns: name last_state_change last_hard_state_change last_time_up last_time_down last_time_unreachable staleness
+Columns: name last_state_change last_hard_state_change last_time_up last_time_down last_time_unreachable staleness is_reachable
 ResponseHeader: fixed16
 
index ecc448590b82971aab13485b2614ada71783508b..65bf5f70d8601307c15bc0396a301f0c855e9341 100644 (file)
@@ -1,4 +1,4 @@
 GET services
-Columns: description host_name last_state_change last_hard_state_change last_time_ok last_time_warning last_time_critical last_time_unknown staleness
+Columns: description host_name last_state_change last_hard_state_change last_time_ok last_time_warning last_time_critical last_time_unknown staleness is_reachable
 ResponseHeader: fixed16