diff options
author | elie <elie> | 2013-05-18 13:26:49 +0000 |
---|---|---|
committer | elie <elie> | 2013-05-18 13:26:49 +0000 |
commit | dafca9628cd4db7fb34baacc2022106b2b55f711 (patch) | |
tree | 4a7b838c39176c75c34ddc4a412c87df9c442043 /pysnmp/entity/rfc3413/oneliner/auth.py | |
parent | e389f5d736b4cd6f56d2bc5d80244c6819472ff1 (diff) | |
download | pysnmp-dafca9628cd4db7fb34baacc2022106b2b55f711.tar.gz |
SNMP credentials management reworked to allow multiple securityNames's in
snmpCommunityEntry and usmUserEntry tables. Changes made to addV1System(),
addV3User() functions as well as to their oneliner's wrappers.
Diffstat (limited to 'pysnmp/entity/rfc3413/oneliner/auth.py')
-rw-r--r-- | pysnmp/entity/rfc3413/oneliner/auth.py | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/pysnmp/entity/rfc3413/oneliner/auth.py b/pysnmp/entity/rfc3413/oneliner/auth.py index e266417..575f0cb 100644 --- a/pysnmp/entity/rfc3413/oneliner/auth.py +++ b/pysnmp/entity/rfc3413/oneliner/auth.py @@ -8,10 +8,9 @@ class CommunityData: securityLevel = 'noAuthNoPriv' contextName = null tag = null - def __init__(self, securityName, communityName=None, mpModel=None, - contextEngineId=None, contextName=None, tag=None): - self.securityName = securityName - self.communityName = communityName + def __init__(self, communityIndex, communityName=None, mpModel=None, + contextEngineId=None, contextName=None, tag=None, + securityName=None): if mpModel is not None: self.mpModel = mpModel self.securityModel = mpModel + 1 @@ -22,20 +21,28 @@ class CommunityData: self.tag = tag # Autogenerate securityName if not specified if communityName is None: - self.communityName = securityName - self.securityName = 's%s' % hash( - ( securityName, self.mpModel, + self.communityName = communityIndex + self.communityIndex = self.securityName = 's%s' % hash( + ( communityIndex, self.mpModel, self.contextEngineId, self.contextName, self.tag ) ) - + else: + self.communityIndex = communityIndex + self.communityName = communityName + self.securityName = securityName is not None and securityName or communityIndex + + def __hash__(self): + raise TypeError('%s is not hashable' % self.__class__.__name__) + def __repr__(self): - return '%s("%s", <COMMUNITY>, %r, %r, %r, %r)' % ( + return '%s("%s", <COMMUNITY>, %r, %r, %r, %r, %r)' % ( self.__class__.__name__, - self.securityName, + self.communityIndex, self.mpModel, self.contextEngineId, self.contextName, - self.tag + self.tag, + self.securityName ) class UsmUserData: @@ -77,6 +84,9 @@ class UsmUserData: if contextName is not None: self.contextName = contextName + def __hash__(self): + raise TypeError('%s is not hashable' % self.__class__.__name__) + def __repr__(self): return '%s("%s", <AUTHKEY>, <PRIVKEY>, %r, %r, %r, %r)' % ( self.__class__.__name__, |