无法安装触发网络自动化工具

时间:2014-10-04 12:33:09

标签: python python-2.7 ubuntu triggers

我在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>]

有没有人知道如何修复它?

3 个答案:

答案 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
  • 将Ubuntu 14.04与Python 2.7.3一起使用