mirror of https://github.com/Icinga/icinga2.git
parent
e30d3c5691
commit
4ab9d2604f
|
@ -402,6 +402,9 @@ void Service::ProcessCheckResult(const Dictionary::Ptr& cr)
|
|||
if (old_state != GetState() && old_stateType == StateTypeHard && GetStateType() == StateTypeHard)
|
||||
hardChange = true;
|
||||
|
||||
if (IsVolatile())
|
||||
hardChange = true;
|
||||
|
||||
if (hardChange)
|
||||
SetLastHardStateChange(now);
|
||||
|
||||
|
|
|
@ -52,6 +52,7 @@ Service::Service(const Dictionary::Ptr& serializedObject)
|
|||
RegisterAttribute("checkers", Attribute_Config, &m_Checkers);
|
||||
|
||||
RegisterAttribute("event_command", Attribute_Config, &m_EventCommand);
|
||||
RegisterAttribute("volatile", Attribute_Config, &m_Volatile);
|
||||
|
||||
RegisterAttribute("next_check", Attribute_Replicated, &m_NextCheck);
|
||||
RegisterAttribute("current_checker", Attribute_Replicated, &m_CurrentChecker);
|
||||
|
@ -223,6 +224,14 @@ bool Service::IsReachable(void) const
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Service::IsVolatile(void) const
|
||||
{
|
||||
if (m_Volatile.IsEmpty())
|
||||
return false;
|
||||
|
||||
return m_Volatile;
|
||||
}
|
||||
|
||||
AcknowledgementType Service::GetAcknowledgement(void)
|
||||
{
|
||||
ASSERT(OwnsLock());
|
||||
|
|
|
@ -94,6 +94,8 @@ public:
|
|||
std::set<Host::Ptr> GetParentHosts(void) const;
|
||||
std::set<Service::Ptr> GetParentServices(void) const;
|
||||
|
||||
bool IsVolatile(void) const;
|
||||
|
||||
bool IsReachable(void) const;
|
||||
|
||||
AcknowledgementType GetAcknowledgement(void);
|
||||
|
@ -261,6 +263,7 @@ private:
|
|||
Attribute<long> m_Acknowledgement;
|
||||
Attribute<double> m_AcknowledgementExpiry;
|
||||
Attribute<String> m_HostName;
|
||||
Attribute<bool> m_Volatile;
|
||||
|
||||
/* Checks */
|
||||
Attribute<String> m_CheckCommand;
|
||||
|
|
Loading…
Reference in New Issue