本文整理汇总了Python中pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher.closeDispatcher方法的典型用法代码示例。如果您正苦于以下问题:Python AsynsockDispatcher.closeDispatcher方法的具体用法?Python AsynsockDispatcher.closeDispatcher怎么用?Python AsynsockDispatcher.closeDispatcher使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher
的用法示例。
在下文中一共展示了AsynsockDispatcher.closeDispatcher方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: send
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
def send(self, host, community, oid, value):
self.pMod.apiPDU.setDefaults(self.reqPDU)
self.pMod.apiPDU.setVarBinds(
self.reqPDU,
((oid, self.pMod.OctetString(value)),
)
)
# Build message
reqMsg = self.pMod.Message()
self.pMod.apiMessage.setDefaults(reqMsg)
self.pMod.apiMessage.setCommunity(reqMsg, community)
self.pMod.apiMessage.setPDU(reqMsg, self.reqPDU)
transportDispatcher = AsynsockDispatcher()
transportDispatcher.registerRecvCbFun(self.cbRecvFun)
transportDispatcher.registerTimerCbFun(self.cbTimerFun)
# UDP/IPv4
transportDispatcher.registerTransport(
udp.domainName, udp.UdpSocketTransport().openClientMode()
)
# Pass message to dispatcher
transportDispatcher.sendMessage(
encoder.encode(reqMsg), udp.domainName, (host, 161)
)
transportDispatcher.jobStarted(1)
# Dispatcher will finish as job#1 counter reaches zero
transportDispatcher.runDispatcher()
transportDispatcher.closeDispatcher()
示例2: Send_GetSystemPDUName
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
def Send_GetSystemPDUName(reqMsg, hostname, port=161):
transportDispatcher = AsynsockDispatcher()
transportDispatcher.registerTransport(udp.domainName, udp.UdpSocketTransport().openClientMode())
transportDispatcher.registerRecvCbFun(cbRecvFun)
transportDispatcher.registerTimerCbFun(cbTimerFun)
transportDispatcher.sendMessage(encoder.encode(reqMsg), udp.domainName, (hostname, 161))
transportDispatcher.jobStarted(1)
transportDispatcher.runDispatcher()
transportDispatcher.closeDispatcher()
示例3: run
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
def run(self):
transport_dispatcher = AsynsockDispatcher()
transport_dispatcher.registerRecvCbFun(self._callback)
transport_dispatcher.registerTransport(udp.domainName,
udp.UdpSocketTransport().openServerMode((self.address, self.port)))
transport_dispatcher.jobStarted(1)
try:
transport_dispatcher.runDispatcher()
except:
transport_dispatcher.closeDispatcher()
raise
示例4: sendSNMPMessage
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
def sendSNMPMessage(self, reqMsg):
transportDispatcher = AsynsockDispatcher()
transportDispatcher.registerTransport(udp.domainName, udp.UdpSocketTransport().openClientMode())
transportDispatcher.registerRecvCbFun(self.cbRecvFun)
transportDispatcher.registerTimerCbFun(self.cbTimerFun)
transportDispatcher.sendMessage(encoder.encode(reqMsg), udp.domainName, (self.host, self.port))
transportDispatcher.jobStarted(1)
transportDispatcher.runDispatcher()
transportDispatcher.closeDispatcher()
示例5: run
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
def run(self):
transportDispatcher = AsynsockDispatcher()
transportDispatcher.registerRecvCbFun(cbFun)
# UDP/IPv4
transportDispatcher.registerTransport(
udp.domainName, udp.UdpSocketTransport().openServerMode(('0.0.0.0', 162))
)
transportDispatcher.jobStarted(1)
try:
# Dispatcher will never finish as job#1 never reaches zero
transportDispatcher.runDispatcher()
except:
transportDispatcher.closeDispatcher()
raise
示例6: main
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
def main():
'main program function'
if os.path.isfile(CONFIG_FILE):
filename = CONFIG_FILE
elif os.path.isfile('/config/{0}'.format(CONFIG_FILE)):
filename = '/config/{0}'.format(CONFIG_FILE)
else:
print 'Error: cannot find configuration file', CONFIG_FILE
return
processConfig(filename)
transportDispatcher = AsynsockDispatcher()
transportDispatcher.registerRecvCbFun(cbFun)
# UDP/IPv4
if gArgs.virtual_router:
lookupVR(gArgs.virtual_router)
# During startup, the IP address may not be ready yet. So we try a few times
for retry in range(30):
try:
transportDispatcher.registerTransport(
udp.domainName, udp.UdpSocketTransport().openServerMode((gArgs.ip_address, 162))
)
break
except Exception:
time.sleep(5)
# UDP/IPv6
transportDispatcher.registerTransport(
udp6.domainName, udp6.Udp6SocketTransport().openServerMode(('::1', 162))
)
transportDispatcher.jobStarted(1)
try:
# Dispatcher will never finish as job#1 never reaches zero
transportDispatcher.runDispatcher()
except Exception:
transportDispatcher.closeDispatcher()
raise
示例7: _trap_receiver
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
def _trap_receiver(trap_filter, host, port, timeout):
started = time.time()
def _trap_timer_cb(now):
if now - started > timeout:
raise AssertionError('No matching trap received in %s.' %
robot.utils.secs_to_timestr(timeout))
def _trap_receiver_cb(transport, domain, sock, msg):
if decodeMessageVersion(msg) != protoVersion2c:
raise RuntimeError('Only SNMP v2c traps are supported.')
req, msg = decoder.decode(msg, asn1Spec=v2c.Message())
pdu = v2c.apiMessage.getPDU(req)
# ignore any non trap PDUs
if not pdu.isSameTypeWith(v2c.TrapPDU()):
return
if trap_filter(domain, sock, pdu):
raise StopListener()
# Stop the receiver if the trap we are looking for was received.
if False:
raise StopListener()
dispatcher = AsynsockDispatcher()
dispatcher.registerRecvCbFun(_trap_receiver_cb)
dispatcher.registerTimerCbFun(_trap_timer_cb)
transport = udp.UdpSocketTransport().openServerMode((host, port))
dispatcher.registerTransport(udp.domainName, transport)
# we'll never finish, except through an exception
dispatcher.jobStarted(1)
try:
dispatcher.runDispatcher()
except StopListener:
pass
finally:
dispatcher.closeDispatcher()
示例8: start_agent
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
def start_agent(self):
print 'start_agent'
try:
transportDispatcher = AsynsockDispatcher()
transportDispatcher.registerRecvCbFun(self.cbFun) #obrabotchik
transportDispatcher.registerTransport(
udp.domainName, udp.UdpSocketTransport().openServerMode(('localhost', 161))
)
transportDispatcher.jobStarted(1)
except Exception as error:
print 'error %s' % error
try:
# Dispatcher will never finish as job#1 never reaches zero
transportDispatcher.runDispatcher()
except:
transportDispatcher.closeDispatcher()
print 'error run disp'
raise
示例9: start
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
def start(self):
'''
' 启动监听进程
' raise Exception: 异常停止时抛出
'''
transportDispatcher = AsynsockDispatcher()
transportDispatcher.registerRecvCbFun(self._cbHandler)
# UDP/IPv4
transportDispatcher.registerTransport(\
udp.domainName, udp.UdpSocketTransport().openServerMode(\
(str(self._configdata.Localaddress), \
int(self._configdata.Trapport)))
)
transportDispatcher.jobStarted(1)
try:
# 分发器后台运行,任务编号1#。获取0值时停止
transportDispatcher.runDispatcher()
except Exception:
transportDispatcher.closeDispatcher()
raise
示例10: run
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
def run(self):
transportDispatcher = AsynsockDispatcher()
transportDispatcher.registerRecvCbFun(trapCallback)
if self.ipv6:
transport = udp.Udp6SocketTransport()
domainName = udp6.domainName
else:
transport = udp.UdpSocketTransport()
domainName = udp.domainName
try:
transportDispatcher.registerTransport(domainName, transport.openServerMode((self.host, self.port)))
transportDispatcher.jobStarted(1)
# Dispatcher will never finish as job#1 never reaches zero
transportDispatcher.runDispatcher()
except RuntimeError,e:
transportDispatcher.closeDispatcher()
logging.error("Looks like an error: %s" % str(e))
sys.exit(1)
示例11: run
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
def run(self):
transportDispatcher = AsynsockDispatcher()
transportDispatcher.registerRecvCbFun(trapCallback)
if self.ipv6:
transport = udp.Udp6SocketTransport()
domainName = udp6.domainName
else:
transport = udp.UdpSocketTransport()
domainName = udp.domainName
try:
transportDispatcher.registerTransport(domainName, transport.openServerMode((self.host, self.port)))
transportDispatcher.jobStarted(1)
# Dispatcher will never finish as job#1 never reaches zero
transportDispatcher.runDispatcher()
except: # catch *all* exceptions
e = sys.exc_info()[1]
transportDispatcher.closeDispatcher()
logging.error("Failed to register transport and run dispatcher: %s" % str(e))
sys.exit(1)
示例12:
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
transportDispatcher.jobStarted(1)
'''
## UDP/IPv6 (second copy of the same PDU will be sent)
transportDispatcher.registerTransport(
udp6.domainName, udp6.Udp6SocketTransport().openClientMode()
)
# Pass message to dispatcher
transportDispatcher.sendMessage(
encoder.encode(reqMsg), udp6.domainName, ('::1', 161)
)
transportDispatcher.jobStarted(1)
'''
## Local domain socket
#transportDispatcher.registerTransport(
# unix.domainName, unix.UnixSocketTransport().openClientMode()
#)
#
# Pass message to dispatcher
#transportDispatcher.sendMessage(
# encoder.encode(reqMsg), unix.domainName, '/tmp/snmp-agent'
#)
#transportDispatcher.jobStarted(1)
# Dispatcher will finish as job#1 counter reaches zero
transportDispatcher.runDispatcher()
transportDispatcher.closeDispatcher()
示例13: update
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
def update(self):
"""Called by the processing thread to trigger an update of the data"""
ip = self._ip
hostname = self._hostname
# Grab the lock
lock = self.lock
lock.acquire()
try:
# Retrieve locally available information
self.activeRevision = getActiveRevision(hostname)
self.generatedRevision = getGeneratedRevision(self._hostname)
# Check that the host is reachable
if not isHostUp(ip):
self.reachable = False
self.lastCheckedAt = time.time()
self.attempt+=1
return
self.reachable = True
# Retrieve host status information
pMod = api.protoModules[api.protoVersion1]
reqPDU = pMod.GetRequestPDU()
pMod.apiPDU.setDefaults(reqPDU)
pMod.apiPDU.setVarBinds(
reqPDU, ((CCS_REVISION_OID, pMod.Null()),
(LOAD_AVG1_OID, pMod.Null()),
(LOAD_AVG5_OID, pMod.Null()),
(LOAD_AVG15_OID, pMod.Null()),
(UPTIME_OID, pMod.Null())
)
)
# Build message
reqMsg = pMod.Message()
pMod.apiMessage.setDefaults(reqMsg)
pMod.apiMessage.setCommunity(reqMsg, 'public')
pMod.apiMessage.setPDU(reqMsg, reqPDU)
# Dispatch Request
transportDispatcher = AsynsockDispatcher()
transportDispatcher.registerTransport(
udp.domainName, udp.UdpSocketTransport().openClientMode()
)
startedAt = time.time()
def cbTimerFun(timeNow):
if timeNow - startedAt > 3:
transportDispatcher.jobFinished(1)
transportDispatcher.closeDispatcher()
self.attempt+=1
log_warn("Timeout fetching status from %s. Attempt #%s" %
(hostname, self.attempt))
def cbRecvFun(transportDispatcher, transportDomain, \
transportAddress, wholeMsg, reqPDU=reqPDU):
while wholeMsg:
rspMsg, wholeMsg = decoder.decode(wholeMsg, \
asn1Spec=pMod.Message())
rspPDU = pMod.apiMessage.getPDU(rspMsg)
# Match response to request
if pMod.apiPDU.getRequestID(reqPDU) == \
pMod.apiPDU.getRequestID(rspPDU):
# Check for SNMP errors reported
errorStatus = pMod.apiPDU.getErrorStatus(rspPDU)
if errorStatus:
transportDispatcher.jobFinished(1)
transportDispatcher.closeDispatcher()
raise ccs_status_error(errorStatus.prettyPrint())
else:
la1 = 0
la5 = 0
la15 = 0
for oid, val in pMod.apiPDU.getVarBinds(rspPDU):
if oid == CCS_REVISION_OID:
self.operatingRevision = str(val)
self._parseOperatingRevision()
elif oid == LOAD_AVG1_OID:
la1 = val
elif oid == LOAD_AVG5_OID:
la5 = val
elif oid == LOAD_AVG15_OID:
la15 = val
elif oid == UPTIME_OID:
self.uptime = val
self.currentLoad = (la1, la5, la15)
transportDispatcher.jobFinished(1)
self.attempt = 0
return wholeMsg
transportDispatcher.registerRecvCbFun(cbRecvFun)
transportDispatcher.registerTimerCbFun(cbTimerFun)
transportDispatcher.sendMessage(
encoder.encode(reqMsg), udp.domainName, (ip, 161)
)
transportDispatcher.jobStarted(1)
transportDispatcher.runDispatcher()
transportDispatcher.closeDispatcher()
# Record that the details were updated
self.infoUpdatedAt = time.time()
self.lastCheckedAt = time.time()
finally:
lock.release()
示例14: pollFn
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
#.........这里部分代码省略.........
)
else:
for varBind in varBinds:
print(' = '.join([ x.prettyPrint() for x in varBind ]))
# Get the temperature
errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
CommunityData('public',mpModel=0),
UdpTransportTarget(('localhost', 1161)),
ContextData(),
ObjectType(ObjectIdentity('1.3.6.1.2.1.1.1.0')))
)
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (
errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1][0] or '?'
)
)
else:
#for varBind in varBinds:
# print(' = '.join([ x.prettyPrint() for x in varBind ]))
#SET Command
#Check if the temperature is less than 10
for oid, val in varBinds:
print('%s = %s' % (oid.prettyPrint(), val.prettyPrint()))
returnedVal = int(val)
if (returnedVal < 10):
print returnedVal
# Protocol version to use
#pMod = api.protoModules[api.protoVersion1]
pMod = api.protoModules[api.protoVersion2c]
# Build PDU
reqPDU = pMod.SetRequestPDU()
pMod.apiPDU.setDefaults(reqPDU)
pMod.apiPDU.setVarBinds(
reqPDU,
# Change the heater status to ON
( ('1.3.6.1.2.1.1.1.0', pMod.OctetString('ON')),
# ('1.3.6.1.2.1.1.3.0', pMod.TimeTicks(12))
)
)
# Build message
reqMsg = pMod.Message()
pMod.apiMessage.setDefaults(reqMsg)
pMod.apiMessage.setCommunity(reqMsg, 'public')
pMod.apiMessage.setPDU(reqMsg, reqPDU)
startedAt = time()
def cbTimerFun(timeNow):
if timeNow - startedAt > 3:
raise Exception("Request timed out")
def cbRecvFun(transportDispatcher, transportDomain, transportAddress,
wholeMsg, reqPDU=reqPDU):
while wholeMsg:
rspMsg, wholeMsg = decoder.decode(wholeMsg, asn1Spec=pMod.Message())
rspPDU = pMod.apiMessage.getPDU(rspMsg)
# Match response to request
if pMod.apiPDU.getRequestID(reqPDU)==pMod.apiPDU.getRequestID(rspPDU):
# Check for SNMP errors reported
errorStatus = pMod.apiPDU.getErrorStatus(rspPDU)
if errorStatus:
print(errorStatus.prettyPrint())
else:
for oid, val in pMod.apiPDU.getVarBinds(rspPDU):
print('%s = %s' (oid.prettyPrint(), val.prettyPrint()))
transportDispatcher.jobFinished(1)
return wholeMsg
transportDispatcher = AsynsockDispatcher()
transportDispatcher.registerRecvCbFun(cbRecvFun)
transportDispatcher.registerTimerCbFun(cbTimerFun)
# UDP/IPv4
transportDispatcher.registerTransport(
udp.domainName, udp.UdpSocketTransport().openClientMode()
)
# Pass message to dispatcher
transportDispatcher.sendMessage(
encoder.encode(reqMsg), udp.domainName, ('localhost', 1162)
)
transportDispatcher.jobStarted(1)
# Dispatcher will finish as job#1 counter reaches zero
transportDispatcher.runDispatcher()
transportDispatcher.closeDispatcher()
else:
print "value greater than 10"
开发者ID:stephenoken,项目名称:-SNMP-Management-Station-for-Wireless-Indoor-Network,代码行数:104,代码来源:manager.py
示例15: __init__
# 需要导入模块: from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcher [as 别名]
# 或者: from pysnmp.carrier.asynsock.dispatch.AsynsockDispatcher import closeDispatcher [as 别名]
#.........这里部分代码省略.........
def cbFun(self, transportDispatcher, transportDomain,
cbCtx, wholeMsg, ):
print "cbCtx :", cbCtx
msgVer = int(api.decodeMessageVersion(wholeMsg))
#print "Inisde CB FUN..."
print 'Inside CB FUN....'
if msgVer in api.protoModules:
pMod = api.protoModules[msgVer]
else:
print('Unsupported SNMP version %s' % msgVer)
#return
reqMsg, wholeMsg = decoder.decode(
wholeMsg, asn1Spec=pMod.Message(),
)
self.req = reqMsg
print 'Type :', type(self.req)
print 'Inform :', self.inform
if self.inform:
print 'Inside Inform IF........'
if not 'InformRequestPDU()' in str(self.req):
print 'Inform Message is not sent....failed...'
print 'reqMsg : %s' % self.req
#print 'wholeMsg : %s' % wholeMsg
#print('Notification message from %s:%s: ' % (
# transportDomain, transportAddress
# )
#)
reqPDU = pMod.apiMessage.getPDU(reqMsg)
print ',,,,reqPDU : %s' % reqPDU
varBinds = pMod.apiPDU.getVarBindList(reqPDU)
#transportDispatcher.jobFinished(1)
self.terminationRequestedFlag = True
if msgVer == api.protoVersion1:
self.varBinds = pMod.apiTrapPDU.getVarBindList(reqPDU)
self.specificTrap = pMod.apiTrapPDU.getSpecificTrap(reqPDU).prettyPrint()
self.version = 1
if msgVer == api.protoVersion2c:
self.varBinds = pMod.apiPDU.getVarBindList(reqPDU)
self.specificTrap = None
self.version = 2
def timerCb(self, timeNow=10):
print "Inside Timer CB..."
if self.terminationRequestedFlag:
print "Finishing the Job..."
self.transportDispatcher.jobFinished(1)
else:
self.terminationRequestedFlag = True
def trap_listener(self):
#print "RECEIVER IP:", self.rcvr_ip
self.transportDispatcher = AsynsockDispatcher()
self.terminationRequestedFlag = False
#print "TER FLAG:", self.terminationRequestedFlag
self.transportDispatcher.registerRecvCbFun(self.cbFun)
self.transportDispatcher.registerTimerCbFun(self.timerCb)
self.transportDispatcher.registerTransport(udp.domainName,
udp.UdpSocketTransport().openServerMode(("%s" % self.rcvr_ip, 162))
)
#time.sleep(1)
# Generate the trap for the given Event.
self.gen_trap.generate_trap(self.event_name)
self.transportDispatcher.jobStarted(1)
print "Run Dispatcher...."
self.transportDispatcher.runDispatcher()
print "Close Dispatcher...."
self.transportDispatcher.closeDispatcher()
print "\n"
#print "varBinds : ", self.varBinds
#print "Version : ", self.version
#print "specificTrap : ", self.specificTrap
return self.varBinds, self.specificTrap, self.version