1、? [endif]業(yè)務(wù)適配(business.yang)
[if !supportLists]l?[endif]定義業(yè)務(wù)適配模型,普通java
bean,該bean的結(jié)構(gòu)作為配置框架輸入的結(jié)構(gòu),配置框架會(huì)將輸入的json字符串反序列化為bean的實(shí)例。
[if !supportLists]l?[endif]添加業(yè)務(wù)適配yang模型,該yang模型作為配置框架存儲(chǔ)數(shù)據(jù)的基本結(jié)構(gòu),下圖展示幾種模型的關(guān)系。
[if !supportLists]l?[endif]添加業(yè)務(wù)適配處理類(lèi),繼承自AbstractHandler,按照業(yè)務(wù)需要覆蓋必要方法,核心就是上圖中紅色的方法。
[if !supportLists]l?[endif]添加設(shè)備初始能力記錄
t_campus_cfgframe_capability
2、? [endif]網(wǎng)元適配(adapter.yang)
[if !supportLists]l?[endif]定義設(shè)備適配yang模型,該模型作為設(shè)備適配的底層模型,需要和設(shè)備的yang模型結(jié)構(gòu)保持一致,方便生成報(bào)文,該模型中所有節(jié)點(diǎn)的名稱都不能重復(fù),否則生成報(bào)文時(shí)取值會(huì)出現(xiàn)異常。
[if !supportLists]l?[endif]添加設(shè)備適配處理類(lèi),該類(lèi)繼承自AbstracterInterpreter,并且必須以ConfigInterpreter結(jié)尾,該類(lèi)的主要方法是將業(yè)務(wù)適配yang模型數(shù)據(jù)轉(zhuǎn)換為設(shè)備適配yang模型數(shù)據(jù),接口申明如下
??? DataObject convertToAdapterConfig(DataObjectissuedConfig) throws BaseException;
[if !supportLists]l?[endif]定義設(shè)備適配映射文件,該文件已-adapter.xml結(jié)尾。
3、? [endif]報(bào)文映射
報(bào)文映射的主要原理是根據(jù)DataObject生成json數(shù)據(jù),然后把json生成xml文件,最后根據(jù)目標(biāo)yang文件的模型名稱和字段映射關(guān)系將xml文件填入netconf報(bào)文中。