1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
|
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
#include "icinga/icingaapplication.hpp"
#include "icinga/customvarobject.hpp"
#include "base/array.hpp"
#impl_include "icinga/checkcommand.hpp"
#impl_include "icinga/eventcommand.hpp"
library icinga;
namespace icinga
{
code {{{
/**
* The acknowledgement type of a service.
*
* @ingroup icinga
*/
enum AcknowledgementType
{
AcknowledgementNone = 0,
AcknowledgementNormal = 1,
AcknowledgementSticky = 2
};
}}}
abstract class Checkable : CustomVarObject
{
[config, required, navigation] name(CheckCommand) check_command (CheckCommandRaw) {
navigate {{{
return CheckCommand::GetByName(GetCheckCommandRaw());
}}}
};
[config] int max_check_attempts {
default {{{ return 3; }}}
};
[config, navigation] name(TimePeriod) check_period (CheckPeriodRaw) {
navigate {{{
return TimePeriod::GetByName(GetCheckPeriodRaw());
}}}
};
[config] Value check_timeout;
[config] double check_interval {
default {{{ return 5 * 60; }}}
};
[config] double retry_interval {
default {{{ return 60; }}}
};
[config, navigation] name(EventCommand) event_command (EventCommandRaw) {
navigate {{{
return EventCommand::GetByName(GetEventCommandRaw());
}}}
};
[config] bool volatile;
[config] bool enable_active_checks {
default {{{ return true; }}}
};
[config] bool enable_passive_checks {
default {{{ return true; }}}
};
[config] bool enable_event_handler {
default {{{ return true; }}}
};
[config] bool enable_notifications {
default {{{ return true; }}}
};
[config] bool enable_flapping {
default {{{ return false; }}}
};
[config] bool enable_perfdata {
default {{{ return true; }}}
};
[config] array(String) flapping_ignore_states;
[no_user_view, no_user_modify] int flapping_ignore_states_filter_real (FlappingIgnoreStatesFilter);
[config, deprecated] double flapping_threshold;
[config] double flapping_threshold_low {
default {{{ return 25; }}}
};
[config] double flapping_threshold_high{
default {{{ return 30; }}}
};
[config] String notes;
[config] String notes_url;
[config] String action_url;
[config] String icon_image;
[config] String icon_image_alt;
[state] Timestamp next_check;
[state, no_user_view, no_user_modify] Timestamp last_check_started;
[state] int check_attempt {
default {{{ return 1; }}}
};
[state, enum, no_user_view, no_user_modify] ServiceState state_raw {
default {{{ return ServiceUnknown; }}}
};
[state, enum] StateType state_type {
default {{{ return StateTypeSoft; }}}
};
[state, enum, no_user_view, no_user_modify] ServiceState last_state_raw {
default {{{ return ServiceUnknown; }}}
};
[state, enum, no_user_view, no_user_modify] ServiceState last_hard_state_raw {
default {{{ return ServiceUnknown; }}}
};
[state, no_user_view, no_user_modify] "unsigned short" last_hard_states_raw {
default {{{ return /* current */ 99 * 100 + /* previous */ 99; }}}
};
[state, no_user_view, no_user_modify] "unsigned short" last_soft_states_raw {
default {{{ return /* current */ 99 * 100 + /* previous */ 99; }}}
};
[state, enum] StateType last_state_type {
default {{{ return StateTypeSoft; }}}
};
[state] bool last_reachable {
default {{{ return true; }}}
};
[state] CheckResult::Ptr last_check_result;
[state] Timestamp last_state_change {
default {{{ return Application::GetStartTime(); }}}
};
[state] Timestamp last_hard_state_change {
default {{{ return Application::GetStartTime(); }}}
};
[state] Timestamp last_state_unreachable;
[state] Timestamp previous_state_change {
default {{{ return Application::GetStartTime(); }}}
};
[no_storage] int severity {
get;
};
[no_storage] bool problem {
get;
};
[no_storage] bool handled {
get;
};
[no_storage] Timestamp next_update {
get;
};
[state] bool force_next_check;
[state] int acknowledgement (AcknowledgementRaw) {
default {{{ return AcknowledgementNone; }}}
};
[state] Timestamp acknowledgement_expiry;
[state] Timestamp acknowledgement_last_change;
[state] bool force_next_notification;
[no_storage] Timestamp last_check {
get;
};
[no_storage] int downtime_depth {
get;
};
[state] double flapping_current {
default {{{ return 0; }}}
};
[state] Timestamp flapping_last_change;
[state, enum, no_user_view, no_user_modify] ServiceState flapping_last_state {
default {{{ return ServiceUnknown; }}}
};
[state, no_user_view, no_user_modify] int flapping_buffer;
[state, no_user_view, no_user_modify] int flapping_index;
[state, protected] bool flapping;
[state, no_user_view, no_user_modify] int suppressed_notifications {
default {{{ return 0; }}}
};
[state, enum, no_user_view, no_user_modify] ServiceState state_before_suppression {
default {{{ return ServiceOK; }}}
};
[config, navigation] name(Endpoint) command_endpoint (CommandEndpointRaw) {
navigate {{{
return Endpoint::GetByName(GetCommandEndpointRaw());
}}}
};
[state, no_user_modify] Dictionary::Ptr executions;
[state, no_user_view, no_user_modify] Dictionary::Ptr pending_executions;
};
}
|