使用JSON从PySMI脚本构建OID-> MIB索引?

时间:2018-11-29 21:57:57

标签: pysnmp

我已经使用带有JsonCodeGen和CallbackWriter的PySMI成功地将多个MIB编译为JSON(将解析的JSON上载到云存储)。现在,我正在尝试使用新编译的JSON MIB结合已经编译的JSON文件来建立索引。

从文档中看来,我需要将所有这些文件传递给mibCompiler.compile()函数,即使其中大多数文件已经被编译,这样我也可以在编译后运行mibCompiler.buildIndex()。 / p>

据我了解,我需要一个搜索器来排除已经编译的JSON MIB ...是这种情况吗?我在当前代码中看到的只是PyFileSearcher,StubSearcher和AnyFileSearcher。我不确定从这里开始要忽略我的JSON文件。

我也不确定buildIndex()甚至可以接受JSON文件作为输入,因此我希望这是正确的方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

  

我也不确定buildIndex()甚至可以接受JSON文件作为输入,因此我希望这是正确的方法。

实际上,不!当前的PySMI编译器只能解析ASN.1 MIB,它将在JSON输入时失败。

最简单的解决方案可能是将JSON MIB和现有的JSON索引作为dict加载到Python中,然后逐步更新彼此。这是the code,用于从一些内部对象(其中携带MIB数据)构建JSON索引字典。

从PySMI的角度来看,最好的做法可能是引入JSON MIB编译器,该编译器会将JSON MIB变成抽象的语法树,可以从该树中构建JSON MIB索引...