我在howto文档中读到install Trigger,但是当我在python环境中测试时,我得到以下错误:
>>> from trigger.netdevices import NetDevices
>>> nd = NetDevices()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/trigger/netdevices/__init__.py", line 913, in __init__
with_acls=with_acls)
File "/usr/local/lib/python2.7/dist-packages/trigger/netdevices/__init__.py", line 767, in __init__
production_only=production_only, with_acls=with_acls)
File "/usr/local/lib/python2.7/dist-packages/trigger/netdevices/__init__.py", line 83, in _populate
# device_data = _munge_source_data(data_source=data_source)
File "/usr/local/lib/python2.7/dist-packages/trigger/netdevices/__init__.py", line 73, in _munge_source_data
# return loader.load_metadata(path, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/trigger/netdevices/loader.py", line 163, in load_metadata
raise RuntimeError('No data loaders succeeded. Tried: %r' % tried)
RuntimeError: No data loaders succeeded. Tried: [<trigger.netdevices.loaders.filesystem.XMLLoader object at 0x7f550a1ed350>, <trigger.netdevices.loaders.filesystem.JSONLoader object at 0x7f550a1ed210>, <trigger.netdevices.loaders.filesystem.SQLiteLoader object at 0x7f550a1ed250>, <trigger.netdevices.loaders.filesystem.CSVLoader object at 0x7f550a1ed290>, <trigger.netdevices.loaders.filesystem.RancidLoader object at 0x7f550a1ed550>]
有没有人知道如何修复它?
答案 0 :(得分:1)
NetDevices构造函数显然正在尝试查找不存在的“元数据源”。
首先,您需要define the metadata。其次,您的代码应该处理没有找到的异常。
答案 1 :(得分:0)
我是Trigger的首席开发人员。查看文档Working with NetDevices。这可能是你错过的。我们最近做了一些工作来提高设置/安装文档的质量,我希望现在更清楚了!
如果你想快速启动,你可以像CSV-formatted NetDevices file一样提供触发器:
test1-abc.net.example.com,juniper
test2-abc.net.example.com,cisco
将其放入文件中,例如/tmp/netdevices.csv
然后设置NETDEVICES_SOURCE
环境变量:
export NETDEVICES_SOURCE=/tmp/netdevices.csv
然后启动python
继续你的例子,你应该好好去!
答案 2 :(得分:0)
我发现设置说明中未列出/etc/trigger/netdevices.xml
的默认值。它确实表明要从触发源文件夹中复制:
cp conf/netdevices.json /etc/trigger/netdevices.json
但是,我没有看到如何在安装页面上指定此而不是默认的NETDEVICES_SOURCE
。但是,只要我在/etc/trigger
文件夹中找到NETDEVICES_SOURCE
指向的文件,它就会起作用。
我建议这样做,以便立即使用验证功能示例,并尽量减少麻烦:
cp conf/netdevices.xml /etc/trigger/netdevices.xml