@@ -360,8 +360,10 @@ def parse_cpg(cpg, hname):
360
360
bgp_session = bgp_sessions [peer ]
361
361
if hostname .lower () == bgp_session ['name' ].lower ():
362
362
bgp_session ['asn' ] = asn
363
+ bgp_monitors = { key : bgp_sessions [key ] for key in bgp_sessions if bgp_sessions [key ].has_key ('asn' ) and bgp_sessions [key ]['name' ] == 'BGPMonitor' }
363
364
bgp_sessions = { key : bgp_sessions [key ] for key in bgp_sessions if bgp_sessions [key ].has_key ('asn' ) and int (bgp_sessions [key ]['asn' ]) != 0 }
364
- return bgp_sessions , myasn , bgp_peers_with_range
365
+
366
+ return bgp_sessions , myasn , bgp_peers_with_range , bgp_monitors
365
367
366
368
367
369
def parse_meta (meta , hname ):
@@ -421,6 +423,7 @@ def parse_xml(filename, platform=None, port_config_file=None):
421
423
u_devices = None
422
424
hwsku = None
423
425
bgp_sessions = None
426
+ bgp_monitors = []
424
427
bgp_asn = None
425
428
intfs = None
426
429
vlan_intfs = None
@@ -464,7 +467,7 @@ def parse_xml(filename, platform=None, port_config_file=None):
464
467
if child .tag == str (QName (ns , "DpgDec" )):
465
468
(intfs , lo_intfs , mgmt_intf , vlans , vlan_members , pcs , pc_members , acls ) = parse_dpg (child , hostname )
466
469
elif child .tag == str (QName (ns , "CpgDec" )):
467
- (bgp_sessions , bgp_asn , bgp_peers_with_range ) = parse_cpg (child , hostname )
470
+ (bgp_sessions , bgp_asn , bgp_peers_with_range , bgp_monitors ) = parse_cpg (child , hostname )
468
471
elif child .tag == str (QName (ns , "PngDec" )):
469
472
(neighbors , devices , console_dev , console_port , mgmt_dev , mgmt_port , port_speed_png , console_ports ) = parse_png (child , hostname )
470
473
elif child .tag == str (QName (ns , "UngDec" )):
@@ -485,6 +488,7 @@ def parse_xml(filename, platform=None, port_config_file=None):
485
488
'type' : current_device ['type' ]
486
489
}}
487
490
results ['BGP_NEIGHBOR' ] = bgp_sessions
491
+ results ['BGP_MONITORS' ] = bgp_monitors
488
492
results ['BGP_PEER_RANGE' ] = bgp_peers_with_range
489
493
if mgmt_routes :
490
494
# TODO: differentiate v4 and v6
0 commit comments