mirror of https://github.com/Icinga/icinga2.git
Fix state conditions in check_memory and check_swap
This fixes the state conditions in check_memory and check_swap. This turns the if/else if/else statements in simple if statements, since they won't work properly when both thresholds are broken. This also implements a new function to get a given state as wstring.
This commit is contained in:
parent
1f06ba2dfc
commit
160a7716c5
|
@ -164,7 +164,7 @@ static int printOutput(printInfoStruct& printInfo)
|
|||
if (l_Debug)
|
||||
std::wcout << L"Constructing output string" << '\n';
|
||||
|
||||
state state;
|
||||
state state = OK;
|
||||
|
||||
std::wcout << L"MEMORY ";
|
||||
|
||||
|
@ -175,16 +175,13 @@ static int printOutput(printInfoStruct& printInfo)
|
|||
else
|
||||
currentValue = printInfo.tRam - printInfo.aRam;
|
||||
|
||||
if (printInfo.warn.rend(currentValue, printInfo.tRam)) {
|
||||
if (printInfo.warn.rend(currentValue, printInfo.tRam))
|
||||
state = WARNING;
|
||||
std::wcout << L"WARNING";
|
||||
} else if (printInfo.crit.rend(currentValue, printInfo.tRam)) {
|
||||
|
||||
if (printInfo.crit.rend(currentValue, printInfo.tRam))
|
||||
state = CRITICAL;
|
||||
std::wcout << L"CRITICAL";
|
||||
} else {
|
||||
state = OK;
|
||||
std::wcout << L"OK";
|
||||
}
|
||||
|
||||
std::wcout << stateToString(state);
|
||||
|
||||
if (!printInfo.showUsed)
|
||||
std::wcout << " - " << printInfo.percentFree << L"% free";
|
||||
|
|
|
@ -194,16 +194,13 @@ static int printOutput(printInfoStruct& printInfo)
|
|||
else
|
||||
currentValue = printInfo.tSwap - printInfo.aSwap;
|
||||
|
||||
if (printInfo.warn.rend(currentValue, printInfo.tSwap)) {
|
||||
if (printInfo.warn.rend(currentValue, printInfo.tSwap))
|
||||
state = WARNING;
|
||||
std::wcout << L"WARNING - ";
|
||||
} else if (printInfo.crit.rend(currentValue, printInfo.tSwap)) {
|
||||
|
||||
if (printInfo.crit.rend(currentValue, printInfo.tSwap))
|
||||
state = CRITICAL;
|
||||
std::wcout << L"CRITICAL - ";
|
||||
} else {
|
||||
state = OK;
|
||||
std::wcout << L"OK - ";
|
||||
}
|
||||
|
||||
std::wcout << stateToString(state) << " ";
|
||||
|
||||
if (!printInfo.showUsed)
|
||||
std::wcout << printInfo.percentFree << L"% free ";
|
||||
|
|
|
@ -281,4 +281,13 @@ std::wstring formatErrorInfo(unsigned long err) {
|
|||
}
|
||||
|
||||
return out.str();
|
||||
}
|
||||
|
||||
std::wstring stateToString(const state& state) {
|
||||
switch (state) {
|
||||
case OK: return L"OK";
|
||||
case WARNING: return L"WARNING";
|
||||
case CRITICAL: return L"CRITICAL";
|
||||
default: return L"UNKNOWN";
|
||||
}
|
||||
}
|
|
@ -76,4 +76,6 @@ std::wstring TunitStr(const Tunit&);
|
|||
void printErrorInfo(unsigned long err = 0);
|
||||
std::wstring formatErrorInfo(unsigned long err);
|
||||
|
||||
std::wstring stateToString(const state&);
|
||||
|
||||
#endif /* THRESHOLDS_H */
|
||||
|
|
Loading…
Reference in New Issue