ios - 使用 NAPALM 遍历开关列表

标签 ios python-2.7

我安装了凝固汽油弹,并正在努力一次从一个设备获取事实。但是,当我尝试打开一个具有多个开关的文件并迭代它们以从文件中的每个开关获取事实时,我收到错误。该错误似乎与循环文件有关,而不是与特定的主机名参数有关。下面是代码:

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/

相关文章:

ios - 无法将 barbuttonitem 添加到导航 Controller

ios - 有没有一种方法可以在 Apple Watch 上创建可操作的通知,而无需创建实际的 watch 应用程序?

ios - 如何*仅*执行 CoreData 模型迁移以添加约束

ios - 核心数据上下文和单例数据 Controller

python - 以特定的 json 格式发送报告

ios - 在 AVMutableComposition 中渲染不同的分辨率

python-2.7 - | =(管道等号)符号在python中做什么?

python-2.7 - 使用保存的分类器/模型时出现“idf vector is not fitted”错误

python - 获取具有退出状态的单独变量中的 stderr 和 stdout

python - Sqlite3 with Python - 从外部文件查询