diff --git a/checks/cisco_bgp_peer b/checks/cisco_bgp_peer index afad587218fa7fb89b3b871d83c4db1ae4b28b23..cc5fdb68c760bce5405425b02137fb2fee82972d 100644 --- a/checks/cisco_bgp_peer +++ b/checks/cisco_bgp_peer @@ -277,28 +277,29 @@ def parse_cisco_bgp_peer(info): oid_end, addrfamilyname, acceptedprefixes, deniedprefixes, prefixadminlimit, prefixthreshold, \ prefixclearthreshold, advertisedprefixes, suppressedprefixes, withdrawnprefixes = entry - remoteaddr = cisco_bgp_get_peer(entry[0]) - peer = { - 'remoteaddr': remoteaddr, - 'addrfamilyname': addrfamilyname - } - - for key, value in [ - ('prefixadminlimit', prefixadminlimit), - ('prefixthreshold', prefixthreshold), - ('prefixclearthreshold', prefixclearthreshold), - ('acceptedprefixes', acceptedprefixes), - ('advertisedprefixes', advertisedprefixes), - ('deniedprefixes', deniedprefixes), - ('suppressedprefixes', suppressedprefixes), - ('withdrawnprefixes', withdrawnprefixes), - ]: - try: - peer[key] = int(value) - except ValueError: - pass + if not oid_end == '': + remoteaddr = cisco_bgp_get_peer(entry[0]) + peer = { + 'remoteaddr': remoteaddr, + 'addrfamilyname': addrfamilyname + } - peer_prefixes.update({'%s %s' % (remoteaddr, addrfamilyname): peer}) + for key, value in [ + ('prefixadminlimit', prefixadminlimit), + ('prefixthreshold', prefixthreshold), + ('prefixclearthreshold', prefixclearthreshold), + ('acceptedprefixes', acceptedprefixes), + ('advertisedprefixes', advertisedprefixes), + ('deniedprefixes', deniedprefixes), + ('suppressedprefixes', suppressedprefixes), + ('withdrawnprefixes', withdrawnprefixes), + ]: + try: + peer[key] = int(value) + except ValueError: + pass + + peer_prefixes.update({'%s %s' % (remoteaddr, addrfamilyname): peer}) # workaround: get remote ip from cbgpPeer2Entry if cbgpPeer2AddrFamilyName is missing :-( elif len(cbgpPeer2Entry) > 0: @@ -317,34 +318,35 @@ def parse_cisco_bgp_peer(info): outupdates, intotalmessages, outtotalmessages, lasterror, fsmestablishedtransitions, fsmestablishedtime, \ inupdateelapsedtime, lasterrortxt, prevstate = entry - peer = {'remoteaddr': cisco_bgp_get_peer(oid_end), - 'localaddr': bgp_render_ip_address(localaddr), - 'localid': localidentifier, - 'remoteid': remoteidentifier, - 'lasterror': cisco_bgp_errors(lasterror), - 'inupdateelapsedtime': inupdateelapsedtime, - 'lasterrortxt': lasterrortxt, - 'prevstate': int(prevstate), - } + if not oid_end == '': + peer = {'remoteaddr': cisco_bgp_get_peer(oid_end), + 'localaddr': bgp_render_ip_address(localaddr), + 'localid': localidentifier, + 'remoteid': remoteidentifier, + 'lasterror': cisco_bgp_errors(lasterror), + 'inupdateelapsedtime': inupdateelapsedtime, + 'lasterrortxt': lasterrortxt, + 'prevstate': int(prevstate), + } - for key, value in [ - ('state', state), - ('adminstate', adminstatus), - ('localas', localas), - ('remoteas', remoteas), - ('inupdates', inupdates), - ('outupdates', outupdates), - ('intotalmessages', intotalmessages), - ('outtotalmessages', outtotalmessages), - ('fsmestablishedtransitions', fsmestablishedtransitions), - ('fsmestablishedtime', fsmestablishedtime), - ]: - try: - peer[key] = int(value) - except ValueError: - pass + for key, value in [ + ('state', state), + ('adminstate', adminstatus), + ('localas', localas), + ('remoteas', remoteas), + ('inupdates', inupdates), + ('outupdates', outupdates), + ('intotalmessages', intotalmessages), + ('outtotalmessages', outtotalmessages), + ('fsmestablishedtransitions', fsmestablishedtransitions), + ('fsmestablishedtime', fsmestablishedtime), + ]: + try: + peer[key] = int(value) + except ValueError: + pass - peer_table.update({'%s' % cisco_bgp_get_peer(oid_end): peer}) + peer_table.update({'%s' % cisco_bgp_get_peer(oid_end): peer}) return [peer_prefixes, peer_table]