-
Notifications
You must be signed in to change notification settings - Fork 0
wangke1970/yang_parser
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
1. run python3 yang_rfc.py ./bgp/ (generate yang_modules file) or python3 yang_rfc.py (If there are yang_modules file in the directory) 2. out Choice Modeule Name: ['ietf-netconf', 'openconfig-bgp-policy', 'openconfig-inet-types', 'openconfig-bgp-types', 'openconfig-policy-types', 'openconfig-types', 'openconfig-yang-types', 'ietf-inet-types', 'ietf-yang-types', 'ietf-interfaces', 'openconfig-interfaces', 'openconfig-extensions', 'openconfig-bgp', 'openconfig-routing-policy'] module >openconfig-bgp (yang contianer,list,leaf,leaf-list,... tree) openconfig-bgp>* 3、openconfig-bgp>* ....... ....... ├ container use-multiple-paths ->-6438312242391315966 ├ container config ->4874438011303423425 ├ leaf enabled ->-8644924308082446906 ├ container state ├ config false ├ leaf enabled ├ container ebgp ->-73683027755021457 ├ container config ->6271267819966798184 ├ leaf allow-multiple-as ->201404358886246952 ├ leaf maximum-paths ->-7024144332218161246 ├ container state ├ config false ├ leaf allow-multiple-as ├ leaf maximum-paths ├ container ibgp ->-2251363372557777736 ├ container config ->2237497577408369645 ├ leaf maximum-paths ->8891077290169949704 ├ container state ├ config false ├ leaf maximum-paths ├ container apply-policy ->-3688259472857241272 ├ container config ->-542825605681862353 ├ leaf-list import-policy ->202389048834029177 ├ leaf default-import-policy ->1581993182980904389 ├ leaf-list export-policy ->-2822994043534005579 ├ leaf default-export-policy ->8128682493600742992 ├ container state ├ config false ├ leaf-list import-policy ├ leaf default-import-policy ├ leaf-list export-policy ├ leaf default-export-policy ...... (copy paste -3688259472857241272) openconfig-bgp>-3688259472857241272 /openconfig-bgp>-3688259472857241272 ├ container apply-policy ->-3688259472857241272 ├ container config ->-542825605681862353 ├ leaf-list import-policy(path /openconfig-routing-policy:routing-policy/openconfig-routing-policy:policy-definitions/openconfig-routing-policy:policy-definition/openconfig-routing-policy:name) ->202389048834029177 ├ path_point (/openconfig-routing-policy:routing-policy/openconfig-routing-policy:policy-definitions/openconfig-routing-policy:policy-definition[{}]/openconfig-routing-policy:config/openconfig-routing-policy:name) ├ type string ├ ordered-by user ├ leaf default-import-policy ->1581993182980904389 ├ type default-policy-type ├ type enumeration ├ enum ACCEPT_ROUTE ├ enum REJECT_ROUTE ├ default REJECT_ROUTE ├ leaf-list export-policy(path /openconfig-routing-policy:routing-policy/openconfig-routing-policy:policy-definitions/openconfig-routing-policy:policy-definition/openconfig-routing-policy:name) ->-2822994043534005579 ├ path_point (/openconfig-routing-policy:routing-policy/openconfig-routing-policy:policy-definitions/openconfig-routing-policy:policy-definition[{}]/openconfig-routing-policy:config/openconfig-routing-policy:name) ├ type string ├ ordered-by user ├ leaf default-export-policy ->8128682493600742992 ├ type default-policy-type ├ type enumeration ├ enum ACCEPT_ROUTE ├ enum REJECT_ROUTE ├ default REJECT_ROUTE <Node>: oc-bgp:bgp/oc-bgp:peer-groups/oc-bgp:peer-group[{}]/oc-bgp:apply-policy <SubNode>: oc-bgp:config/oc-bgp:import-policy[{}] oc-bgp:config/oc-bgp:default-import-policy oc-bgp:config/oc-bgp:export-policy[{}] oc-bgp:config/oc-bgp:default-export-policy /openconfig-bgp> ([{}] is list or leaf-list) 4、input namespaces /openconfig-bgp>namespaces Show Module Prefix : ['openconfig-bgp'] Namespaces in yang module : {'openconfig-bgp': 'http://openconfig.net/yang/bgp'} Module name to prefix : {'openconfig-bgp': 'oc-bgp'} Add namespace yang nc if need : {'yang':'urn:ietf:params:xml:ns:yang:ietf-yang-types','nc':'urn:ietf:params:xml:ns:netconf:base:1.0'} 5、now use xpath2xml build xml (wangke1970/xpath2xml) #example from xpath2xml import xpath2xml ns = {'yang':'urn:ietf:params:xml:ns:yang:ietf-yang-types','nc':'urn:ietf:params:xml:ns:netconf:base:1.0','oc-bgp':'http://openconfig.net/yang/bgp'} bgp_x = xpath2xml(ns,'nc:rpc') example_str_1 = 'nc:edit-config/nc:config/' + 'oc-bgp:bgp/oc-bgp:peer-groups/oc-bgp:peer-group[0]/oc-bgp:apply-policy/oc-bgp:config' example_str_2 = 'nc:edit-config/nc:config/' + 'oc-bgp:bgp/oc-bgp:peer-groups/oc-bgp:peer-group[1]/oc-bgp:apply-policy/oc-bgp:config' bgp_x.add(example_str_1) bgp_x.add(example_str_2) #注意 oc-bgp:default-import-policy','oc-bgp:export-policy[0]','oc-bgp:export-policy[1]','oc-bgp:default-export-policy' 次序先入的node先生成xml bgp_x.insert(example_str_1,'oc-bgp:import-policy[0]') bgp_x.insert(example_str_1,'oc-bgp:import-policy[1]') bgp_x.inserts(example_str_1,['oc-bgp:default-import-policy','oc-bgp:export-policy[0]','oc-bgp:export-policy[1]','oc-bgp:default-export-policy']) bgp_x.insert(example_str_2,'oc-bgp:import-policy[0]') bgp_x.inserts(example_str_2,['oc-bgp:default-import-policy','oc-bgp:export-policy[0]','oc-bgp:default-export-policy']) print(bgp_x.xml) tree = bgp_x.tree ss = tree.dump print(ss) ######################out############################ <?xml version='1.0' encoding='utf-8'?> <nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:oc-bgp="http://openconfig.net/yang/bgp"><nc:edit-config><nc:config><oc-bgp:bgp><oc-bgp:peer-groups><oc-bgp:peer-group><oc-bgp:apply-policy><oc-bgp:config><oc-bgp:import-policy /><oc-bgp:import-policy /><oc-bgp:default-import-policy /><oc-bgp:export-policy /><oc-bgp:export-policy /><oc-bgp:default-export-policy /></oc-bgp:config></oc-bgp:apply-policy></oc-bgp:peer-group><oc-bgp:peer-group><oc-bgp:apply-policy><oc-bgp:config><oc-bgp:import-policy /><oc-bgp:default-import-policy /><oc-bgp:export-policy /><oc-bgp:default-export-policy /></oc-bgp:config></oc-bgp:apply-policy></oc-bgp:peer-group></oc-bgp:peer-groups></oc-bgp:bgp></nc:config></nc:edit-config></nc:rpc> nc:rpc ├ nc:edit-config ├ nc:config ├ oc-bgp:bgp ├ oc-bgp:peer-groups ├ oc-bgp:peer-group[0] ├ oc-bgp:apply-policy ├ oc-bgp:config ├ oc-bgp:import-policy[0] ├ oc-bgp:import-policy[1] ├ oc-bgp:default-import-policy ├ oc-bgp:export-policy[0] ├ oc-bgp:export-policy[1] ├ oc-bgp:default-export-policy ├ oc-bgp:peer-group[1] ├ oc-bgp:apply-policy ├ oc-bgp:config ├ oc-bgp:import-policy ├ oc-bgp:default-import-policy ├ oc-bgp:export-policy ├ oc-bgp:default-export-policy 6、find node /huawei-mac>find(container global-attribute) H:-5640491272284131244 ➔ P:/huawei-mac:mac/huawei-mac:global-attribute /huawei-mac>
About
yang parser rfc7950
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published