uptodateness: extract function get_utdv_distances
authorJoe Guo <joeg@catalyst.net.nz>
Wed, 3 Oct 2018 10:21:11 +0000 (23:21 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 18 Oct 2018 04:15:25 +0000 (06:15 +0200)
Signed-off-by: Joe Guo <joeg@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13658

python/samba/netcmd/visualize.py
python/samba/uptodateness.py

index ae09b4fc353b16c6f213ad382588693b1a1557a1..98d33dbba56de550e3c536a6fce3c034b773869b 100644 (file)
@@ -45,6 +45,7 @@ from samba.uptodateness import (
     get_own_cursor,
     get_utdv,
     get_utdv_edges,
+    get_utdv_distances,
 )
 
 COMMON_OPTIONS = [
@@ -691,28 +692,7 @@ class cmd_uptodateness(GraphCommand):
 
             utdv_edges = get_utdv_edges(local_kcc, dsas, part_dn, lp, creds)
 
-            distances = {}
-            max_distance = 0
-            for dn1 in dsas:
-                try:
-                    peak = utdv_edges[dn1][dn1]
-                except KeyError as e:
-                    peak = 0
-                d = {}
-                distances[dn1] = d
-                for dn2 in dsas:
-                    if dn2 in utdv_edges:
-                        if dn1 in utdv_edges[dn2]:
-                            dist = peak - utdv_edges[dn2][dn1]
-                            d[dn2] = dist
-                            if dist > max_distance:
-                                max_distance = dist
-                        else:
-                            print("Missing dn %s from UTD vector" % dn1,
-                                  file=sys.stderr)
-                    else:
-                        print("missing dn %s from UTD vector list" % dn2,
-                              file=sys.stderr)
+            distances, max_distance = get_utdv_distances(utdv_edges, dsas)
 
             digits = min(max_digits, len(str(max_distance)))
             if digits < 1:
index 834026c8b8f022fc08b5527bb4c4e85705f3ec1d..b3468639e92d6fbac9c1dc901d3e695373847959 100644 (file)
@@ -113,3 +113,29 @@ def get_utdv_edges(local_kcc, dsas, part_dn, lp, creds):
             continue
         utdv_edges[dsa_dn] = remotes
     return utdv_edges
+
+
+def get_utdv_distances(utdv_edges, dsas):
+    distances = {}
+    max_distance = 0
+    for dn1 in dsas:
+        try:
+            peak = utdv_edges[dn1][dn1]
+        except KeyError as e:
+            peak = 0
+        d = {}
+        distances[dn1] = d
+        for dn2 in dsas:
+            if dn2 in utdv_edges:
+                if dn1 in utdv_edges[dn2]:
+                    dist = peak - utdv_edges[dn2][dn1]
+                    d[dn2] = dist
+                    if dist > max_distance:
+                        max_distance = dist
+                else:
+                    print("Missing dn %s from UTD vector" % dn1,
+                          file=sys.stderr)
+            else:
+                print("missing dn %s from UTD vector list" % dn2,
+                      file=sys.stderr)
+    return distances, max_distance