diff options
author | elie <elie> | 2007-04-02 15:57:25 +0000 |
---|---|---|
committer | elie <elie> | 2007-04-02 15:57:25 +0000 |
commit | 7b31c24cebe5f7bfbbae8653ca03bba8d56aab19 (patch) | |
tree | c22894098387a24da8e0bb74de08f776d657e332 | |
parent | 2d500602c4448b5297f327560ea04c392a9a0765 (diff) | |
download | pysnmp-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.py | 128 |
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') |