網(wǎng)絡(luò)配置1

隊(duì)列

[if !supportLists]1)????? [endif]離線配置中每個(gè)設(shè)備創(chuàng)建一個(gè)獨(dú)立的隊(duì)列绑嘹,用來(lái)處理報(bào)文的時(shí)序畅卓,由設(shè)備的deviceId作為key值在Map中維護(hù)翁潘,從而使不同的設(shè)備的報(bào)文處理任務(wù)之間沒(méi)有業(yè)務(wù)邏輯上的相互影響趁冈。

[if !supportLists]2)????? [endif]正常流程觸發(fā)的任務(wù)和設(shè)備注冊(cè)觸發(fā)的任務(wù)在隊(duì)列中都是相同的處理,如果設(shè)備注冊(cè)創(chuàng)建OfflineConfigTask時(shí)矾飞,隊(duì)列中已經(jīng)有其他任務(wù)存在一膨,則需等其他任務(wù)都處理完成之后瞒津,才會(huì)處理此任務(wù)啦膜,保證報(bào)文下發(fā)的正確順序,防止后下發(fā)的報(bào)文先到達(dá)設(shè)備裸删,導(dǎo)致出現(xiàn)依賴問(wèn)題八拱。

[if !supportLists]3)????? [endif]Netconf-Plugin層設(shè)備與控制器連接的session有一個(gè)標(biāo)志屬性涯塔,用于標(biāo)識(shí)OfflineConfigTask已處理過(guò)匕荸,即當(dāng)前控制器離線配置庫(kù)中的配置與設(shè)備的配置一致灯萍。之后,正常流程下發(fā)的報(bào)文可以直接下到設(shè)備上每聪。Session創(chuàng)建時(shí)旦棉,此標(biāo)識(shí)屬性為null,OfflineConfigTask處理后药薯,會(huì)為此屬性賦一個(gè)對(duì)象绑洛。當(dāng)正常流程報(bào)文下發(fā)時(shí),如果此屬性為null童本,則不將其下發(fā)到設(shè)備真屯。保證了到達(dá)設(shè)備的報(bào)文順序的正確性。

OnlineConfigTask處理流程

這里只講主體流程穷娱,報(bào)文的處理邏輯之后單獨(dú)講绑蔫。從隊(duì)列冒泡任務(wù)執(zhí)行開(kāi)始

[if !supportLists]1)????? [endif]判斷設(shè)備在線狀態(tài)及配置能否直接下發(fā)

通過(guò)deviceId查找Netconf-Plugin層中控制器與設(shè)備連接的session,及其狀態(tài)屬性status.offlineprocessed泵额。如果session存在配深,且其狀態(tài)屬性status.offlineprocessed不為null,則其結(jié)果為true嫁盲。

[if !supportLists]2)????? [endif]如果判斷結(jié)果為false篓叶,則調(diào)用離線配置庫(kù),將報(bào)文合并到離線配置庫(kù)中羞秤。如果報(bào)文在離線配置中執(zhí)行成功缸托,則將報(bào)文保存到數(shù)據(jù)庫(kù)的離線配置報(bào)文表(db.com_huawei_controller_netconf_proxy_entity_OfflineConfigMsgEntity)中。無(wú)論成功失敗瘾蛋,返回結(jié)果報(bào)文俐镐,并發(fā)送結(jié)果通知

[if !supportLists]3)????? [endif]如果判斷結(jié)果為true,則調(diào)用Netconf-plugin層的接口哺哼,將報(bào)文下發(fā)到設(shè)備佩抹,并用回調(diào)的方式監(jiān)聽(tīng)設(shè)備上的報(bào)文處理結(jié)果奇唤。如果失敗,直接發(fā)送失敗通知匹摇,返回失敗報(bào)文咬扇;如果成功,則調(diào)用離線配置庫(kù)廊勃,將報(bào)文合并到離線配置庫(kù)中懈贺,如果合并失敗,發(fā)送失敗通知返回失敗報(bào)文坡垫,否則發(fā)送成功通知返回成功報(bào)文(此處的成功報(bào)文和通知梭灿,以設(shè)備返回的報(bào)文為根據(jù));如果Netconf-plugin拋出通信異常冰悠,則將設(shè)備突然掉線處理堡妒,走2)的邏輯。

OnlineCopyConfigTask處理流程

這里只講主體流程溉卓,報(bào)文的處理邏輯之后單獨(dú)講皮迟。從隊(duì)列冒泡任務(wù)執(zhí)行開(kāi)始

基本流程與edit-config相似,只是直接下發(fā)到設(shè)備前桑寨,需要先從Netconf-plugin層獲取到設(shè)備的callhome配置伏尼,將其加到copy-config報(bào)文中,以免copy操作將設(shè)備上的配置全部覆蓋尉尾,導(dǎo)致配置異常爆阶。



OfflineConfigTask處理流程

這里只講主體流程,報(bào)文的處理邏輯之后單獨(dú)講沙咏。從隊(duì)列冒泡任務(wù)執(zhí)行開(kāi)始

OfflineConfigTask任務(wù)分三種類(lèi)型辨图,根據(jù)設(shè)備注冊(cè)時(shí)獲取到的啟動(dòng)時(shí)間與數(shù)據(jù)庫(kù)中保存的設(shè)備啟動(dòng)時(shí)間判斷。如果數(shù)據(jù)庫(kù)中設(shè)備啟動(dòng)時(shí)間為null肢藐,則當(dāng)前為設(shè)備第一次與控制器連接故河;如果兩個(gè)時(shí)間不同,則當(dāng)前為設(shè)備重啟后重新連接窖壕;如果兩個(gè)時(shí)間相同忧勿,則當(dāng)前為網(wǎng)絡(luò)中斷重新連接:

1)????? [endif]設(shè)備第一次與控制器連接

[if !supportLists]a)???????[endif]從設(shè)備獲取所有配置

[if !supportLists]b)???????[endif]將設(shè)備配置保存到Netconf-plugin的session中

[if !supportLists]c)????????[endif]從離線配置庫(kù)中獲取所有配置報(bào)文

[if !supportLists]d)???????[endif]將從設(shè)備獲取到的部分配置(目前是netconf-server)杉女,添加到從離線配置庫(kù)獲取到的報(bào)文中

[if !supportLists]e)???????[endif]將報(bào)文下發(fā)設(shè)備(同步離線配置)

[if !supportLists]f)????????[endif]將數(shù)據(jù)庫(kù)離線配置報(bào)文表中所有此設(shè)備的報(bào)文修改為已部署狀態(tài)

[if !supportLists]g)???????[endif]獲取設(shè)備配置

[if !supportLists]h)???????[endif]去掉部分配置(目前是netconf-server)瞻讽,改為edit-config報(bào)文

[if !supportLists]i)?????????[endif]將報(bào)文合并到離線配置庫(kù)(同步設(shè)備配置)

[if !supportLists]j)?????????[endif]修改Netconf-plugin層session的狀態(tài)屬性,標(biāo)識(shí)離線庫(kù)與設(shè)備的配置已一致

[if !supportLists]k)???????[endif]發(fā)送通知熏挎,返回結(jié)果報(bào)文

以上各步都是在上步成功的基礎(chǔ)上執(zhí)行下一步速勇,如果某一步失敗,則直接發(fā)送失敗通知坎拐,返回失敗報(bào)文

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末烦磁,一起剝皮案震驚了整個(gè)濱河市养匈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌都伪,老刑警劉巖呕乎,帶你破解...
    沈念sama閱讀 212,080評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異陨晶,居然都是意外死亡猬仁,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)先誉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)湿刽,“玉大人,你說(shuō)我怎么就攤上這事褐耳≌┕耄” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,630評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵铃芦,是天一觀的道長(zhǎng)雅镊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)刃滓,這世上最難降的妖魔是什么漓穿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,554評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮注盈,結(jié)果婚禮上晃危,老公的妹妹穿的比我還像新娘。我一直安慰自己老客,他們只是感情好僚饭,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,662評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著胧砰,像睡著了一般鳍鸵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尉间,一...
    開(kāi)封第一講書(shū)人閱讀 49,856評(píng)論 1 290
  • 那天偿乖,我揣著相機(jī)與錄音,去河邊找鬼哲嘲。 笑死贪薪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的眠副。 我是一名探鬼主播画切,決...
    沈念sama閱讀 39,014評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼囱怕!你這毒婦竟也來(lái)了霍弹?” 一聲冷哼從身側(cè)響起毫别,我...
    開(kāi)封第一講書(shū)人閱讀 37,752評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎典格,沒(méi)想到半個(gè)月后岛宦,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,212評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡耍缴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,541評(píng)論 2 327
  • 正文 我和宋清朗相戀三年恋博,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片私恬。...
    茶點(diǎn)故事閱讀 38,687評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡债沮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出本鸣,到底是詐尸還是另有隱情疫衩,我是刑警寧澤,帶...
    沈念sama閱讀 34,347評(píng)論 4 331
  • 正文 年R本政府宣布荣德,位于F島的核電站闷煤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏涮瞻。R本人自食惡果不足惜鲤拿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,973評(píng)論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望署咽。 院中可真熱鬧近顷,春花似錦、人聲如沸宁否。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,777評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)慕匠。三九已至饱须,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間台谊,已是汗流浹背蓉媳。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,006評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锅铅,地道東北人酪呻。 一個(gè)月前我還...
    沈念sama閱讀 46,406評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像狠角,于是被迫代替她去往敵國(guó)和親号杠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,576評(píng)論 2 349