[问题] ncclient的问题

楼主: VivianAnn (薇薇安安)   2022-04-29 16:12:06
hi,一直以来感谢版友热心的回答
本人工作上要使用ncclient这个library,不知这里有没有人研究过
我的问题是,我现在要用ncclient建立一个 NETCONF 的session到远端机器
以下是部份code:
from ncclient import manager
import unittest
conn = manager.connect(host=***, username=***, password=***)
with conn.locked(target='running'):
conn.discard_changes()
suite = unittest.TestSuite()
suite.addTest(...)
suite.addTest(...)
unittest.TextTestRunner(verbosity=2).run(suite)
如果不用conn.locked (session不lock),则运行上没有问题
有lock的话,在某个test中会出现以下错误信息:
ncclient.operations,rpc.RPCError: Module "gold-storm" is DS-locked by 8738585
代表另有一个session已经lock住这个module,我必须要得到这个session的id并删除之
然而,我用session_id的方法查到都是三个数字,比如:290
这个8738585不知是怎么来的
先感谢各位愿意看完,我要先休息了,描述得不够清楚的地方请多包涵
作者: Hsins (翔)   2022-04-30 16:10:00
你应该先说一下 session_id 怎么查的
楼主: VivianAnn (薇薇安安)   2022-04-30 23:51:00
楼上,conn.session_id
作者: Hsins (翔)   2022-05-01 00:15:00
不知道为什么你的 sessionId 都是三位数,这不太合理…另外你 conn 拿到的 session 是当前的,不代表 locked 的也是当前 client 的
楼主: VivianAnn (薇薇安安)   2022-05-01 00:26:00
Hsin, 你用session_id查到的是七位数吗
作者: Hsins (翔)   2022-05-01 00:28:00
他的位数没有固定呀,我拿到的是四位数,但你看其他文件也有超过七位数的状况
楼主: VivianAnn (薇薇安安)   2022-05-01 00:29:00
我是想用conn.kill_session()把那个妨碍我的session删除但我发现conn.kill_session(8738535) 不work
作者: Hsins (翔)   2022-05-01 00:38:00
的确可以这样杀,但原始码里说 kill_session() 只能杀 NETCONF session,不确定你拿到那个七位数的 session 是不是来自 NON-NETCONF 的…没有其他错误讯息了吗?有没有试过去你的 host 上面查看 log?
楼主: VivianAnn (薇薇安安)   2022-05-01 17:21:00
这是我在server端的log:https://controlc.com/8ad5af85看到的session_id是368,请问有办法判断是否为netconf session或non-netconf session在干扰吗?
作者: Hsins (翔)   2022-05-01 23:10:00
这我就不清楚了,如果是可以的话,我会先将 server 端重新打开一次,纪录当下的 session 再由 client 连线去排查
楼主: VivianAnn (薇薇安安)   2022-05-01 23:53:00
可是不是要先让client和server连线才有session吗?
作者: mikemike1021 (mike)   2022-05-02 06:23:00
如果只有一个测试也会错吗?再猜是不是 unittest 造成的
楼主: VivianAnn (薇薇安安)   2022-05-02 09:56:00
只有一个也会错
作者: lycantrope (阿宽)   2022-05-02 10:40:00
很像conn锁住,unitest又创新session就无法存取了log也有写最早create的session锁住所以后面模组无法存取
楼主: VivianAnn (薇薇安安)   2022-05-03 14:54:00
The unittest did not create a new session and a newlock. Below is how I list current active sessionsand locks:

Links booklink

Contact Us: admin [ a t ] ucptt.com