创建函数或从paramiko类继承?

时间:2015-04-23 16:47:26

标签: python paramiko

我必须使用ssh连接到多个服务器,并在脚本的不同位置为每个服务器执行不同的命令。

这是我正在使用的ssh连接的代码:

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect( host, key_filename=keypriv, timeout=10)
stdin, stdout, stderr = ssh.exec_command("vgdisplay -v -F | grep -v 'vg_status=deactivated'")
vgdata = stdout.readlines()

因为我要打开几个连接并执行几个命令。我正在考虑创建一个继承自paramiko的新类,并添加一些函数(创建,关闭和执行)或创建一个没有继承自paramiko的新类。

有没有任何pythonist方法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

我认为你在这里要问自己的问题是“Composition over Inheritance”?

这个问题基本上归结为问自己是否有“有”关系或“是 - ”关系。在你的情况下,这是一个“有一个”的关系,因为你正在创建的类是 paramiko连接,而不是作为连接。

我不完全确定这些createexecuteclose方法会做什么,但这对我来说就像一个“连接管理器”或一些方便的方法,在我看来,哪种构图是正确的选择。