这里的情况很有趣。目前,我有一个简单的FlaskAPI,它连接到后端的网络设备并检索命令输出
from netmiko import ConnectHandler
def _execute_cli(self, opt, command):
"""
Internal method to create netmiko connection and
execute command.
"""
try:
net_connect = ConnectHandler(**opt)
cli_output = (net_connect.send_command(command))
except (NetMikoTimeoutException, NetMikoAuthenticationException,) as e:
reason = e.message
raise ValueError('Failed to execute cli on %s due to %s', opt['ip'], reason)
except SSHException as e:
reason = e.message
raise ValueError('Failed to execute cli on %s due to %s', opt['ip'], reason)
except Exception as e:
reason = e.message
raise ValueError('Failed to execute cli on %s due to %s', opt['ip'], reason)
return cli_output
def disconnect(connection):
connection.disconnect()
每个命令输出都在本地缓存一段时间。问题是,有人可能同时建立多个连接,而一个设备有一个连接限制(比如7)。如果调用过多,则会出现SSH连接问题,因为已达到最大连接数
我要做的是在一段指定的时间内(比如说5分钟),在这些API调用中为一个设备保留一个会话,这样我就不会填满设备上的连接
请告知
目前没有回答
相关问题 更多 >
编程相关推荐