def start(self, host, port):
        self.cmd_responder = CommandResponder(host, port, self.compiled_mibs)
        self.xml_general_config(self.dom)
        self.xml_mib_config(self.dom, self.compiled_mibs, self.raw_mibs)

        logger.info('SNMP server started on: %s', (host, self.get_port()))
        self.cmd_responder.serve_forever()
Пример #2
0
def test_register_loads_custom_mib():
    raw_mibs = os.path.join(os.path.dirname(__file__), "data")

    with TemporaryDirectory() as tmpdir:
        responder = CommandResponder("", 0, raw_mibs, tmpdir)

        responder.register("VOGON-POEM-MIB", "poemNumber", (0,), 42, None)

        assert responder._get_mibSymbol("VOGON-POEM-MIB", "poemNumber")
Пример #3
0
def test_register_fails_on_unknown_mib():
    with TemporaryDirectory() as tmpdir:
        responder = CommandResponder("", 0, "/tmp", tmpdir)

        with pytest.raises(MibNotFoundError) as exc_info:
            responder.register("NONEXISTENT-MIB", "foobar", (0,), 42, None)

        assert str(exc_info.value).startswith("NONEXISTENT-MIB compilation error")
        assert not responder._get_mibSymbol("NONEXISTENT-MIB", "foobar")
Пример #4
0
    def __init__(self, host, port, template, mibpaths, rawmibs_dirs):
        """
        :param host:        hostname or ip address on which to server the snmp service (string).
        :param port:        listen port (integer).
        :param template:    path to conpot xml configuration file (string).
        :param log_queue:   shared log queue (list).
        :param mibpaths:    collection of paths to search for COMPILED mib files (iterable collection of strings).
        :param rawmibs_dir: collection of paths to search for raw mib files, these files will get compiled by conpot (string).
        """
        self.host = host
        self.port = port

        dom = etree.parse(template)

        self.cmd_responder = CommandResponder(self.host, self.port, mibpaths)
        self.xml_general_config(dom)
        self.xml_mib_config(dom, mibpaths, rawmibs_dirs)