summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2007-04-02 15:57:25 +0000
committerelie <elie>2007-04-02 15:57:25 +0000
commit7b31c24cebe5f7bfbbae8653ca03bba8d56aab19 (patch)
treec22894098387a24da8e0bb74de08f776d657e332
parent2d500602c4448b5297f327560ea04c392a9a0765 (diff)
downloadpysnmp-7b31c24cebe5f7bfbbae8653ca03bba8d56aab19.tar.gz
merge per-view VACM shortcuts into a universal add/delVacmUser() to
finally allow requests and notification configuration for the same user
-rw-r--r--pysnmp/entity/config.py128
1 files changed, 64 insertions, 64 deletions
diff --git a/pysnmp/entity/config.py b/pysnmp/entity/config.py
index a9423a2..0a68f87 100644
--- a/pysnmp/entity/config.py
+++ b/pysnmp/entity/config.py
@@ -416,31 +416,44 @@ def delVacmView(snmpEngine, viewName, subTree):
# VACM simplicity wrappers
-def __cookVacmUserInfo(snmpEngine, securityModel, securityName,
- securityLevel, mode):
- groupName = '%s-view-%s-%d' % (securityName, mode, securityModel)
+def __cookVacmUserInfo(snmpEngine, securityModel, securityName, securityLevel):
+ groupName = 'v-%s-%d' % (securityName, securityModel)
SnmpSecurityLevel, = snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder.importSymbols('SNMP-FRAMEWORK-MIB', 'SnmpSecurityLevel')
securityLevel = SnmpSecurityLevel(securityLevel)
- return groupName, securityLevel
+ return ( groupName, securityLevel,
+ 'r' + groupName, 'w' + groupName, 'n' + groupName )
-def addRoUser(snmpEngine, securityModel, securityName, securityLevel, subTree):
- groupName, securityLevel = __cookVacmUserInfo(
- snmpEngine, securityModel, securityName, securityLevel, 'ro'
+def addVacmUser(snmpEngine, securityModel, securityName, securityLevel,
+ readSubTree=(), writeSubTree=(), notifySubTree=()):
+ ( groupName, securityLevel,
+ readView, writeView, notifyView ) = __cookVacmUserInfo(
+ snmpEngine, securityModel, securityName, securityLevel,
)
addVacmGroup(
snmpEngine, groupName, securityModel, securityName
)
addVacmAccess(
snmpEngine, groupName, '', securityModel, securityLevel, 1,
- groupName, '', ''
- )
- addVacmView(
- snmpEngine, groupName, 1, subTree, '',
+ readView, writeView, notifyView
)
+ if readSubTree:
+ addVacmView(
+ snmpEngine, readView, "included", readSubTree, '',
+ )
+ if writeSubTree:
+ addVacmView(
+ snmpEngine, writeView, "included", writeSubTree, '',
+ )
+ if notifySubTree:
+ addVacmView(
+ snmpEngine, notifyView, "included", notifySubTree, '',
+ )
-def delRoUser(snmpEngine, securityModel, securityName, securityLevel, subTree):
- groupName, securityLevel = __cookVacmUserInfo(
- snmpEngine, securityModel, securityName, securityLevel, 'ro'
+def delVacmUser(snmpEngine, securityModel, securityName, securityLevel,
+ readSubTree=(), writeSubTree=(), notifySubTree=()):
+ ( groupName, securityLevel,
+ readView, writeView, notifyView ) = __cookVacmUserInfo(
+ snmpEngine, securityModel, securityName, securityLevel,
)
delVacmGroup(
snmpEngine, securityModel, securityName
@@ -448,70 +461,57 @@ def delRoUser(snmpEngine, securityModel, securityName, securityLevel, subTree):
delVacmAccess(
snmpEngine, groupName, '', securityModel, securityLevel
)
- delVacmView(
- snmpEngine, groupName, subTree
- )
+ if readSubTree:
+ delVacmView(
+ snmpEngine, readView, readSubTree
+ )
+ if writeSubTree:
+ delVacmView(
+ snmpEngine, writeView, writeSubTree
+ )
+ if notifySubTree:
+ delVacmView(
+ snmpEngine, notifyView, notifySubTree
+ )
-def addRwUser(snmpEngine, securityModel, securityName, securityLevel, subTree):
- groupName, securityLevel = __cookVacmUserInfo(
- snmpEngine, securityModel, securityName, securityLevel, 'rw'
- )
- addVacmGroup(
- snmpEngine, groupName, securityModel, securityName
+# Obsolete shortcuts for add/delVacmUser() wrappers
+
+def addRoUser(snmpEngine, securityModel, securityName, securityLevel, subTree):
+ addVacmUser(
+ snmpEngine, securityModel, securityName, securityLevel, subTree
)
- addVacmAccess(
- snmpEngine, groupName, '', securityModel, securityLevel, 1,
- groupName, groupName, ''
+
+def delRoUser(snmpEngine, securityModel, securityName, securityLevel, subTree):
+ delVacmUser(
+ snmpEngine, securityModel, securityName, securityLevel, subTree
)
- addVacmView(
- snmpEngine, groupName, 1, subTree, ''
+
+def addRwUser(snmpEngine, securityModel, securityName, securityLevel, subTree):
+ addVacmUser(
+ snmpEngine, securityModel, securityName, securityLevel,
+ subTree, subTree
)
def delRwUser(snmpEngine, securityModel, securityName, securityLevel, subTree):
- groupName, securityLevel = __cookVacmUserInfo(
- snmpEngine, securityModel, securityName, securityLevel, 'rw'
- )
- delVacmGroup(
- snmpEngine, securityModel, securityName
- )
- delVacmAccess(
- snmpEngine, groupName, '', securityModel, securityLevel
- )
- delVacmView(
- snmpEngine, groupName, subTree
+ delVacmUser(
+ snmpEngine, securityModel, securityName, securityLevel,
+ subTree, subTree
)
-# Notification configuration
-
def addTrapUser(snmpEngine,securityModel,securityName,securityLevel,subTree):
- groupName, securityLevel = __cookVacmUserInfo(
- snmpEngine, securityModel, securityName, securityLevel, 'trap'
- )
- addVacmGroup(
- snmpEngine, groupName, securityModel, securityName
- )
- addVacmAccess(
- snmpEngine, groupName, '', securityModel, securityLevel, 1,
- '', '', groupName,
- )
- addVacmView(
- snmpEngine, groupName, 1, subTree, ''
+ addVacmUser(
+ snmpEngine, securityModel, securityName, securityLevel,
+ (), (), subTree,
)
def delTrapUser(snmpEngine,securityModel,securityName,securityLevel,subTree):
- groupName, securityLevel = __cookVacmUserInfo(
- snmpEngine, securityModel, securityName, securityLevel, 'trap'
- )
- delVacmGroup(
- snmpEngine, securityModel, securityName
- )
- delVacmAccess(
- snmpEngine, groupName, '', securityModel, securityLevel
- )
- delVacmView(
- snmpEngine, groupName, subTree
+ delVacmUser(
+ snmpEngine, securityModel, securityName, securityLevel,
+ (), (), subTree,
)
+# Notification target setup
+
def __cookNotificationTargetInfo(snmpEngine, notificationName, paramsName,
filterSubtree=None):
snmpNotifyEntry, = snmpEngine.msgAndPduDsp.mibInstrumController.mibBuilder.importSymbols('SNMP-NOTIFICATION-MIB', 'snmpNotifyEntry')