首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NAPALM遍历开关列表

使用NAPALM遍历开关列表
EN

Stack Overflow用户
提问于 2017-11-03 00:10:52
回答 1查看 281关注 0票数 0

我已经安装了NAPALM,并且一次只从一个设备上获取事实。但是,当我试图打开一个具有多个开关的文件并对它们进行迭代以从文件中的每个开关中获取事实时,我得到了一个错误。该错误似乎与循环遍历文件有关,而不是具有特定的主机名参数。代码如下:

代码语言:javascript
复制
from napalm import get_network_driver
with open('fetch.txt') as f:
for line in f:
    driver = get_network_driver('ios')
    optional_args = {'secret': 'secret!'}
    device = driver('line', 'user', 'password',optional_args=optional_args)
    print device.get_facts()

我收到以下错误,命令:'NoneType‘对象没有'send_command’属性。我不确定如何让NAPALM遍历开关的文本文件,而不是一个特定的主机名。

EN

回答 1

Stack Overflow用户

发布于 2018-04-20 18:52:33

你永远无法连接到这个设备。调用device.open()或使用with关键字在上下文中输入:

代码语言:javascript
复制
from napalm import get_network_driver
with open('fetch.txt') as f:
for line in f:
    driver = get_network_driver('ios')
    optional_args = {'secret': 'secret!'}
    device = driver('line', 'user', 'password',optional_args=optional_args)
    device.open()
    print device.get_facts()

或者:

代码语言:javascript
复制
from napalm import get_network_driver
with open('fetch.txt') as f:
for line in f:
    driver = get_network_driver('ios')
    optional_args = {'secret': 'secret!'}
    with driver('line', 'user', 'password',optional_args=optional_args) as device:
        print device.get_facts()

我怀疑可能还有其他问题,比如line、user、password是字符串,而不是变量,但这似乎超出了您的问题的范围。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47079858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档