0

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

root@ubuntu:~# cat 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'))

根@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 Traceback(最近一次调用最后):文件“test1.py”,第 11 行,在 macs = dev.rpc.get-vpls-mac-table(normalize=True) NameError: name 'vpls' 未定义 root@ubuntu:~#

4

2 回答 2

1

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

将其更改为:

sw = dev.rpc.get_vpls_mac_table()

于 2018-12-04T00:15:41.457 回答
0

谢谢!它现在与 sw = dev.rpc.get_vpls_mac_table() 一起工作。

于 2018-12-04T00:19:30.413 回答