From bddd3bf69c69ff5dc9924b816d19c8cb379ebeef Mon Sep 17 00:00:00 2001 From: hewei Date: Thu, 14 Mar 2019 20:31:43 +0800 Subject: [PATCH] optimize snmp_service 1.Alarm_oid_mapping content should be got when service init,it should not be called evety time 2.Delete invalid judgment in _send_snmp_to_queue Change-Id: I1a3d6f1f157b21fd7e0f5ec68985cce3766f60a5 Signed-off-by: hewei --- vitrage/snmp_parsing/service.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/vitrage/snmp_parsing/service.py b/vitrage/snmp_parsing/service.py index 928a96efa..bef32b79d 100644 --- a/vitrage/snmp_parsing/service.py +++ b/vitrage/snmp_parsing/service.py @@ -13,7 +13,6 @@ # under the License. from datetime import datetime -import json from oslo_log import log import oslo_messaging @@ -43,6 +42,8 @@ class SnmpParsingService(coord.Service): super(SnmpParsingService, self).__init__(worker_id, conf) self.conf = conf self.listening_port = conf.snmp_parsing.snmp_listening_port + self.oid_mapping = \ + load_yaml_file(self.conf.snmp_parsing.oid_mapping) self._init_oslo_notifier() def run(self): @@ -104,7 +105,7 @@ class SnmpParsingService(coord.Service): binds_dict = {} for oid, val in var_binds: u_oid = self._convert_obj_to_unicode(oid) - binds_dict[u_oid] = int(val) if type(val) == Integer \ + binds_dict[u_oid] = int(val) if isinstance(val, Integer) \ else self._convert_obj_to_unicode(val) return binds_dict @@ -127,8 +128,6 @@ class SnmpParsingService(coord.Service): LOG.exception('Failed to initialize oslo notifier') def _send_snmp_to_queue(self, snmp_trap): - if str == type(snmp_trap): - snmp_trap = json.loads(snmp_trap) try: event_type = self._get_event_type(snmp_trap) if not event_type: @@ -147,12 +146,11 @@ class SnmpParsingService(coord.Service): LOG.warning('Snmp failed to post event. Exception: %s', e) def _get_event_type(self, snmp_trap): - yaml_file_content = load_yaml_file(self.conf.snmp_parsing.oid_mapping) - if not yaml_file_content: + if not self.oid_mapping: LOG.warning('No snmp trap is configured!') return None - for mapping_info in yaml_file_content: + for mapping_info in self.oid_mapping: system_oid = extract_field_value(mapping_info, SEProps.SYSTEM_OID) conf_system = extract_field_value(mapping_info, SEProps.SYSTEM) if conf_system == extract_field_value(snmp_trap, system_oid):