Ejemplo n.º 1
0
def get_snmp_connection(args):
    """ Prepare SNMP transport agent.

        Connection over SNMP v2c and v3 is supported.
        The choice of authentication and privacy algorithms for v3 is
        arbitrary, matching what our switches can do.
    """

    if args.community:
        auth_data = CommunityData(args.community, mpModel=1)
    else:
        if args.priv_proto == 'des':
            priv_proto = usmDESPrivProtocol
        if args.priv_proto == 'aes':
            priv_proto = usmAesCfb128Protocol

        auth_data = UsmUserData(
            args.user, args.auth, args.priv,
            authProtocol=usmHMACSHAAuthProtocol,
            privProtocol=priv_proto,
        )

    transport_target = UdpTransportTarget((args.switch, 161))

    return {
        'auth_data': auth_data,
        'transport_target': transport_target,
    }
Ejemplo n.º 2
0
 def __init__(self,
              host,
              port=None,
              sec_name=None,
              sec_level=None,
              auth_protocol=None,
              auth_passphrase=None,
              priv_protocol=None,
              priv_passphrase=None):
     super(UsmSession, self).__init__(host, port)
     self.authData = UsmUserData(sec_name, auth_passphrase, priv_passphrase)
Ejemplo n.º 3
0
 def __init__(self,
              host,
              context,
              mibs='',
              community=None,
              user=None,
              authKey=None,
              authProtocol="usmNoAuthProtocol",
              privKey=None,
              privProtocol="usmNoPrivProtocol"):
     if community:
         self.agent = community
     elif user:
         self.agent = UsmUserData(user, authKey, privKey,
                                  getattr(config, authProtocol),
                                  getattr(config, privProtocol))
     self.context = context
     self.host = host
     self.mibs = Mibs(mibs)