KCC: colour dsa dot graphs, and plot site edges
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Fri, 20 Mar 2015 02:57:23 +0000 (15:57 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 29 May 2015 04:58:26 +0000 (06:58 +0200)
The red links in the dsa graphs are RODC topology.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/scripting/bin/samba_kcc

index d021493a46e3341bb23b00627af062e003ec869c..c4a81e1dc25ab206d6d1c090ac01636f301a0ed2 100755 (executable)
@@ -1104,6 +1104,17 @@ class KCC(object):
 
         g.connected_vertices = connected_vertices
 
+
+        dot_edges = []
+        for edge in g.edges:
+            for a, b in itertools.combinations(edge.vertices, 2):
+                dot_edges.append((a.site.site_dnstr, b.site.site_dnstr))
+        verify_properties = ()
+        verify_and_dot('site_edges', dot_edges, directed=False, label=self.my_dsa_dnstr,
+                       properties=verify_properties, debug=DEBUG, verify=opts.verify,
+                       dot_files=opts.dot_files)
+
+
         return g
 
     def get_bridgehead(self, site, part, transport, partial_ok, detect_failed):
@@ -2520,19 +2531,23 @@ class KCC(object):
 
             if opts.verify or opts.dot_files:
                 dot_edges = []
-                colours = []
+                dot_vertices = []
+                edge_colours = []
+
                 for site in self.site_table.values():
                     for dsa in site.dsa_table.values():
+                        dot_vertices.append(dsa.dsa_dnstr)
                         for con in dsa.connect_table.values():
                             if con.is_rodc_topology():
-                                colours.append('red')
+                                edge_colours.append('red')
                             else:
-                                colours.append('blue')
+                                edge_colours.append('blue')
                             dot_edges.append((dsa.dsa_dnstr, con.from_dnstr))
                 verify_properties = ('connected', 'forest_of_rings')
                 verify_and_dot('dsa_final', dot_edges, label=self.my_dsa_dnstr,
                                properties=verify_properties, debug=DEBUG, verify=opts.verify,
-                               dot_files=opts.dot_files, directed=True, edge_colors=colours)
+                               dot_files=opts.dot_files, directed=True, edge_colors=edge_colours,
+                )