Module: check_mk
Branch: master
Commit: 2948e76fd8b1d5c236288b8191562d784a17022d
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=2948e76fd8b1d5…
Author: Sven Panne <sp(a)mathias-kettner.de>
Date: Fri Apr 27 10:49:39 2018 +0200
Put the SNMP trap engine state into a new class.
This is a purely mechanical refactoring, and the class is still "dumb".
Change-Id: I247d9198d72c68c166d5791a30e6de14f53696fc
---
cmk/ec/main.py | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/cmk/ec/main.py b/cmk/ec/main.py
index 1b81f07..724bd8e 100644
--- a/cmk/ec/main.py
+++ b/cmk/ec/main.py
@@ -466,6 +466,13 @@ class MKClientError(Exception):
# | Generic SNMP-Trap processing functions |
# '----------------------------------------------------------------------'
+class SNMPTrapEngine(object):
+ def __init__(self, snmp_receiver, the_snmp_engine):
+ super(SNMPTrapEngine, self).__init__()
+ self.snmp_receiver = snmp_receiver
+ self.snmp_engine = the_snmp_engine
+
+
def initialize_snmptrap_handling(settings, config, event_server, table_events):
if settings.options.snmptrap_udp is None:
return
@@ -484,9 +491,9 @@ def initialize_snmptrap_engine(config, event_server, table_events):
pduTypes = (snmp_v1.TrapPDU.tagSet, snmp_v2c.SNMPv2TrapPDU.tagSet)
initialize_snmp_credentials(config, the_snmp_engine)
- global g_snmp_receiver, g_snmp_engine
- g_snmp_receiver = ECNotificationReceiver(the_snmp_engine,
event_server.handle_snmptrap)
- g_snmp_engine = the_snmp_engine
+ snmp_receiver = ECNotificationReceiver(the_snmp_engine,
event_server.handle_snmptrap)
+ global g_snmp_trap_engine
+ g_snmp_trap_engine = SNMPTrapEngine(snmp_receiver, the_snmp_engine)
def auth_proto_for(proto_name):
@@ -1562,8 +1569,8 @@ class EventServer(ECServerThread):
def process_snmptrap(self, data):
whole_msg, sender_address = data
self.logger.verbose("Trap received from %s:%d. Checking for acceptance
now." % sender_address)
- g_snmp_engine.setUserContext(sender_address=sender_address)
- g_snmp_engine.msgAndPduDsp.receiveMessage(g_snmp_engine, (), (), whole_msg)
+ g_snmp_trap_engine.snmp_engine.setUserContext(sender_address=sender_address)
+
g_snmp_trap_engine.snmp_engine.msgAndPduDsp.receiveMessage(g_snmp_trap_engine.snmp_engine,
(), (), whole_msg)
def handle_snmptrap(self, snmp_engine, state_reference, context_engine_id,
context_name,
var_binds, cb_ctx):