summaryrefslogtreecommitdiff
path: root/pysnmp/hlapi/v3arch/asyncore/sync
diff options
context:
space:
mode:
Diffstat (limited to 'pysnmp/hlapi/v3arch/asyncore/sync')
-rw-r--r--pysnmp/hlapi/v3arch/asyncore/sync/__init__.py8
-rw-r--r--pysnmp/hlapi/v3arch/asyncore/sync/cmdgen.py8
-rw-r--r--pysnmp/hlapi/v3arch/asyncore/sync/compat/__init__.py1
-rw-r--r--pysnmp/hlapi/v3arch/asyncore/sync/compat/cmdgen.py251
-rw-r--r--pysnmp/hlapi/v3arch/asyncore/sync/compat/ntforg.py51
-rw-r--r--pysnmp/hlapi/v3arch/asyncore/sync/ntforg.py8
6 files changed, 2 insertions, 325 deletions
diff --git a/pysnmp/hlapi/v3arch/asyncore/sync/__init__.py b/pysnmp/hlapi/v3arch/asyncore/sync/__init__.py
index b537bc28..9ff7d84d 100644
--- a/pysnmp/hlapi/v3arch/asyncore/sync/__init__.py
+++ b/pysnmp/hlapi/v3arch/asyncore/sync/__init__.py
@@ -11,9 +11,5 @@ from pysnmp.hlapi.v3arch.context import *
from pysnmp.hlapi.v3arch.asyncore.transport import *
from pysnmp.entity.engine import *
-try:
- from pysnmp.hlapi.v3arch.asyncore.sync.cmdgen import *
- from pysnmp.hlapi.v3arch.asyncore.sync.ntforg import *
-except SyntaxError:
- from pysnmp.hlapi.v3arch.asyncore.sync.compat.cmdgen import *
- from pysnmp.hlapi.v3arch.asyncore.sync.compat.ntforg import *
+from pysnmp.hlapi.v3arch.asyncore.sync.cmdgen import *
+from pysnmp.hlapi.v3arch.asyncore.sync.ntforg import *
diff --git a/pysnmp/hlapi/v3arch/asyncore/sync/cmdgen.py b/pysnmp/hlapi/v3arch/asyncore/sync/cmdgen.py
index d8bb8e34..7caa05ba 100644
--- a/pysnmp/hlapi/v3arch/asyncore/sync/cmdgen.py
+++ b/pysnmp/hlapi/v3arch/asyncore/sync/cmdgen.py
@@ -4,7 +4,6 @@
# Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
# License: http://snmplabs.com/pysnmp/license.html
#
-from sys import version_info
from pysnmp.hlapi.v3arch.asyncore import cmdgen
from pysnmp.hlapi.varbinds import *
from pysnmp.proto.rfc1905 import endOfMibView
@@ -13,13 +12,6 @@ from pyasn1.type.univ import Null
__all__ = ['getCmd', 'nextCmd', 'setCmd', 'bulkCmd']
-if version_info[:2] < (2, 6):
- __all__.append('next')
-
- # noinspection PyShadowingBuiltins
- def next(iter):
- return iter.next()
-
def getCmd(snmpEngine, authData, transportTarget, contextData,
*varBinds, **options):
diff --git a/pysnmp/hlapi/v3arch/asyncore/sync/compat/__init__.py b/pysnmp/hlapi/v3arch/asyncore/sync/compat/__init__.py
deleted file mode 100644
index 8c3066b2..00000000
--- a/pysnmp/hlapi/v3arch/asyncore/sync/compat/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-# This file is necessary to make this directory a package.
diff --git a/pysnmp/hlapi/v3arch/asyncore/sync/compat/cmdgen.py b/pysnmp/hlapi/v3arch/asyncore/sync/compat/cmdgen.py
deleted file mode 100644
index bb9703f4..00000000
--- a/pysnmp/hlapi/v3arch/asyncore/sync/compat/cmdgen.py
+++ /dev/null
@@ -1,251 +0,0 @@
-#
-# This file is part of pysnmp software.
-#
-# Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
-# License: http://snmplabs.com/pysnmp/license.html
-#
-# This is a Python 2.6- version of the same file at level up
-#
-from pysnmp.hlapi.v3arch.asyncore import cmdgen
-from pysnmp.hlapi.varbinds import *
-from pysnmp.proto.rfc1905 import endOfMibView
-from pysnmp.proto import errind
-from pyasn1.type.univ import Null
-
-__all__ = ['getCmd', 'nextCmd', 'setCmd', 'bulkCmd', 'next']
-
-
-# noinspection PyShadowingBuiltins
-def next(iter):
- return iter.next()
-
-
-def getCmd(snmpEngine, authData, transportTarget, contextData,
- *varBinds, **options):
- # noinspection PyShadowingNames
- def cbFun(snmpEngine, sendRequestHandle,
- errorIndication, errorStatus, errorIndex,
- varBinds, cbCtx):
- cbCtx['errorIndication'] = errorIndication
- cbCtx['errorStatus'] = errorStatus
- cbCtx['errorIndex'] = errorIndex
- cbCtx['varBinds'] = varBinds
-
- cbCtx = {}
-
- if varBinds:
- cmdgen.getCmd(snmpEngine, authData, transportTarget,
- contextData, *varBinds,
- cbFun=cbFun, cbCtx=cbCtx,
- lookupMib=options.get('lookupMib', True))
-
- snmpEngine.transportDispatcher.runDispatcher()
-
- errorIndication = cbCtx['errorIndication']
- errorStatus = cbCtx['errorStatus']
- errorIndex = cbCtx['errorIndex']
- varBinds = cbCtx['varBinds']
- else:
- errorIndication = errorStatus = errorIndex = None
- varBinds = []
-
- yield errorIndication, errorStatus, errorIndex, varBinds
-
-
-def setCmd(snmpEngine, authData, transportTarget, contextData,
- *varBinds, **options):
- # noinspection PyShadowingNames
- def cbFun(snmpEngine, sendRequestHandle,
- errorIndication, errorStatus, errorIndex,
- varBinds, cbCtx):
- cbCtx['errorIndication'] = errorIndication
- cbCtx['errorStatus'] = errorStatus
- cbCtx['errorIndex'] = errorIndex
- cbCtx['varBinds'] = varBinds
-
- cbCtx = {}
-
- while True:
- cmdgen.setCmd(snmpEngine, authData, transportTarget,
- contextData, *varBinds,
- cbFun=cbFun, cbCtx=cbCtx,
- lookupMib=options.get('lookupMib', True))
-
- snmpEngine.transportDispatcher.runDispatcher()
-
- yield (cbCtx['errorIndication'],
- cbCtx['errorStatus'], cbCtx['errorIndex'],
- cbCtx['varBinds'])
-
- if cbCtx['errorIndication'] != errind.requestTimedOut:
- break
-
-
-def nextCmd(snmpEngine, authData, transportTarget, contextData,
- *varBinds, **options):
- # noinspection PyShadowingNames
- def cbFun(snmpEngine, sendRequestHandle,
- errorIndication, errorStatus, errorIndex,
- varBindTable, cbCtx):
- cbCtx['errorIndication'] = errorIndication
- cbCtx['errorStatus'] = errorStatus
- cbCtx['errorIndex'] = errorIndex
- cbCtx['varBindTable'] = varBindTable
-
- lexicographicMode = options.get('lexicographicMode', True)
- ignoreNonIncreasingOid = options.get('ignoreNonIncreasingOid', False)
- maxRows = options.get('maxRows', 0)
- maxCalls = options.get('maxCalls', 0)
-
- cbCtx = {}
-
- vbProcessor = CommandGeneratorVarBinds()
-
- initialVars = [x[0] for x in vbProcessor.makeVarBinds(snmpEngine.cache, varBinds)]
-
- totalRows = totalCalls = 0
-
- while True:
- cmdgen.nextCmd(snmpEngine, authData, transportTarget, contextData,
- *[(x[0], Null('')) for x in varBinds],
- cbFun=cbFun, cbCtx=cbCtx,
- lookupMib=options.get('lookupMib', True))
-
- snmpEngine.transportDispatcher.runDispatcher()
-
- errorIndication = cbCtx['errorIndication']
- errorStatus = cbCtx['errorStatus']
- errorIndex = cbCtx['errorIndex']
-
- if ignoreNonIncreasingOid and errorIndication and \
- isinstance(errorIndication, errind.OidNotIncreasing):
- errorIndication = None
-
- if errorIndication:
- yield errorIndication, errorStatus, errorIndex, varBinds
- if errorIndication != errind.requestTimedOut:
- return
- elif errorStatus:
- if errorStatus == 2:
- # Hide SNMPv1 noSuchName error which leaks in here
- # from SNMPv1 Agent through internal pysnmp proxy.
- errorStatus = errorStatus.clone(0)
- errorIndex = errorIndex.clone(0)
- yield errorIndication, errorStatus, errorIndex, varBinds
- return
- else:
- varBinds = cbCtx['varBindTable'] and cbCtx['varBindTable'][0]
- for idx, varBind in enumerate(varBinds):
- name, val = varBind
- if not isinstance(val, Null):
- if lexicographicMode or initialVars[idx].isPrefixOf(name):
- break
- else:
- return
-
- totalRows += 1
- totalCalls += 1
-
- yield errorIndication, errorStatus, errorIndex, varBinds
-
- if maxRows and totalRows >= maxRows or \
- maxCalls and totalCalls >= maxCalls:
- return
-
-
-def bulkCmd(snmpEngine, authData, transportTarget, contextData,
- nonRepeaters, maxRepetitions, *varBinds, **options):
- # noinspection PyShadowingNames
- def cbFun(snmpEngine, sendRequestHandle,
- errorIndication, errorStatus, errorIndex,
- varBindTable, cbCtx):
- cbCtx['errorIndication'] = errorIndication
- cbCtx['errorStatus'] = errorStatus
- cbCtx['errorIndex'] = errorIndex
- cbCtx['varBindTable'] = varBindTable
-
- lexicographicMode = options.get('lexicographicMode', True)
- ignoreNonIncreasingOid = options.get('ignoreNonIncreasingOid', False)
- maxRows = options.get('maxRows', 0)
- maxCalls = options.get('maxCalls', 0)
-
- cbCtx = {}
-
- vbProcessor = CommandGeneratorVarBinds()
-
- initialVars = [x[0] for x in vbProcessor.makeVarBinds(snmpEngine.cache, varBinds)]
- nullVarBinds = [False] * len(initialVars)
-
- totalRows = totalCalls = 0
- stopFlag = False
-
- while not stopFlag:
- if maxRows and totalRows < maxRows:
- maxRepetitions = min(maxRepetitions, maxRows - totalRows)
-
- cmdgen.bulkCmd(snmpEngine, authData, transportTarget, contextData,
- nonRepeaters, maxRepetitions,
- *[(x[0], Null('')) for x in varBinds],
- cbFun=cbFun, cbCtx=cbCtx,
- lookupMib=options.get('lookupMib', True))
-
- snmpEngine.transportDispatcher.runDispatcher()
-
- errorIndication = cbCtx['errorIndication']
- errorStatus = cbCtx['errorStatus']
- errorIndex = cbCtx['errorIndex']
- varBindTable = cbCtx['varBindTable']
-
- if ignoreNonIncreasingOid and errorIndication and \
- isinstance(errorIndication, errind.OidNotIncreasing):
- errorIndication = None
-
- if errorIndication:
- yield (errorIndication, errorStatus, errorIndex,
- varBindTable and varBindTable[0] or [])
- if errorIndication != errind.requestTimedOut:
- return
- elif errorStatus:
- if errorStatus == 2:
- # Hide SNMPv1 noSuchName error which leaks in here
- # from SNMPv1 Agent through internal pysnmp proxy.
- errorStatus = errorStatus.clone(0)
- errorIndex = errorIndex.clone(0)
- yield (errorIndication, errorStatus, errorIndex,
- varBindTable and varBindTable[0] or [])
- return
- else:
- for i in range(len(varBindTable)):
- stopFlag = True
- if len(varBindTable[i]) != len(initialVars):
- varBindTable = i and varBindTable[:i - 1] or []
- break
- for j in range(len(varBindTable[i])):
- name, val = varBindTable[i][j]
- if nullVarBinds[j]:
- varBindTable[i][j] = name, endOfMibView
- continue
- stopFlag = False
- if isinstance(val, Null):
- nullVarBinds[j] = True
- elif not lexicographicMode and \
- not initialVars[j].isPrefixOf(name):
- varBindTable[i][j] = name, endOfMibView
- nullVarBinds[j] = True
- if stopFlag:
- varBindTable = i and varBindTable[:i - 1] or []
- break
-
- totalRows += len(varBindTable)
- totalCalls += 1
-
- if maxRows and totalRows >= maxRows:
- if totalRows > maxRows:
- varBindTable = varBindTable[:-(totalRows - maxRows)]
- stopFlag = True
-
- if maxCalls and totalCalls >= maxCalls:
- stopFlag = True
-
- for varBinds in varBindTable:
- yield errorIndication, errorStatus, errorIndex, varBinds
diff --git a/pysnmp/hlapi/v3arch/asyncore/sync/compat/ntforg.py b/pysnmp/hlapi/v3arch/asyncore/sync/compat/ntforg.py
deleted file mode 100644
index 5b10cd0e..00000000
--- a/pysnmp/hlapi/v3arch/asyncore/sync/compat/ntforg.py
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-# This file is part of pysnmp software.
-#
-# Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
-# License: http://snmplabs.com/pysnmp/license.html
-#
-# This is a Python 2.6- version of the same file at level up
-#
-from pysnmp.hlapi.v3arch.asyncore import ntforg
-
-__all__ = ['sendNotification', 'next']
-
-
-# noinspection PyShadowingBuiltins
-def next(iter):
- return iter.next()
-
-
-#
-# Synchronous one-liner SNMP Notification Originator application
-#
-
-def sendNotification(snmpEngine, authData, transportTarget, contextData,
- notifyType, varBinds, **options):
- # noinspection PyShadowingNames
- def cbFun(snmpEngine, sendRequestHandle,
- errorIndication, errorStatus, errorIndex,
- varBinds, cbCtx):
- cbCtx['errorIndication'] = errorIndication
- cbCtx['errorStatus'] = errorStatus
- cbCtx['errorIndex'] = errorIndex
- cbCtx['varBinds'] = varBinds
-
- cbCtx = {}
-
- if varBinds:
- ntforg.sendNotification(snmpEngine, authData, transportTarget,
- contextData, notifyType, varBinds,
- cbFun, cbCtx, options.get('lookupMib', True))
-
- snmpEngine.transportDispatcher.runDispatcher()
-
- errorIndication = cbCtx.get('errorIndication')
- errorStatus = cbCtx.get('errorStatus')
- errorIndex = cbCtx.get('errorIndex')
- varBinds = cbCtx.get('varBinds', [])
- else:
- errorIndication = errorStatus = errorIndex = None
- varBinds = []
-
- yield errorIndication, errorStatus, errorIndex, varBinds
diff --git a/pysnmp/hlapi/v3arch/asyncore/sync/ntforg.py b/pysnmp/hlapi/v3arch/asyncore/sync/ntforg.py
index c466c869..e334eefd 100644
--- a/pysnmp/hlapi/v3arch/asyncore/sync/ntforg.py
+++ b/pysnmp/hlapi/v3arch/asyncore/sync/ntforg.py
@@ -4,18 +4,10 @@
# Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com>
# License: http://snmplabs.com/pysnmp/license.html
#
-from sys import version_info
from pysnmp.hlapi.v3arch.asyncore import ntforg
__all__ = ['sendNotification']
-if version_info[:2] < (2, 6):
- __all__.append('next')
-
- # noinspection PyShadowingBuiltins
- def next(iter):
- return iter.next()
-
def sendNotification(snmpEngine, authData, transportTarget, contextData,
notifyType, *varBinds, **options):