2014-10-04 58 views
1

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

有没有人有一些想法如何解决它?

回答

1

NetDevices构造函数显然试图找到不存在的“元数据源”。首先,你需要define the metadata。其次,你的代码应该处理没有发现的异常。

0

我是触发器的首席开发人员。查看文档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,并继续与你的例子,你应该是好去!

0

我发现默认的/etc/trigger/netdevices.xml未在安装说明中列出。它的确表明,从触发源文件夹复制:

cp conf/netdevices.json /etc/trigger/netdevices.json 

但是,我没有看到如何指定的,而不是安装页面上的默认NETDEVICES_SOURCE这一点。但是,只要我有一个文件NETDEVICES_SOURCE在我的/etc/trigger文件夹中指出,它就起作用了。

我推荐这得到验证功能的示例以最小的大惊小怪马上工作:

cp conf/netdevices.xml /etc/trigger/netdevices.xml 
  • 使用Ubuntu 14.04与Python 2.7.3