【问题标题】:Creating a basic function创建基本功能
【发布时间】:2017-11-06 20:56:08
【问题描述】:
from netmiko import ConnectHandler

r1 = {'ip': '10.1.1.1', 'device_type': 'juniper', 'username': 'test', 'password': 'test1'}

r2 = {'ip': '10.1.1.2', 'device_type': 'juniper', 'username': 'test', 'password': 'test1'}

def connect(**cred):
    ssh_conn = ConnectHandler(**cred)

connect(r1)

这是我一直在玩的一些基本功能,但我似乎在基础上苦苦挣扎。我正在使用 Netmiko,我希望能够列出设备并创建一个函数,以便我可以将其导入其他脚本。

我只想创建一个连接到设备的函数,但它会连接到我在函数中提到的任何设备,但这似乎不起作用 - 我哪里出错了?

提前致谢

【问题讨论】:

  • 什么不起作用?除了创建连接对象之外,您不会做任何事情。

标签: python function networking ssh paramiko


【解决方案1】:

你应该尝试这样做:

from netmiko import ConnectHandler

r1 = {'ip': '10.1.1.1', 'device_type': 'juniper', 'username': 'test', 'password': 'test1'}

r2 = {'ip': '10.1.1.2', 'device_type': 'juniper', 'username': 'test', 'password': 'test1'}

如果你说 ConnectHandler 类需要 (*args, **kwargs) 那么你的函数应该是这样的:

def connect(*args, **cred):
    ssh_conn = ConnectHandler(*args, **cred)

connect(**r1)

*args 是可选的,如果您想添加它们。 问题是您使用 **cred 作为 kwargs 签名,但您没有将关键字 args 传递给函数,而是传递位置参数。

【讨论】:

  • connect(cred = r1) 尝试了这个并得到了这个和错误,如下所示:'code'Traceback(最近一次调用):文件“/Users/mohammedd/code/scripts2.0/first_function .py",第 13 行,在 connect(cred = r1) 文件中 "/Users/mohammedd/code/scripts2.0/first_function.py",第 11 行,在 connect ssh_conn = ConnectHandler(**cred) 文件中" /Library/Python/2.7/site-packages/netmiko/ssh_dispatcher.py",第 131 行,在 ConnectHandler 返回 ConnectionClass(*args, **kwargs)'code'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 2016-10-07
  • 1970-01-01
  • 1970-01-01
  • 2012-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多