mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-29 08:34:20 +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. */
|
||||
int Host::GetSeverity() const
|
||||
{
|
||||
int severity = 0;
|
||||
|
||||
ObjectLock olock(this);
|
||||
HostState state = GetState();
|
||||
|
||||
if (!HasBeenChecked()) {
|
||||
severity = 16;
|
||||
} else if (state == HostUp) {
|
||||
severity = 0;
|
||||
} else {
|
||||
if (IsReachable())
|
||||
severity = 64;
|
||||
else
|
||||
severity = 32;
|
||||
return 16;
|
||||
}
|
||||
if (state == HostUp) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (IsAcknowledged())
|
||||
int severity = 32; // DOWN
|
||||
|
||||
if (IsAcknowledged()) {
|
||||
severity += 512;
|
||||
else if (IsInDowntime())
|
||||
} else if (IsInDowntime()) {
|
||||
severity += 256;
|
||||
else
|
||||
} else if (!IsReachable()) {
|
||||
severity += 1024;
|
||||
} else {
|
||||
severity += 2048;
|
||||
}
|
||||
|
||||
olock.Unlock();
|
||||
|
||||
return severity;
|
||||
|
||||
}
|
||||
|
||||
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. */
|
||||
int Service::GetSeverity() const
|
||||
{
|
||||
int severity;
|
||||
|
||||
ObjectLock olock(this);
|
||||
ServiceState state = GetStateRaw();
|
||||
|
||||
if (!HasBeenChecked()) {
|
||||
severity = 16;
|
||||
} else if (state == ServiceOK) {
|
||||
severity = 0;
|
||||
} else {
|
||||
switch (state) {
|
||||
case ServiceWarning:
|
||||
return 16;
|
||||
}
|
||||
if (state == ServiceOK) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int severity = 0;
|
||||
|
||||
if (state == ServiceWarning) {
|
||||
severity = 32;
|
||||
break;
|
||||
case ServiceUnknown:
|
||||
} else if (state == ServiceUnknown) {
|
||||
severity = 64;
|
||||
break;
|
||||
case ServiceCritical:
|
||||
} else if (state == ServiceCritical) {
|
||||
severity = 128;
|
||||
break;
|
||||
default:
|
||||
} else {
|
||||
severity = 256;
|
||||
}
|
||||
|
||||
Host::Ptr host = GetHost();
|
||||
ObjectLock hlock (host);
|
||||
if (host->GetState() != HostUp) {
|
||||
if (IsAcknowledged()) {
|
||||
severity += 512;
|
||||
} else if (IsInDowntime()) {
|
||||
severity += 256;
|
||||
} else if (!IsReachable()) {
|
||||
severity += 1024;
|
||||
} else {
|
||||
if (IsAcknowledged())
|
||||
severity += 512;
|
||||
else if (IsInDowntime())
|
||||
severity += 256;
|
||||
else
|
||||
severity += 2048;
|
||||
}
|
||||
hlock.Unlock();
|
||||
}
|
||||
|
||||
olock.Unlock();
|
||||
|
||||
return severity;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user