[問題] 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