2014-10-04 57 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