mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-30 17:14:25 +02:00
Merge pull request #10399 from Icinga/severity-reachability
`Checkable::GetSeverity()`: consider reachability
This commit is contained in:
commit
27e1850381
@ -170,33 +170,29 @@ HostState Host::GetLastHardState() const
|
|||||||
* sort by severity. It is therefore easier to keep them seperated here. */
|
* sort by severity. It is therefore easier to keep them seperated here. */
|
||||||
int Host::GetSeverity() const
|
int Host::GetSeverity() const
|
||||||
{
|
{
|
||||||
int severity = 0;
|
|
||||||
|
|
||||||
ObjectLock olock(this);
|
ObjectLock olock(this);
|
||||||
HostState state = GetState();
|
HostState state = GetState();
|
||||||
|
|
||||||
if (!HasBeenChecked()) {
|
if (!HasBeenChecked()) {
|
||||||
severity = 16;
|
return 16;
|
||||||
} else if (state == HostUp) {
|
}
|
||||||
severity = 0;
|
if (state == HostUp) {
|
||||||
} else {
|
return 0;
|
||||||
if (IsReachable())
|
}
|
||||||
severity = 64;
|
|
||||||
else
|
|
||||||
severity = 32;
|
|
||||||
|
|
||||||
if (IsAcknowledged())
|
int severity = 32; // DOWN
|
||||||
|
|
||||||
|
if (IsAcknowledged()) {
|
||||||
severity += 512;
|
severity += 512;
|
||||||
else if (IsInDowntime())
|
} else if (IsInDowntime()) {
|
||||||
severity += 256;
|
severity += 256;
|
||||||
else
|
} else if (!IsReachable()) {
|
||||||
|
severity += 1024;
|
||||||
|
} else {
|
||||||
severity += 2048;
|
severity += 2048;
|
||||||
}
|
}
|
||||||
|
|
||||||
olock.Unlock();
|
|
||||||
|
|
||||||
return severity;
|
return severity;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Host::IsStateOK(ServiceState state) const
|
bool Host::IsStateOK(ServiceState state) const
|
||||||
|
@ -111,46 +111,37 @@ Host::Ptr Service::GetHost() const
|
|||||||
* sort by severity. It is therefore easier to keep them seperated here. */
|
* sort by severity. It is therefore easier to keep them seperated here. */
|
||||||
int Service::GetSeverity() const
|
int Service::GetSeverity() const
|
||||||
{
|
{
|
||||||
int severity;
|
|
||||||
|
|
||||||
ObjectLock olock(this);
|
ObjectLock olock(this);
|
||||||
ServiceState state = GetStateRaw();
|
ServiceState state = GetStateRaw();
|
||||||
|
|
||||||
if (!HasBeenChecked()) {
|
if (!HasBeenChecked()) {
|
||||||
severity = 16;
|
return 16;
|
||||||
} else if (state == ServiceOK) {
|
}
|
||||||
severity = 0;
|
if (state == ServiceOK) {
|
||||||
} else {
|
return 0;
|
||||||
switch (state) {
|
}
|
||||||
case ServiceWarning:
|
|
||||||
|
int severity = 0;
|
||||||
|
|
||||||
|
if (state == ServiceWarning) {
|
||||||
severity = 32;
|
severity = 32;
|
||||||
break;
|
} else if (state == ServiceUnknown) {
|
||||||
case ServiceUnknown:
|
|
||||||
severity = 64;
|
severity = 64;
|
||||||
break;
|
} else if (state == ServiceCritical) {
|
||||||
case ServiceCritical:
|
|
||||||
severity = 128;
|
severity = 128;
|
||||||
break;
|
} else {
|
||||||
default:
|
|
||||||
severity = 256;
|
severity = 256;
|
||||||
}
|
}
|
||||||
|
|
||||||
Host::Ptr host = GetHost();
|
if (IsAcknowledged()) {
|
||||||
ObjectLock hlock (host);
|
severity += 512;
|
||||||
if (host->GetState() != HostUp) {
|
} else if (IsInDowntime()) {
|
||||||
|
severity += 256;
|
||||||
|
} else if (!IsReachable()) {
|
||||||
severity += 1024;
|
severity += 1024;
|
||||||
} else {
|
} else {
|
||||||
if (IsAcknowledged())
|
|
||||||
severity += 512;
|
|
||||||
else if (IsInDowntime())
|
|
||||||
severity += 256;
|
|
||||||
else
|
|
||||||
severity += 2048;
|
severity += 2048;
|
||||||
}
|
}
|
||||||
hlock.Unlock();
|
|
||||||
}
|
|
||||||
|
|
||||||
olock.Unlock();
|
|
||||||
|
|
||||||
return severity;
|
return severity;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user