pvl.hosts-graph: --graph-brige-unknown and fixup --graph-lldp-unknown logging
authorTero Marttila <terom@paivola.fi>
Mon, 31 Mar 2014 19:15:44 +0300
changeset 417 75bbfb05fbf3
parent 416 fb0fd4ac0168
child 418 9d243809532d
pvl.hosts-graph: --graph-brige-unknown and fixup --graph-lldp-unknown logging
bin/pvl.hosts-graph
--- a/bin/pvl.hosts-graph	Mon Mar 31 18:44:26 2014 +0300
+++ b/bin/pvl.hosts-graph	Mon Mar 31 19:15:44 2014 +0300
@@ -237,15 +237,18 @@
 
                         log.info("%s:%s: guessing lldp host %s -> %s (%s)", host, port, remote_lldp, remote_host, remote_label)
 
-                    else :
+                    elif options.graph_lldp_unknown :
                         log.warning("%s:%s: unknown lldp remote %s (%s)", host, port, remote_lldp, remote_label)
                         
-                        if options.graph_lldp_unknown :
-                            # by chassis id
-                            remote_node = remote_lldp
-                            remote_host = None
-                        else :
-                            remote_node = remote_host = None
+                        # by chassis id
+                        remote_node = remote_lldp
+                        remote_host = None
+
+                    else :
+                        log.info("%s:%s: unknown lldp remote %s (%s)", host, port, remote_lldp, remote_label)
+                        
+                        remote_node = remote_host = None
+
                     
                     if not remote_node :
                         continue
@@ -467,17 +470,25 @@
                         remote_label = remote_host.location or str(remote_host)
 
                         log.debug("%s:%s/%s bridge %s = %s (%s)", host, port, vlan, ethernet, remote_host, remote_label)
-                    else :
-                        remote_node = remote_host = None
 
-                        log.debug("%s:%s/%s bridge %s ?", host, port, vlan, ethernet)
-                    
-                    if not remote_host :
+                    elif options.graph_bridge_unknown :
+                        log.warning("%s:%s/%s bridge unknown host %s", host, port, vlan, ethernet)
+
+                        remote_label = remote_node = ethernet
+
+                        nodes[remote_node] = remote_label
+                        
+                        remote_host = None
+
+                    else :
+                        log.info("%s:%s/%s bridge unknown host %s", host, port, vlan, ethernet)
+
                         continue
                 
                     # TODO: also handled multiple IP/ethers for the same host
-                    elif remote_host == host and local_node != host :
+                    if remote_host == host and local_node != host :
                         log.debug("%s:%s: skip remote-mapped self", host, port)
+                        continue
 
                     if remote_node not in nodes :
                         log.debug("%s:%s: lazy-add remote %s (%s)", host, port, remote_node, remote_label)
@@ -502,7 +513,7 @@
                     if remote_port :
                         reverse = (remote_node, remote_port, None, local_node)
 
-                        log.info("%s:%s bridge <-> %s:%s", local_node, local_port, remote_port, remote_host)
+                        log.info("%s:%s bridge <-> %s:%s", local_node, local_port, remote_port, remote_node)
 
                         # fill in remote_port for bidirectional link
                         del links[reverse]
@@ -510,7 +521,7 @@
                         links[reverse] = link_vlans
 
                     else :
-                        log.info("%s:%s bridge -> %s", local_node, local_port, remote_host)
+                        log.info("%s:%s bridge -> %s", local_node, local_port, remote_node)
 
                         links[forward] = link_vlans
         
@@ -680,6 +691,9 @@
     parser.add_option('--graph-bridge', action='store_true',
             help="Graph bridge forwarding database links")
 
+    parser.add_option('--graph-bridge-unknown', action='store_true',
+            help="Graph unknown bridge forwarding databse hosts")
+
 
     parser.add_option('--graph-dot', metavar='FILE',
             help="Output .dot graph data to file")