netcmd/ldapcmp: avoid list comprehension in for loop
authorJoe Guo <joeg@catalyst.net.nz>
Sun, 28 Oct 2018 21:16:02 +0000 (10:16 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 21 Nov 2018 06:46:19 +0000 (07:46 +0100)
The list comprehension will repeat for each item.
For large database, this make the command freeze.

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>
python/samba/netcmd/ldapcmp.py

index 9bfa8531e81f2d2e37a70a057d1baf46a872ffa0..51f3c7dea540bd5bb95d44e6284182308bfaa020 100644 (file)
@@ -751,9 +751,13 @@ class LDAPBundle(object):
         # It does not matter if they are in the same DC, in two DC in one domain or in two
         # different domains.
         if self.search_scope != SCOPE_BASE:
+
+            self_dns = [q.upper() for q in self.dn_list]
+            other_dns = [q.upper() for q in other.dn_list]
+
             title = "\n* DNs found only in %s:" % self.con.host
             for x in self.dn_list:
-                if not x.upper() in [q.upper() for q in other.dn_list]:
+                if not x.upper() in other_dns:
                     if title and not self.skip_missing_dn:
                         self.log(title)
                         title = None
@@ -764,7 +768,7 @@ class LDAPBundle(object):
             #
             title = "\n* DNs found only in %s:" % other.con.host
             for x in other.dn_list:
-                if not x.upper() in [q.upper() for q in self.dn_list]:
+                if not x.upper() in self_dns:
                     if title and not self.skip_missing_dn:
                         self.log(title)
                         title = None