如何使用PyEZ获取Juniper路由器的mac地址表?运行时会引发错误

时间:2018-12-03 23:55:44

标签: python juniper junos-automation pyez

我创建了一个简单的python脚本,以使用RPC命令从路由中获取vpls mac表。但是它在运行时会引发错误。有人知道我在做什么错吗?

root @ ubuntu:〜#猫vpls3.py

#!/usr/bin/python3
from jnpr.junos import Device
from lxml import etree
import jxmlease

username='lab'
password='lab'

dev = Device(host='10.85.164.172', user=username, password=password, normalize=True)

dev.open()
#invoke the RPC command
sw = dev.rpc.get-vpls-mac-table()
print(etree.tostring(sw, encoding='unicode'))

root @ ubuntu:〜#

以下是错误:

root@ubuntu:~# python vpls3.py
Traceback (most recent call last):
  File "vpls3.py", line 13, in <module>
    sw = dev.rpc.get-vpls-mac-table()
NameError: name 'vpls' is not defined
root@ubuntu:~#

我也尝试过以下脚本:

root @ ubuntu:〜#cat test1.py

from jnpr.junos import Device
from lxml import etree

# Set device information with IP-address, login user and passwort
dev = Device( user='lab', host='10.85.164.172', password='lab')

# Connect to the device
dev.open()

# Get MACs
macs = dev.rpc.get-vpls-mac-table(normalize=True)

# Print response of device
print (etree.tostring(macs))

# Close the connection
dev.close()

相同错误:

root @ ubuntu:〜#python test1.py 追溯(最近一次通话):   在第11行的文件“ test1.py”中     macs = dev.rpc.get-vpls-mac-table(normalize = True) NameError:名称“ vpls”未定义 root @ ubuntu:〜#

先谢谢了。

2 个答案:

答案 0 :(得分:1)

JunOS RPC使用下划线转换为Pyez:

将其更改为:

sw = dev.rpc.get_vpls_mac_table()

答案 1 :(得分:0)

谢谢!现在可以使用sw = dev.rpc.get_vpls_mac_table()了。