uptodateness: extract get_utdv_max_distance
authorJoe Guo <joeg@catalyst.net.nz>
Wed, 3 Oct 2018 10:45:12 +0000 (23:45 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 18 Oct 2018 04:15:25 +0000 (06:15 +0200)
To avoid returning 2 values from get_utdv_distances.

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 98d33dbba56de550e3c536a6fce3c034b773869b..05fdc013aa18bc288c3e23b8c5f8b82f7a17c37d 100644 (file)
@@ -46,6 +46,7 @@ from samba.uptodateness import (
     get_utdv,
     get_utdv_edges,
     get_utdv_distances,
+    get_utdv_max_distance,
 )
 
 COMMON_OPTIONS = [
@@ -692,7 +693,9 @@ class cmd_uptodateness(GraphCommand):
 
             utdv_edges = get_utdv_edges(local_kcc, dsas, part_dn, lp, creds)
 
-            distances, max_distance = get_utdv_distances(utdv_edges, dsas)
+            distances = get_utdv_distances(utdv_edges, dsas)
+
+            max_distance = get_utdv_max_distance(distances)
 
             digits = min(max_digits, len(str(max_distance)))
             if digits < 1:
index b3468639e92d6fbac9c1dc901d3e695373847959..e5e0fc30a9b84fc2e9dc3e0fc41104bf4f243363 100644 (file)
@@ -117,7 +117,6 @@ def get_utdv_edges(local_kcc, dsas, part_dn, lp, creds):
 
 def get_utdv_distances(utdv_edges, dsas):
     distances = {}
-    max_distance = 0
     for dn1 in dsas:
         try:
             peak = utdv_edges[dn1][dn1]
@@ -130,12 +129,18 @@ def get_utdv_distances(utdv_edges, dsas):
                 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
+    return distances
+
+
+def get_utdv_max_distance(distances):
+    max_distance = 0
+    for vector in distances.values():
+        for distance in vector.values():
+            max_distance = max(max_distance, distance)
+    return max_distance