]> granicus.if.org Git - icinga2/blobdiff - components/livestatus/hostgroupstable.cpp
Remove the HostUnreachable state.
[icinga2] / components / livestatus / hostgroupstable.cpp
index 9a75028300327a69cc25fe86444d87de41d954aa..a525cc651e54b6580899d03c1d0aacad02840821 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  * Icinga 2                                                                   *
- * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/)        *
+ * Copyright (C) 2012-2014 Icinga Development Team (http://www.icinga.org)    *
  *                                                                            *
  * This program is free software; you can redistribute it and/or              *
  * modify it under the terms of the GNU General Public License                *
@@ -25,7 +25,6 @@
 #include <boost/foreach.hpp>
 
 using namespace icinga;
-using namespace livestatus;
 
 HostGroupsTable::HostGroupsTable(void)
 {
@@ -69,8 +68,8 @@ String HostGroupsTable::GetName(void) const
 
 void HostGroupsTable::FetchRows(const AddRowFunction& addRowFn)
 {
-       BOOST_FOREACH(const DynamicObject::Ptr& object, DynamicType::GetObjects("HostGroup")) {
-               addRowFn(object);
+       BOOST_FOREACH(const HostGroup::Ptr& hg, DynamicType::GetObjects<HostGroup>()) {
+               addRowFn(hg);
        }
 }
 
@@ -86,37 +85,37 @@ Value HostGroupsTable::AliasAccessor(const Value& row)
 
 Value HostGroupsTable::NotesAccessor(const Value& row)
 {
-       Dictionary::Ptr custom = static_cast<HostGroup::Ptr>(row)->GetCustom();
+       Dictionary::Ptr vars = static_cast<HostGroup::Ptr>(row)->GetVars();
 
-       if (!custom)
+       if (!vars)
                return Empty;
 
-       return custom->Get("notes");
+       return vars->Get("notes");
 }
 
 Value HostGroupsTable::NotesUrlAccessor(const Value& row)
 {
-       Dictionary::Ptr custom = static_cast<HostGroup::Ptr>(row)->GetCustom();
+       Dictionary::Ptr vars = static_cast<HostGroup::Ptr>(row)->GetVars();
 
-       if (!custom)
+       if (!vars)
                return Empty;
 
-       return custom->Get("notes_url");
+       return vars->Get("notes_url");
 }
 
 Value HostGroupsTable::ActionUrlAccessor(const Value& row)
 {
-       Dictionary::Ptr custom = static_cast<HostGroup::Ptr>(row)->GetCustom();
+       Dictionary::Ptr vars = static_cast<HostGroup::Ptr>(row)->GetVars();
 
-       if (!custom)
+       if (!vars)
                return Empty;
 
-       return custom->Get("action_url");
+       return vars->Get("action_url");
 }
 
 Value HostGroupsTable::MembersAccessor(const Value& row)
 {
-       Array::Ptr members = boost::make_shared<Array>();
+       Array::Ptr members = make_shared<Array>();
 
        BOOST_FOREACH(const Host::Ptr& host, static_cast<HostGroup::Ptr>(row)->GetMembers()) {
                members->Add(host->GetName());
@@ -127,10 +126,10 @@ Value HostGroupsTable::MembersAccessor(const Value& row)
 
 Value HostGroupsTable::MembersWithStateAccessor(const Value& row)
 {
-       Array::Ptr members = boost::make_shared<Array>();
+       Array::Ptr members = make_shared<Array>();
 
        BOOST_FOREACH(const Host::Ptr& host, static_cast<HostGroup::Ptr>(row)->GetMembers()) {
-               Array::Ptr member_state = boost::make_shared<Array>();
+               Array::Ptr member_state = make_shared<Array>();
                member_state->Add(host->GetName());
                member_state->Add(host->GetState());
                members->Add(member_state);
@@ -153,7 +152,7 @@ Value HostGroupsTable::WorstHostStateAccessor(const Value& row)
 
 Value HostGroupsTable::NumHostsAccessor(const Value& row)
 {
-       return static_cast<HostGroup::Ptr>(row)->GetMembers().size();
+       return static_cast<long>(static_cast<HostGroup::Ptr>(row)->GetMembers().size());
 }
 
 Value HostGroupsTable::NumHostsPendingAccessor(const Value& row)
@@ -161,10 +160,8 @@ Value HostGroupsTable::NumHostsPendingAccessor(const Value& row)
        int num_hosts = 0;
 
        BOOST_FOREACH(const Host::Ptr& host, static_cast<HostGroup::Ptr>(row)->GetMembers()) {
-               Service::Ptr hc = host->GetHostCheckService();
-
-               /* no hostcheck service or no checkresult */
-               if (!hc || !hc->GetLastCheckResult())
+               /* no checkresult */
+               if (!host->GetLastCheckResult())
                        num_hosts++;
        }
 
@@ -200,7 +197,7 @@ Value HostGroupsTable::NumHostsUnreachAccessor(const Value& row)
        int num_hosts = 0;
 
        BOOST_FOREACH(const Host::Ptr& host, static_cast<HostGroup::Ptr>(row)->GetMembers()) {
-               if (host->GetState() == HostUnreachable)
+               if (!host->IsReachable())
                        num_hosts++;
        }
 
@@ -216,9 +213,7 @@ Value HostGroupsTable::NumServicesAccessor(const Value& row)
                return 0;
 
        BOOST_FOREACH(const Host::Ptr& host, hg->GetMembers()) {
-               BOOST_FOREACH(const Service::Ptr& service, host->GetServices()) {
-                       num_services++;
-               }
+               num_services += host->GetServices().size();
        }
 
        return num_services;