/******************************************************************************
* Icinga 2 *
- * Copyright (C) 2012-2015 Icinga Development Team (http://www.icinga.org) *
+ * Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
#include "icinga/cib.hpp"
#include "icinga/host.hpp"
#include "icinga/service.hpp"
-#include "base/dynamictype.hpp"
+#include "base/configtype.hpp"
#include "base/utility.hpp"
#include "base/application.hpp"
-#include <boost/foreach.hpp>
using namespace icinga;
-StatusTable::StatusTable(void)
+StatusTable::StatusTable()
{
AddColumns(this);
}
void StatusTable::AddColumns(Table *table, const String& prefix,
- const Column::ObjectAccessor& objectAccessor)
+ const Column::ObjectAccessor& objectAccessor)
{
table->AddColumn(prefix + "neb_callbacks", Column(&Table::ZeroAccessor, objectAccessor));
table->AddColumn(prefix + "neb_callbacks_rate", Column(&Table::ZeroAccessor, objectAccessor));
table->AddColumn(prefix + "custom_variables", Column(&StatusTable::CustomVariablesAccessor, objectAccessor));
}
-String StatusTable::GetName(void) const
+String StatusTable::GetName() const
{
return "status";
}
-String StatusTable::GetPrefix(void) const
+String StatusTable::GetPrefix() const
{
return "status";
}
Value StatusTable::HostChecksAccessor(const Value&)
{
- long timespan = static_cast<long>(Utility::GetTime() - Application::GetStartTime());
+ auto timespan = static_cast<long>(Utility::GetTime() - Application::GetStartTime());
return CIB::GetActiveHostChecksStatistics(timespan);
}
Value StatusTable::HostChecksRateAccessor(const Value&)
{
- long timespan = static_cast<long>(Utility::GetTime() - Application::GetStartTime());
+ auto timespan = static_cast<long>(Utility::GetTime() - Application::GetStartTime());
return (CIB::GetActiveHostChecksStatistics(timespan) / (Utility::GetTime() - Application::GetStartTime()));
}
Value StatusTable::ServiceChecksAccessor(const Value&)
{
- long timespan = static_cast<long>(Utility::GetTime() - Application::GetStartTime());
+ auto timespan = static_cast<long>(Utility::GetTime() - Application::GetStartTime());
return CIB::GetActiveServiceChecksStatistics(timespan);
}
Value StatusTable::ServiceChecksRateAccessor(const Value&)
{
- long timespan = static_cast<long>(Utility::GetTime() - Application::GetStartTime());
+ auto timespan = static_cast<long>(Utility::GetTime() - Application::GetStartTime());
return (CIB::GetActiveServiceChecksStatistics(timespan) / (Utility::GetTime() - Application::GetStartTime()));
}
Value StatusTable::NumHostsAccessor(const Value&)
{
- return std::distance(DynamicType::GetObjectsByType<Host>().first, DynamicType::GetObjectsByType<Host>().second);
+ return ConfigType::Get<Host>()->GetObjectCount();
}
Value StatusTable::NumServicesAccessor(const Value&)
{
- return std::distance(DynamicType::GetObjectsByType<Service>().first, DynamicType::GetObjectsByType<Service>().second);
+ return ConfigType::Get<Service>()->GetObjectCount();
}
Value StatusTable::ProgramVersionAccessor(const Value&)
{
- return Application::GetVersion();
+ return Application::GetAppVersion();
}
Value StatusTable::LivestatusVersionAccessor(const Value&)
{
- return Application::GetVersion();
+ return Application::GetAppVersion();
}
Value StatusTable::LivestatusActiveConnectionsAccessor(const Value&)
{
Dictionary::Ptr vars = IcingaApplication::GetInstance()->GetVars();
- if (!vars)
- return Empty;
-
Array::Ptr cv = new Array();
- String key;
- Value value;
- BOOST_FOREACH(tie(key, value), vars) {
- cv->Add(key);
+ if (!vars)
+ return cv;
+
+ {
+ ObjectLock olock(vars);
+ for (const auto& kv : vars) {
+ cv->Add(kv.first);
+ }
}
return cv;
{
Dictionary::Ptr vars = IcingaApplication::GetInstance()->GetVars();
- if (!vars)
- return Empty;
-
Array::Ptr cv = new Array();
- String key;
- Value value;
- BOOST_FOREACH(tie(key, value), vars) {
- cv->Add(value);
+ if (!vars)
+ return cv;
+
+ {
+ ObjectLock olock(vars);
+ for (const auto& kv : vars) {
+ cv->Add(kv.second);
+ }
}
return cv;
{
Dictionary::Ptr vars = IcingaApplication::GetInstance()->GetVars();
- if (!vars)
- return Empty;
-
Array::Ptr cv = new Array();
- String key;
- Value value;
- BOOST_FOREACH(tie(key, value), vars) {
- Array::Ptr key_val = new Array();
- key_val->Add(key);
- key_val->Add(value);
- cv->Add(key_val);
+ if (!vars)
+ return cv;
+
+ {
+ ObjectLock olock(vars);
+ for (const auto& kv : vars) {
+ Array::Ptr key_val = new Array();
+ key_val->Add(kv.first);
+ key_val->Add(kv.second);
+ cv->Add(key_val);
+ }
}
return cv;