def __parseTrapMsg(self, varBinds): """ ' 解析trap信息 ' params: ' varBinds: 当前trap的绑定值 """ if varBinds: for oid, val in varBinds: matcher = re.search(EsdkKeyDefines.OID_VALUE_FORMAT, val.prettyPrint().strip()) if matcher: valSecStr = matcher.group(0) resList = re.split("=", valSecStr.replace("\n", " ").strip(), 1) resType = resList[0] resValue = resList[1] # #修复建议 # if EsdkKeyDefines.HWISMREPORTINGALARMRESTOREADVICEOID==oid.prettyPrint(): # if EsdkKeyDefines.STRING_TYPE==resType: # if resValue.startswith('0x'): # self.__alarmRestoreAdvice=EsdkUtils.hex2char(resValue[2:]) # #故障告警标题 # elif EsdkKeyDefines.HWISMREPORTINGALARMFAULTTITLEOID==oid.prettyPrint(): # if EsdkKeyDefines.STRING_TYPE==resType: # self.__alarmFaultTitle=resValue # 告警级别 if EsdkKeyDefines.HWISMREPORTINGALARMFAULTLEVELOID == oid.prettyPrint(): if EsdkKeyDefines.INTEGER_TYPE == resType: self.__alarmFaultLevel = resValue # 告警ID elif EsdkKeyDefines.HWISMREPORTINGALARMLOCATIONALARMID == oid.prettyPrint(): if EsdkKeyDefines.BIG_COUNTER_TYPE == resType: self.__alarmID = "0x" + EsdkUtils.dec2hex(resValue) # 获取告警时间,以服务端接收到的告警时间为准 elif EsdkKeyDefines.HWISMREPORTINGALARMFAULTTIMEOID == oid.prettyPrint(): # 获取当前系统的时间 self.__alarmFaultTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 详细信息 elif EsdkKeyDefines.HWISMREPORTINGALARMADDITIONINFOOID == oid.prettyPrint(): if EsdkKeyDefines.STRING_TYPE == resType: self.__alarmAdditionInfo = resValue # 告警类型 elif EsdkKeyDefines.HWISMREPORTINGALARMFAULTCATEGORYOID == oid.prettyPrint(): if EsdkKeyDefines.INTEGER_TYPE == resType: self.__alarmFaultCategory = resValue