看板 Python 關於我們 聯絡資訊
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不知是怎麼來的 先感謝各位願意看完,我要先休息了,描述得不夠清楚的地方請多包涵 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 108.254.89.199 (美國) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1651219928.A.C97.html
Hsins: 你應該先說一下 session_id 怎麼查的 04/30 16:10
VivianAnn: 樓上,conn.session_id 04/30 23:51
Hsins: 不知道為什麼你的 sessionId 都是三位數,這不太合理… 05/01 00:15
Hsins: 另外你 conn 拿到的 session 是當前的,不代表 locked 的也 05/01 00:26
Hsins: 是當前 client 的 05/01 00:26
VivianAnn: Hsin, 你用session_id查到的是七位數嗎 05/01 00:26
Hsins: 他的位數沒有固定呀,我拿到的是四位數,但你看其他文件也 05/01 00:28
Hsins: 有超過七位數的狀況 05/01 00:28
VivianAnn: 我是想用conn.kill_session()把那個妨礙我的session刪 05/01 00:29
VivianAnn: 除 05/01 00:29
VivianAnn: 但我發現conn.kill_session(8738535) 不work 05/01 00:32
Hsins: 的確可以這樣殺,但原始碼裡說 kill_session() 只能殺 NETC 05/01 00:38
Hsins: ONF session,不確定你拿到那個七位數的 session 是不是來 05/01 00:38
Hsins: 自 NON-NETCONF 的… 05/01 00:38
Hsins: 沒有其他錯誤訊息了嗎?有沒有試過去你的 host 上面查看 lo 05/01 00:47
Hsins: g? 05/01 00:47
VivianAnn: 這是我在server端的log:https://controlc.com/8ad5af85 05/01 17:21
VivianAnn: 看到的session_id是368,請問有辦法判斷是否為 05/01 17:24
VivianAnn: netconf session或non-netconf session在干擾嗎? 05/01 17:25
Hsins: 這我就不清楚了,如果是可以的話,我會先將 server 端重新 05/01 23:10
Hsins: 打開一次,紀錄當下的 session 再由 client 連線去排查 05/01 23:10
VivianAnn: 可是不是要先讓client和server連線才有session嗎? 05/01 23:53
mikemike1021: 如果只有一個測試也會錯嗎?再猜是不是 unittest 造 05/02 06:23
mikemike1021: 成的 05/02 06:23
VivianAnn: 只有一個也會錯 05/02 09:56
lycantrope: 很像conn鎖住,unitest又創新session就無法存取了 05/02 10:40
lycantrope: log也有寫最早create的session鎖住所以後面模組無法 05/02 10:42
lycantrope: 存取 05/02 10:43
VivianAnn: The unittest did not create a new session and a new 05/03 14:54
VivianAnn: lock. Below is how I list current active sessions 05/03 14:55
VivianAnn: and locks: 05/03 14:55
NETCONF request (sent right after I lock the running datastore): <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <datastores/> <sessions/> <statistics/> </netconf-state> NETCONF response: <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <netconf-state xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"> <datastores> <datastore> <name>running</name> <locks> <global-lock> <locked-by-session>0</locked-by-session> <locked-time>1970-01-01T01:00:00+01:00</locked-time> </global-lock> </locks> </datastore> <datastore> <name>startup</name> </datastore> <datastore> <name>candidate</name> </datastore> </datastores> <sessions> <session> <session-id>390</session-id> <transport>netconf-ssh</transport> <username>root</username> <source-host>10.42.0.91</source-host> <login-time>2019-03-10T11:59:53+01:00</login-time> <in-rpcs>2</in-rpcs> <in-bad-rpcs>0</in-bad-rpcs> <out-rpc-errors>0</out-rpc-errors> <out-notifications>0</out-notifications> </session> </netconf-state> </data> ※ 編輯: VivianAnn (168.127.213.159 美國), 05/03/2022 14:58:54