我安装了凝固汽油弹,并正在努力一次从一个设备获取事实。但是,当我尝试打开一个具有多个开关的文件并迭代它们以从文件中的每个开关获取事实时,我收到错误。该错误似乎与循环文件有关,而不是与特定的主机名参数有关。下面是代码:
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()
我收到以下错误,AttributeError:“NoneType”对象没有属性“send_command”。我不知道如何让凝固汽油弹循环遍历开关的文本文件而不是一个特定的主机名。
最佳答案
您永远不需要连接到设备。调用 device.open()
或使用 with
关键字在上下文中输入:
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()
或:
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()
我怀疑可能还有其他问题,例如线路、用户、密码是字符串而不是变量,但这似乎超出了您的问题范围。
关于ios - 使用 NAPALM 遍历开关列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47079858/