2 # -*- encoding: utf-8; py-indent-offset: 4 -*-
5 def parse_poseidon_inputs(info
):
8 for line_number
, line
in enumerate(info
, 1):
9 input_value
, input_name
, input_alarm_setup
, input_alarm_state
= line
11 input_name
= 'Eingang %d' % line_number
13 input_value
= int(input_value
)
17 input_alarm_setup
= int(input_alarm_setup
)
21 input_alarm_state
= int(input_alarm_state
)
24 parsed
[input_name
] = {
25 'input_value': input_value
,
26 'input_alarm_setup': input_alarm_setup
,
27 'input_alarm_state': input_alarm_state
,
33 def check_poseidon_inputs(item
, params
, data
):
34 alarm_setup
= {0: 'inactive', 1: 'activeOff', 2: 'activeOn', 3: 'unkown'}
35 input_values
= {0: 'off', 1: 'on', 3: 'unkown'}
36 alarm_states
= {0: 'normal', 1: 'alarm', 3: 'unkown'}
37 txt
= '%s: AlarmSetup: %s' % (item
, alarm_setup
[data
.get('input_alarm_setup', 3)])
40 state
= data
.get('input_alarm_state', 3)
41 txt
= 'Alarm State: %s' % alarm_states
[state
]
46 yield 0, "Values %s" % input_values
.get(data
.get('input_value', 3), 'unknown')
49 check_info
["poseidon_inputs"] = {
50 "parse_function": parse_poseidon_inputs
,
51 "check_function": check_poseidon_inputs
,
52 "inventory_function": discover(),
53 "service_description": "%s",
54 "has_perfdata": False,
55 "snmp_scan_function": lambda oid
: oid(".1.3.6.1.2.1.1.2.0").startswith('.1.3.6.1.4.1.21796.3'),
56 "snmp_info": (".1.3.6.1.4.1.21796.3.3.1.1", ['2', '3', '4', '5']),