]> granicus.if.org Git - icinga2/blobdiff - lib/livestatus/livestatuslogutility.cpp
Merge pull request #6509 from gunnarbeutner/feature/real-constants
[icinga2] / lib / livestatus / livestatuslogutility.cpp
index 764b922288206ac51a997375eb67c440fc23b549..91db16253374029a6cd4a44a98325545ad126deb 100644 (file)
@@ -1,6 +1,6 @@
 /******************************************************************************
  * 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 "base/utility.hpp"
 #include "base/convert.hpp"
 #include "base/logger.hpp"
-#include <boost/foreach.hpp>
 #include <boost/tuple/tuple.hpp>
 #include <boost/algorithm/string.hpp>
-#include <boost/algorithm/string/split.hpp>
-#include <boost/algorithm/string/classification.hpp>
 #include <boost/algorithm/string/replace.hpp>
 #include <boost/algorithm/string/predicate.hpp>
 #include <fstream>
@@ -40,8 +37,8 @@ using namespace icinga;
 
 void LivestatusLogUtility::CreateLogIndex(const String& path, std::map<time_t, String>& index)
 {
-       Utility::Glob(path + "/icinga.log", boost::bind(&LivestatusLogUtility::CreateLogIndexFileHandler, _1, boost::ref(index)), GlobFile);
-       Utility::Glob(path + "/archives/*.log", boost::bind(&LivestatusLogUtility::CreateLogIndexFileHandler, _1, boost::ref(index)), GlobFile);
+       Utility::Glob(path + "/icinga.log", std::bind(&LivestatusLogUtility::CreateLogIndexFileHandler, _1, std::ref(index)), GlobFile);
+       Utility::Glob(path + "/archives/*.log", std::bind(&LivestatusLogUtility::CreateLogIndexFileHandler, _1, std::ref(index)), GlobFile);
 }
 
 void LivestatusLogUtility::CreateLogIndexFileHandler(const String& path, std::map<time_t, String>& index)
@@ -69,20 +66,21 @@ void LivestatusLogUtility::CreateLogIndexFileHandler(const String& path, std::ma
        stream.close();
 
        Log(LogDebug, "LivestatusLogUtility")
-           << "Indexing log file: '" << path << "' with timestamp start: '" << ts_start << "'.";
+               << "Indexing log file: '" << path << "' with timestamp start: '" << ts_start << "'.";
 
        index[ts_start] = path;
 }
 
 void LivestatusLogUtility::CreateLogCache(std::map<time_t, String> index, HistoryTable *table,
-    time_t from, time_t until, const AddRowFunction& addRowFn)
+       time_t from, time_t until, const AddRowFunction& addRowFn)
 {
        ASSERT(table);
 
        /* m_LogFileIndex map tells which log files are involved ordered by their start timestamp */
-       unsigned int ts;
        unsigned long line_count = 0;
-       BOOST_FOREACH(boost::tie(ts, boost::tuples::ignore), index) {
+       for (const auto& kv : index) {
+               unsigned int ts = kv.first;
+
                /* skip log files not in range (performance optimization) */
                if (ts < from || ts > until)
                        continue;
@@ -106,7 +104,7 @@ void LivestatusLogUtility::CreateLogCache(std::map<time_t, String> index, Histor
                        /* no attributes available - invalid log line */
                        if (!log_entry_attrs) {
                                Log(LogDebug, "LivestatusLogUtility")
-                                   << "Skipping invalid log line: '" << line << "'.";
+                                       << "Skipping invalid log line: '" << line << "'.";
                                continue;
                        }
 
@@ -130,7 +128,7 @@ Dictionary::Ptr LivestatusLogUtility::GetAttributes(const String& text)
        unsigned long time = atoi(text.SubStr(1, 11).CStr());
 
        Log(LogDebug, "LivestatusLogUtility")
-           << "Processing log line: '" << text << "'.";
+               << "Processing log line: '" << text << "'.";
        bag->Set("time", time);
 
        size_t colon = text.FindFirstOf(':');
@@ -142,8 +140,7 @@ Dictionary::Ptr LivestatusLogUtility::GetAttributes(const String& text)
        bag->Set("type", type);
        bag->Set("options", options);
 
-       std::vector<String> tokens;
-       boost::algorithm::split(tokens, options, boost::is_any_of(";"));
+       std::vector<String> tokens = options.Split(";");
 
        /* set default values */
        bag->Set("class", LogEntryClassInfo);
@@ -153,8 +150,8 @@ Dictionary::Ptr LivestatusLogUtility::GetAttributes(const String& text)
        bag->Set("message", text); /* used as 'message' in log table, and 'log_output' in statehist table */
 
        if (type.Contains("INITIAL HOST STATE") ||
-           type.Contains("CURRENT HOST STATE") ||
-           type.Contains("HOST ALERT")) {
+               type.Contains("CURRENT HOST STATE") ||
+               type.Contains("HOST ALERT")) {
                if (tokens.size() < 5)
                        return bag;
 
@@ -178,8 +175,7 @@ Dictionary::Ptr LivestatusLogUtility::GetAttributes(const String& text)
                }
 
                return bag;
-       } else if (type.Contains("HOST DOWNTIME ALERT") ||
-                type.Contains("HOST FLAPPING ALERT")) {
+       } else if (type.Contains("HOST DOWNTIME ALERT") ||  type.Contains("HOST FLAPPING ALERT")) {
                if (tokens.size() < 3)
                        return bag;
 
@@ -197,8 +193,8 @@ Dictionary::Ptr LivestatusLogUtility::GetAttributes(const String& text)
 
                return bag;
        } else if (type.Contains("INITIAL SERVICE STATE") ||
-                type.Contains("CURRENT SERVICE STATE") ||
-                type.Contains("SERVICE ALERT")) {
+               type.Contains("CURRENT SERVICE STATE") ||
+               type.Contains("SERVICE ALERT")) {
                if (tokens.size() < 6)
                        return bag;
 
@@ -224,7 +220,7 @@ Dictionary::Ptr LivestatusLogUtility::GetAttributes(const String& text)
 
                return bag;
        } else if (type.Contains("SERVICE DOWNTIME ALERT") ||
-                type.Contains("SERVICE FLAPPING ALERT")) {
+               type.Contains("SERVICE FLAPPING ALERT")) {
                if (tokens.size() < 4)
                        return bag;
 
@@ -330,10 +326,10 @@ Dictionary::Ptr LivestatusLogUtility::GetAttributes(const String& text)
        }
        /* program */
        else if (type.Contains("restarting...") ||
-                type.Contains("shutting down...") ||
-                type.Contains("Bailing out") ||
-                type.Contains("active mode...") ||
-                type.Contains("standby mode...")) {
+               type.Contains("shutting down...") ||
+               type.Contains("Bailing out") ||
+               type.Contains("active mode...") ||
+               type.Contains("standby mode...")) {
                bag->Set("class", LogEntryClassProgram);
 
                return bag;