[PATCH] remove "ExistingBackend" provision backend and 28 other python patches

Douglas Bagnall douglas.bagnall at catalyst.net.nz
Sun Oct 28 21:39:04 UTC 2018


We have this class in the provision code called "ExistingBackend" which
seems so full of unrunnable code that I deduce that nobody ever uses it.
So let's remove it.

I have hidden that patch in the middle of a series of trivial python patches
that fix basic errors (like the number of "%s"s not matching the number of
format arguments), so that anyone who wants to bikeshed it will have to review
the lot. If you don't want to bikeshed, please review anyway!

cheers,
Douglas
-------------- next part --------------
From d4a92547719d2683693b78a43580b4ba3afeca45 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 20:36:57 +1300
Subject: [PATCH 01/29] python: PY3 Exceptions don't have .message

but str(e) is the same as str(e.message), so we can use that
on 2 and 3.

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/netcmd/ou.py   | 14 +++++++-------
 python/samba/netcmd/user.py |  2 +-
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/python/samba/netcmd/ou.py b/python/samba/netcmd/ou.py
index 0224701b69e..f4e01838e6e 100644
--- a/python/samba/netcmd/ou.py
+++ b/python/samba/netcmd/ou.py
@@ -73,12 +73,12 @@ class cmd_rename(Command):
             full_old_ou_dn = samdb.normalize_dn_in_domain(old_ou_dn)
         except Exception as e:
             raise CommandError('Invalid old_ou_dn "%s": %s' %
-                               (old_ou_dn, e.message))
+                               (old_ou_dn, e))
         try:
             full_new_ou_dn = samdb.normalize_dn_in_domain(new_ou_dn)
         except Exception as e:
             raise CommandError('Invalid new_ou_dn "%s": %s' %
-                               (new_ou_dn, e.message))
+                               (new_ou_dn, e))
 
         try:
             res = samdb.search(base=full_old_ou_dn,
@@ -138,12 +138,12 @@ class cmd_move(Command):
             full_old_ou_dn = samdb.normalize_dn_in_domain(old_ou_dn)
         except Exception as e:
             raise CommandError('Invalid old_ou_dn "%s": %s' %
-                               (old_ou_dn, e.message))
+                               (old_ou_dn, e))
         try:
             full_new_parent_dn = samdb.normalize_dn_in_domain(new_parent_dn)
         except Exception as e:
             raise CommandError('Invalid new_parent_dn "%s": %s' %
-                               (new_parent_dn, e.message))
+                               (new_parent_dn, e))
 
         full_new_ou_dn = ldb.Dn(samdb, str(full_old_ou_dn))
         full_new_ou_dn.remove_base_components(len(full_old_ou_dn) - 1)
@@ -203,7 +203,7 @@ class cmd_create(Command):
         try:
             full_ou_dn = samdb.normalize_dn_in_domain(ou_dn)
         except Exception as e:
-            raise CommandError('Invalid ou_dn "%s": %s' % (ou_dn, e.message))
+            raise CommandError('Invalid ou_dn "%s": %s' % (ou_dn, e))
 
         try:
             samdb.create_ou(full_ou_dn, description=description)
@@ -255,7 +255,7 @@ class cmd_listobjects(Command):
         try:
             full_ou_dn = samdb.normalize_dn_in_domain(ou_dn)
         except Exception as e:
-            raise CommandError('Invalid ou_dn "%s": %s' % (ou_dn, e.message))
+            raise CommandError('Invalid ou_dn "%s": %s' % (ou_dn, e))
 
         minchilds = 0
         scope = ldb.SCOPE_ONELEVEL
@@ -369,7 +369,7 @@ class cmd_delete(Command):
         try:
             full_ou_dn = samdb.normalize_dn_in_domain(ou_dn)
         except Exception as e:
-            raise CommandError('Invalid ou_dn "%s": %s' % (ou_dn, e.message))
+            raise CommandError('Invalid ou_dn "%s": %s' % (ou_dn, e))
 
         controls = []
         if force_subtree_delete:
diff --git a/python/samba/netcmd/user.py b/python/samba/netcmd/user.py
index 87726d4636e..435bb639702 100644
--- a/python/samba/netcmd/user.py
+++ b/python/samba/netcmd/user.py
@@ -2616,7 +2616,7 @@ class cmd_user_move(Command):
             full_new_parent_dn = samdb.normalize_dn_in_domain(new_parent_dn)
         except Exception as e:
             raise CommandError('Invalid new_parent_dn "%s": %s' %
-                               (new_parent_dn, e.message))
+                               (new_parent_dn, e))
 
         full_new_user_dn = ldb.Dn(samdb, str(user_dn))
         full_new_user_dn.remove_base_components(len(user_dn) - 1)
-- 
2.11.0


From 31f6069be430da145dbe085472939446a332b22c Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 20:08:31 +1300
Subject: [PATCH 02/29] dbcheck: fix message formatting

previously these would have raised an exception

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/dbchecker.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/python/samba/dbchecker.py b/python/samba/dbchecker.py
index dcdbb893095..478d79119e9 100644
--- a/python/samba/dbchecker.py
+++ b/python/samba/dbchecker.py
@@ -1065,7 +1065,7 @@ newSuperior: %s""" % (str(from_dn), str(to_rdn), str(to_base)))
             return (missing_forward_links, error_count)
 
         if forward_syntax != ldb.SYNTAX_DN:
-            self.report("Not checking for missing forward links for syntax: %s",
+            self.report("Not checking for missing forward links for syntax: %s" %
                         forward_syntax)
             return (missing_forward_links, error_count)
 
@@ -1930,7 +1930,7 @@ newSuperior: %s""" % (str(from_dn), str(to_rdn), str(to_base)))
         target = self.samdb.get_dsServiceName()
 
         if self.samdb.am_rodc():
-            self.report('Not fixing %s for the RODC' % (attr, obj.dn))
+            self.report('Not fixing %s %s for the RODC' % (attr, obj.dn))
             return
 
         if not self.confirm_all('Add yourself to the replica locations for %s?'
-- 
2.11.0


From ac903b1593da741f7503569c8fec75f42a8517e0 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 20:18:03 +1300
Subject: [PATCH 03/29] dbcheck: fix function call (right arguments)

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/dbchecker.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/python/samba/dbchecker.py b/python/samba/dbchecker.py
index 478d79119e9..27422bb5247 100644
--- a/python/samba/dbchecker.py
+++ b/python/samba/dbchecker.py
@@ -2203,7 +2203,7 @@ newSuperior: %s""" % (str(from_dn), str(to_rdn), str(to_base)))
                 elif len(obj[attrname][0]) % 2 != 0:
                     # This is a value that isn't even in length
                     error_count += 1
-                    self.err_odd_userParameters(obj, attrname, obj[attrname])
+                    self.err_odd_userParameters(obj, attrname)
                     continue
 
                 elif obj[attrname][0][1] == b'\x00'[0] and obj[attrname][0][2] == b'\x00'[0] and obj[attrname][0][3] == b'\x00'[0] and obj[attrname][0][4] != b'\x00'[0] and obj[attrname][0][5] == b'\x00'[0]:
-- 
2.11.0


From 607b3832d407e98504901dc8ae0179d17a490499 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 20:20:55 +1300
Subject: [PATCH 04/29] samba-tool: let self.usage() find argv[0] by itself

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/netcmd/__init__.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/python/samba/netcmd/__init__.py b/python/samba/netcmd/__init__.py
index d73ffe9c745..cb22b5dc1b0 100644
--- a/python/samba/netcmd/__init__.py
+++ b/python/samba/netcmd/__init__.py
@@ -92,7 +92,7 @@ class Command(object):
         self.outf = outf
         self.errf = errf
 
-    def usage(self, prog, *args):
+    def usage(self, prog=None):
         parser, _ = self._create_parser(prog)
         parser.print_usage()
 
@@ -129,7 +129,7 @@ class Command(object):
         if force_traceback or samba.get_debug_level() >= 3:
             traceback.print_tb(etraceback, file=self.errf)
 
-    def _create_parser(self, prog, epilog=None):
+    def _create_parser(self, prog=None, epilog=None):
         parser = optparse.OptionParser(
             usage=self.synopsis,
             description=self.full_description,
-- 
2.11.0


From adb4f9c111179583d60830b542fbf2425fa83302 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 20:40:16 +1300
Subject: [PATCH 05/29] samba-tool user: fix message format

There were 2 % formats and 3 arguments.
Also reformat for line length

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/netcmd/user.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/python/samba/netcmd/user.py b/python/samba/netcmd/user.py
index 435bb639702..be71d202bbf 100644
--- a/python/samba/netcmd/user.py
+++ b/python/samba/netcmd/user.py
@@ -2083,9 +2083,10 @@ samba-tool user syncpasswords --terminate \\
                         break
                     time.sleep(1)
                 if not got_exclusive:
-                    log_msg("update_pid(%r): failed to get exclusive lock[%s] - %s" %
+                    log_msg("update_pid(%r): failed to get exclusive lock[%s]" %
                             (pid, self.lockfile))
-                    raise CommandError("update_pid(%r): failed to get exclusive lock[%s] after 5 seconds" %
+                    raise CommandError("update_pid(%r): failed to get "
+                                       "exclusive lock[%s] after 5 seconds" %
                                        (pid, self.lockfile))
 
                 if pid is not None:
-- 
2.11.0


From 441ad37eee8f1b63d4d264f9436db76e9c7e0f18 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu, 11 Oct 2018 13:11:06 +1300
Subject: [PATCH 06/29] python/subnets: use the correct variable name

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/subnets.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/python/samba/subnets.py b/python/samba/subnets.py
index 50c6e58cb99..986274fe661 100644
--- a/python/samba/subnets.py
+++ b/python/samba/subnets.py
@@ -156,7 +156,7 @@ def rename_subnet(samdb, configDn, subnet_name, new_name):
     except LdbError as e2:
         (enum, estr) = e2.args
         if enum == ldb.ERR_NO_SUCH_OBJECT:
-            raise SubnetNotFound('Subnet %s does not exist' % subnet)
+            raise SubnetNotFound('Subnet %s does not exist' % dnsubnet)
         elif enum == ldb.ERR_ENTRY_ALREADY_EXISTS:
             raise SubnetAlreadyExists('A subnet with the CIDR %s already exists'
                                       % new_name)
-- 
2.11.0


From 8ee6ef4b08380432b8fa7cd32fc65a3d3dae8ddd Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu, 11 Oct 2018 13:43:28 +1300
Subject: [PATCH 07/29] python/tests/dsdb: use correct variable names

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/tests/dsdb.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/python/samba/tests/dsdb.py b/python/samba/tests/dsdb.py
index 9eafb7fd8ef..2432c3cd509 100644
--- a/python/samba/tests/dsdb.py
+++ b/python/samba/tests/dsdb.py
@@ -468,7 +468,7 @@ class DsdbTests(TestCase):
         try:
             self.samdb.modify(msg)
             if not allow_reference:
-                sel.fail("No exception should get %s" % msg_exp)
+                self.fail("No exception should get %s" % msg_exp)
         except ldb.LdbError as e:
             if allow_reference:
                 self.fail("Should have not raised an exception: %s" % e)
@@ -743,6 +743,6 @@ class DsdbFullScanTests(TestCase):
                                credentials=self.creds,
                                lp=self.lp,
                                options=["disable_full_db_scan_for_self_test:1"])
-        except LdbError as err:
+        except ldb.LdbError as err:
             estr = err.args[1]
             self.fail("sam.ldb required a full scan to start up")
-- 
2.11.0


From 45c983ae444a1e15814b33088f3032708adf0b9e Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu, 11 Oct 2018 14:44:49 +1300
Subject: [PATCH 08/29] python/tests/dnscmd: don't use undefined name

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/tests/samba_tool/dnscmd.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/python/samba/tests/samba_tool/dnscmd.py b/python/samba/tests/samba_tool/dnscmd.py
index 3d3d768c1d9..5e882972f46 100644
--- a/python/samba/tests/samba_tool/dnscmd.py
+++ b/python/samba/tests/samba_tool/dnscmd.py
@@ -815,7 +815,7 @@ class DnsCmdTestCase(SambaToolCmdTest):
 
         # assert that the record isn't spuriously tombstoned
         self.assertTrue('dNSTombstoned' not in records[0] or
-                        str(record['dNSTombstoned']) == 'FALSE')
+                        str(records[0]['dNSTombstoned']) == 'FALSE')
 
     def test_dns_wildcards(self):
         """
-- 
2.11.0


From a5c4750d08f0e0aed4e077801af0b807a4a83d47 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu, 11 Oct 2018 16:48:12 +1300
Subject: [PATCH 09/29] ldb/tests/py/api: use proper name for ldb.LdbError

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 lib/ldb/tests/python/api.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/ldb/tests/python/api.py b/lib/ldb/tests/python/api.py
index 0e16004deed..6be410b22f3 100755
--- a/lib/ldb/tests/python/api.py
+++ b/lib/ldb/tests/python/api.py
@@ -2792,7 +2792,7 @@ class LdbResultTests(LdbBaseTest):
             # and commit
             try:
                 child_ldb.transaction_commit()
-            except LdbError as err:
+            except ldb.LdbError as err:
                 # We print this here to see what went wrong in the child
                 print(err)
                 os._exit(1)
@@ -2863,7 +2863,7 @@ class LdbResultTests(LdbBaseTest):
             # and commit
             try:
                 child_ldb.transaction_commit()
-            except LdbError as err:
+            except ldb.LdbError as err:
                 # We print this here to see what went wrong in the child
                 print(err)
                 os._exit(1)
-- 
2.11.0


From eedba80e4bfdcbbba55b344213e3887a31710bcd Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu, 11 Oct 2018 16:48:38 +1300
Subject: [PATCH 10/29] ldb/tests/py/index: remove dup value in dictionary

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 lib/ldb/tests/python/index.py | 1 -
 1 file changed, 1 deletion(-)

diff --git a/lib/ldb/tests/python/index.py b/lib/ldb/tests/python/index.py
index 5d0b7527e5b..63486eb9b2d 100755
--- a/lib/ldb/tests/python/index.py
+++ b/lib/ldb/tests/python/index.py
@@ -1314,7 +1314,6 @@ class RejectSubDBIndex(LdbBaseTest):
             self.l.add({"dn": "@INDEXLIST",
                         "@IDX_LMDB_SUBDB": [b"1"],
                         "@IDXONE": [b"1"],
-                        "@IDXONE": [b"1"],
                         "@IDXGUID": [b"objectUUID"],
                         "@IDX_DN_GUID": [b"GUID"],
                         })
-- 
2.11.0


From 856a1da6b408a0b8f594ebf592ee4c779c7a8a4d Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu, 11 Oct 2018 17:23:20 +1300
Subject: [PATCH 11/29] s4/dsdb/pytest/sites: do not use variables out of scope

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 source4/dsdb/tests/python/sites.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/source4/dsdb/tests/python/sites.py b/source4/dsdb/tests/python/sites.py
index 6002397df83..867bfcc7ab8 100755
--- a/source4/dsdb/tests/python/sites.py
+++ b/source4/dsdb/tests/python/sites.py
@@ -219,7 +219,7 @@ class SimpleSubnetTests(SitesBaseTests):
                              ("subnet rename by non-admin failed "
                               "in the wrong way: %s" % e))
         else:
-            self.fail("subnet rename by non-admin succeeded: %s" % e)
+            self.fail("subnet rename by non-admin succeeded")
 
         ret = self.ldb.search(base=basedn, scope=SCOPE_SUBTREE,
                               expression='(&(objectclass=subnet)(cn=%s))' % cidr)
@@ -241,7 +241,7 @@ class SimpleSubnetTests(SitesBaseTests):
                              ("subnet delete by non-admin failed "
                               "in the wrong way: %s" % e))
         else:
-            self.fail("subnet delete by non-admin succeeded: %s" % e)
+            self.fail("subnet delete by non-admin succeeded:")
 
         ret = self.ldb.search(base=basedn, scope=SCOPE_SUBTREE,
                               expression='(&(objectclass=subnet)(cn=%s))' % cidr)
-- 
2.11.0


From 90c4305d530912bb214e5f9044510cd95e71c3c6 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 18:38:27 +1300
Subject: [PATCH 12/29] python join: use the sd_utils we imported

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/join.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/python/samba/join.py b/python/samba/join.py
index 01636fe3840..47607feb58c 100644
--- a/python/samba/join.py
+++ b/python/samba/join.py
@@ -1103,7 +1103,7 @@ class DCJoinContext(object):
 
         name_found = True
 
-        sd_helper = samba.sd_utils.SDUtils(ctx.samdb)
+        sd_helper = sd_utils.SDUtils(ctx.samdb)
 
         change_owner_sd = security.descriptor()
         change_owner_sd.owner_sid = ctx.new_dc_account_sid
-- 
2.11.0


From d11cc1efcd6ebd39c891bc392be724a405991884 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 19:27:53 +1300
Subject: [PATCH 13/29] python: avoid useless work in dsdb_Dn.__cmp__

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/common.py | 2 --
 1 file changed, 2 deletions(-)

diff --git a/python/samba/common.py b/python/samba/common.py
index 76d00e35fb5..8876e4f4faa 100644
--- a/python/samba/common.py
+++ b/python/samba/common.py
@@ -110,9 +110,7 @@ class dsdb_Dn(object):
         dn1 = self
         dn2 = other
         guid1 = dn1.dn.get_extended_component("GUID")
-        guid1b = ndr_pack(misc.GUID(guid1))
         guid2 = dn2.dn.get_extended_component("GUID")
-        guid2b = ndr_pack(misc.GUID(guid2))
 
         v = cmp(guid1, guid2)
         if v != 0:
-- 
2.11.0


From 9e9db9eeaacd748b96081624adff6cfe02d6113c Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 19:31:26 +1300
Subject: [PATCH 14/29] python dbcheck: use real exception name

and conventional indent

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/dbchecker.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/python/samba/dbchecker.py b/python/samba/dbchecker.py
index 27422bb5247..9ade6c3fc1c 100644
--- a/python/samba/dbchecker.py
+++ b/python/samba/dbchecker.py
@@ -48,11 +48,11 @@ def dump_attr_values(vals):
     result = ""
     for value in vals:
         if len(result):
-           result = "," + result
+            result = "," + result
         try:
-           result = result + str(value)
-        except UnicodeDecode:
-           result = result + repr(value)
+            result = result + str(value)
+        except UnicodeDecodeError:
+            result = result + repr(value)
     return result
 
 class dbcheck(object):
-- 
2.11.0


From 86106c26d057f712baf8d275c911841c314b8761 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 20:41:50 +1300
Subject: [PATCH 15/29] Python provision: remove "ExistingBackend"

This was unused and broken. e.g. here:

-    def init(self):
-        # Check to see that this 'existing' LDAP backend in fact exists
-        ldapi_db = Ldb(self.ldapi_uri)

there is no attribute self.ldapi_uri, so this would always raise an
exception.

It was being left around in case it became useful, but that doesn't
seem to be happening.

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/provision/__init__.py |  8 --------
 python/samba/provision/backend.py  | 20 --------------------
 2 files changed, 28 deletions(-)

diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py
index d9cab252224..7a6d2f79653 100644
--- a/python/samba/provision/__init__.py
+++ b/python/samba/provision/__init__.py
@@ -77,7 +77,6 @@ from samba.ms_display_specifiers import read_ms_ldif
 from samba.ntacls import setntacl, getntacl, dsacl2fsacl
 from samba.ndr import ndr_pack, ndr_unpack
 from samba.provision.backend import (
-    ExistingBackend,
     FDSBackend,
     LDBBackend,
     OpenLDAPBackend,
@@ -2237,13 +2236,6 @@ def provision(logger, session_info, smbconf=None,
         provision_backend = LDBBackend(backend_type, paths=paths,
                                        lp=lp,
                                        names=names, logger=logger)
-    elif backend_type == "existing":
-        # If support for this is ever added back, then the URI will need to be
-        # specified again
-        provision_backend = ExistingBackend(backend_type, paths=paths,
-                                            lp=lp,
-                                            names=names, logger=logger,
-                                            ldap_backend_forced_uri=ldap_backend_forced_uri)
     elif backend_type == "fedora-ds":
         provision_backend = FDSBackend(backend_type, paths=paths,
                                        lp=lp,
diff --git a/python/samba/provision/backend.py b/python/samba/provision/backend.py
index 2e3b1dc0c0b..b141c3808ff 100644
--- a/python/samba/provision/backend.py
+++ b/python/samba/provision/backend.py
@@ -131,26 +131,6 @@ class LDBBackend(ProvisionBackend):
         pass
 
 
-class ExistingBackend(ProvisionBackend):
-
-    def __init__(self, backend_type, paths=None, lp=None,
-                 names=None, logger=None, ldapi_uri=None):
-
-        super(ExistingBackend, self).__init__(backend_type=backend_type,
-                                              paths=paths, lp=lp,
-                                              names=names, logger=logger,
-                                              ldap_backend_forced_uri=ldapi_uri)
-
-    def init(self):
-        # Check to see that this 'existing' LDAP backend in fact exists
-        ldapi_db = Ldb(self.ldapi_uri)
-        ldapi_db.search(base="", scope=SCOPE_BASE,
-                        expression="(objectClass=OpenLDAProotDSE)")
-
-        # For now, assume existing backends at least emulate OpenLDAP
-        self.ldap_backend_type = "openldap"
-
-
 class LDAPBackend(ProvisionBackend):
 
     def __init__(self, backend_type, paths=None, lp=None,
-- 
2.11.0


From 4d398dc39d0f171c9bfe73864c19712896aa7d2e Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 20:49:38 +1300
Subject: [PATCH 16/29] provision: fix string format syntax

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/provision/__init__.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py
index 7a6d2f79653..e376d0716e6 100644
--- a/python/samba/provision/__init__.py
+++ b/python/samba/provision/__init__.py
@@ -614,7 +614,9 @@ def guess_names(lp=None, hostname=None, domain=None, dnsdomain=None,
     if dnsdomain is None:
         dnsdomain = lp.get("realm")
         if dnsdomain is None or dnsdomain == "":
-            raise ProvisioningError("guess_names: 'realm' not specified in supplied %s!", lp.configfile)
+            raise ProvisioningError(
+                "guess_names: 'realm' not specified in supplied %s!" %
+                lp.configfile)
 
     dnsdomain = dnsdomain.lower()
 
-- 
2.11.0


From f53566d5cccb99c3a3e37e6194415bbc7df7bb5f Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 20:52:05 +1300
Subject: [PATCH 17/29] provision: fix string formatting (number of args)

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/provision/__init__.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py
index e376d0716e6..1b7762eb12b 100644
--- a/python/samba/provision/__init__.py
+++ b/python/samba/provision/__init__.py
@@ -1751,7 +1751,9 @@ def check_dir_acl(path, acl, lp, domainsid, direct_db_access):
             fsacl = getntacl(lp, os.path.join(root, name),
                              direct_db_access=direct_db_access, service=SYSVOL_SERVICE)
             if fsacl is None:
-                raise ProvisioningError('%s ACL on GPO file %s %s not found!' % (acl_type(direct_db_access), os.path.join(root, name)))
+                raise ProvisioningError('%s ACL on GPO file %s not found!' %
+                                        (acl_type(direct_db_access),
+                                         os.path.join(root, name)))
             fsacl_sddl = fsacl.as_sddl(domainsid)
             if fsacl_sddl != acl:
                 raise ProvisioningError('%s ACL on GPO file %s %s does not match expected value %s from GPO object' % (acl_type(direct_db_access), os.path.join(root, name), fsacl_sddl, acl))
@@ -1760,7 +1762,9 @@ def check_dir_acl(path, acl, lp, domainsid, direct_db_access):
             fsacl = getntacl(lp, os.path.join(root, name),
                              direct_db_access=direct_db_access, service=SYSVOL_SERVICE)
             if fsacl is None:
-                raise ProvisioningError('%s ACL on GPO directory %s %s not found!' % (acl_type(direct_db_access), os.path.join(root, name)))
+                raise ProvisioningError('%s ACL on GPO directory %s not found!'
+                                        % (acl_type(direct_db_access),
+                                           os.path.join(root, name)))
             fsacl_sddl = fsacl.as_sddl(domainsid)
             if fsacl_sddl != acl:
                 raise ProvisioningError('%s ACL on GPO directory %s %s does not match expected value %s from GPO object' % (acl_type(direct_db_access), os.path.join(root, name), fsacl_sddl, acl))
-- 
2.11.0


From dd7552850cc51908f5982b02e7d114e42e78ce28 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 21:00:01 +1300
Subject: [PATCH 18/29] provision/backend: fix formating syntax

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/provision/backend.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/python/samba/provision/backend.py b/python/samba/provision/backend.py
index b141c3808ff..2957fee769c 100644
--- a/python/samba/provision/backend.py
+++ b/python/samba/provision/backend.py
@@ -533,8 +533,9 @@ class OpenLDAPBackend(LDAPBackend):
             if self.ol_mmr_urls is None:
                 server_port_string = "ldap://0.0.0.0:%d" % self.ldap_backend_extra_port
             else:
-                server_port_string = "ldap://%s.%s:%d" (self.names.hostname,
-                                                        self.names.dnsdomain, self.ldap_backend_extra_port)
+                server_port_string = "ldap://%s.%s:%d" % (self.names.hostname,
+                                                          self.names.dnsdomain,
+                                                          self.ldap_backend_extra_port)
         else:
             server_port_string = ""
 
-- 
2.11.0


From af5d9b28237e02ba317170ddfc33aa5cd5dcebc5 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 21:01:18 +1300
Subject: [PATCH 19/29] provision/backend: LDAPBackendResult takes no creds

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/provision/backend.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/python/samba/provision/backend.py b/python/samba/provision/backend.py
index 2957fee769c..85e9f522463 100644
--- a/python/samba/provision/backend.py
+++ b/python/samba/provision/backend.py
@@ -818,5 +818,5 @@ class FDSBackend(LDAPBackend):
                          self.names.schemadn):
             m.dn = ldb.Dn(ldapi_db, dnstring)
             ldapi_db.modify(m)
-        return LDAPBackendResult(self.credentials, self.slapd_command_escaped,
+        return LDAPBackendResult(self.slapd_command_escaped,
                                  self.ldapdir)
-- 
2.11.0


From 1ba1b6026046dad977d51f7dd7e67ea7c587869e Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 21:02:46 +1300
Subject: [PATCH 20/29] python/remove_dc: fix formating syntax (missing %s)

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/remove_dc.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/python/samba/remove_dc.py b/python/samba/remove_dc.py
index e6b1b7bdc04..4c63710881e 100644
--- a/python/samba/remove_dc.py
+++ b/python/samba/remove_dc.py
@@ -69,8 +69,8 @@ def remove_sysvol_references(samdb, logger, dc_name):
         # to add a base and add an arbitrary RDN.
         dn = ldb.Dn(samdb, s)
         if dn.add_base(samdb.get_default_basedn()) == False:
-            raise DemoteException("Failed constructing DN %s by adding base" %
-                                  (dn, samdb.get_default_basedn()))
+            raise DemoteException("Failed constructing DN %s by adding base %s"
+                                  % (dn, samdb.get_default_basedn()))
         if dn.add_child("CN=X") == False:
             raise DemoteException("Failed constructing DN %s by adding child "
                                   "CN=X (soon to be CN=%s)" % (dn, dc_name))
-- 
2.11.0


From 3848b798e0e7e4da085bd6defa0a058142ed8343 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Fri, 26 Oct 2018 21:03:21 +1300
Subject: [PATCH 21/29] python/remove_dc: fix Exception construction

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/remove_dc.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/python/samba/remove_dc.py b/python/samba/remove_dc.py
index 4c63710881e..30abb385491 100644
--- a/python/samba/remove_dc.py
+++ b/python/samba/remove_dc.py
@@ -394,8 +394,8 @@ def remove_dc(samdb, logger, dc_name):
         except LdbError as e3:
             (enum, estr) = e3.args
             raise DemoteException("Failure checking if %s is an server "
-                                  "object in %s: "
-                                  % (dc_name, samdb.domain_dns_name()), estr)
+                                  "object in %s: %s"
+                                  % (dc_name, samdb.domain_dns_name(), estr))
 
         if (len(server_msgs) == 0):
             samdb.transaction_cancel()
@@ -418,8 +418,9 @@ def remove_dc(samdb, logger, dc_name):
             pass
         else:
             samdb.transaction_cancel()
-            raise DemoteException("Failure checking if %s is an NTDS DSA in %s: "
-                                  % (ntds_dn, samdb.domain_dns_name()), estr)
+            raise DemoteException(
+                "Failure checking if %s is an NTDS DSA in %s: %s" %
+                (ntds_dn, samdb.domain_dns_name(), estr))
 
     # If the NTDS Settings child DN wasn't found or wasnt an ntdsDSA
     # object, just remove the server object located above
-- 
2.11.0


From f605f29976aea722a31c15d8d395e0f4e8718889 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Sun, 28 Oct 2018 10:32:35 +1300
Subject: [PATCH 22/29] waflib: add necessary imports

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 buildtools/wafsamba/samba_utils.py    | 1 +
 buildtools/wafsamba/samba_wildcard.py | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/buildtools/wafsamba/samba_utils.py b/buildtools/wafsamba/samba_utils.py
index b4da3c5246f..86d1e24a115 100644
--- a/buildtools/wafsamba/samba_utils.py
+++ b/buildtools/wafsamba/samba_utils.py
@@ -4,6 +4,7 @@
 import os, sys, re, fnmatch, shlex, inspect
 from optparse import SUPPRESS_HELP
 from waflib import Build, Options, Utils, Task, Logs, Configure, Errors, Context
+from waflib import Scripting
 from waflib.TaskGen import feature, before, after
 from waflib.Configure import ConfigurationContext
 from waflib.Logs import debug
diff --git a/buildtools/wafsamba/samba_wildcard.py b/buildtools/wafsamba/samba_wildcard.py
index 5e15eff7ba0..6173ce8a9f9 100644
--- a/buildtools/wafsamba/samba_wildcard.py
+++ b/buildtools/wafsamba/samba_wildcard.py
@@ -2,7 +2,7 @@
 
 import os, datetime, fnmatch
 from waflib import Scripting, Utils, Options, Logs, Errors
-from waflib import ConfigSet
+from waflib import ConfigSet, Context
 from samba_utils import LOCAL_CACHE, os_path_relpath
 
 def run_task(t, k):
-- 
2.11.0


From 118fa3dc66724862c0ed6aea33af5901a2b8aebe Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Sun, 28 Oct 2018 10:33:26 +1300
Subject: [PATCH 23/29] waflib: fix syntax error in string format

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 buildtools/wafsamba/samba_utils.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/buildtools/wafsamba/samba_utils.py b/buildtools/wafsamba/samba_utils.py
index 86d1e24a115..58a0b71796c 100644
--- a/buildtools/wafsamba/samba_utils.py
+++ b/buildtools/wafsamba/samba_utils.py
@@ -328,7 +328,7 @@ def RUN_COMMAND(cmd,
         return os.WEXITSTATUS(status)
     if os.WIFSIGNALED(status):
         return - os.WTERMSIG(status)
-    Logs.error("Unknown exit reason %d for command: %s" (status, cmd))
+    Logs.error("Unknown exit reason %d for command: %s" % (status, cmd))
     return -1
 
 
-- 
2.11.0


From 18c46bbea68a0a4e8371dc202e6ee171981d41e5 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Sun, 28 Oct 2018 10:37:51 +1300
Subject: [PATCH 24/29] python/ms_forest_updates_markdown: avoid implicit
 global variable

out_dict would have been shared across all calls, aggregating values as it went.

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/ms_forest_updates_markdown.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/python/samba/ms_forest_updates_markdown.py b/python/samba/ms_forest_updates_markdown.py
index 26cc3fd776a..5cbc8fcea54 100644
--- a/python/samba/ms_forest_updates_markdown.py
+++ b/python/samba/ms_forest_updates_markdown.py
@@ -195,7 +195,7 @@ def innertext(tag):
         (tag.tail or '')
 
 
-def read_ms_markdown(in_file, out_folder=None, out_dict={}):
+def read_ms_markdown(in_file, out_folder=None, out_dict=None):
     """
     Read Github documentation to produce forest wide udpates
     :param in_file: Forest-Wide-Updates.md
@@ -274,4 +274,4 @@ if __name__ == '__main__':
     if len(sys.argv) > 2:
         out_folder = sys.argv[2]
 
-    read_ms_markdown(in_file, out_folder)
+    read_ms_markdown(in_file, out_folder, {})
-- 
2.11.0


From 51fba23cfd7fc43e61748afa72e4a9a0e061e095 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Sun, 28 Oct 2018 10:40:12 +1300
Subject: [PATCH 25/29] py/tests/dcerpc_rpc: Py3 compat integer types

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/tests/dcerpc/testrpc.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/python/samba/tests/dcerpc/testrpc.py b/python/samba/tests/dcerpc/testrpc.py
index 045a8cfade9..537c23129d8 100644
--- a/python/samba/tests/dcerpc/testrpc.py
+++ b/python/samba/tests/dcerpc/testrpc.py
@@ -22,6 +22,7 @@ sys.path.insert(0, "bin/python")
 import samba
 import samba.tests
 from samba.dcerpc import drsuapi
+from samba.compat import integer_types
 import talloc
 
 talloc.enable_null_tracking()
@@ -98,7 +99,7 @@ class RpcTests(object):
             if isinstance(value, str):
                 # print "%s=\"%s\"" % (n, value)
                 pass
-            elif isinstance(value, int) or isinstance(value, long):
+            elif isinstance(value, integer_types):
                 # print "%s=%d" % (n, value)
                 pass
             elif isinstance(value, type):
-- 
2.11.0


From 5e3b406018d19beec992152acf8a4c30ad1f93a0 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Sun, 28 Oct 2018 10:49:24 +1300
Subject: [PATCH 26/29] traffic_replay: Exception has no .message

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 script/traffic_replay | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/script/traffic_replay b/script/traffic_replay
index 6578c84e635..733394b758e 100755
--- a/script/traffic_replay
+++ b/script/traffic_replay
@@ -252,7 +252,7 @@ def main():
                 duration = opts.duration
 
         except ValueError as e:
-            if not e.message.startswith('need more than'):
+            if not str(e).startswith('need more than'):
                 raise
 
             model = traffic.TrafficModel()
-- 
2.11.0


From cd866be858c54e152c82542aa06a167ce6f56273 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Sun, 28 Oct 2018 11:08:28 +1300
Subject: [PATCH 27/29] tests/rodc_rwdc: fix message format

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 source4/dsdb/tests/python/rodc_rwdc.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/source4/dsdb/tests/python/rodc_rwdc.py b/source4/dsdb/tests/python/rodc_rwdc.py
index 2a0c1ed6d60..cc715e6e7ad 100644
--- a/source4/dsdb/tests/python/rodc_rwdc.py
+++ b/source4/dsdb/tests/python/rodc_rwdc.py
@@ -822,7 +822,7 @@ class RodcRwdcTests(password_lockout_base.BasePasswordTestCase):
             except ldb.LdbError as e:
                 (ecode, emsg) = e.args
                 self.fail("Failed to add %s to rwdc: ldb error: %s %s" %
-                          (ecode, emsg))
+                          (o, ecode, emsg))
 
             if cross_ncs:
                 self.force_replication(base=base)
-- 
2.11.0


From 1f6b1b973027a66953685d679a5c521c23fb5833 Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu, 11 Oct 2018 13:38:27 +1300
Subject: [PATCH 28/29] python/kcc/graph: import KCCError, which is used
 somewhere

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/kcc/graph.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/python/samba/kcc/graph.py b/python/samba/kcc/graph.py
index 327b471201f..d3044dd90b8 100644
--- a/python/samba/kcc/graph.py
+++ b/python/samba/kcc/graph.py
@@ -23,6 +23,7 @@ import itertools
 import heapq
 
 from samba.kcc.graph_utils import write_dot_file, verify_and_dot, verify_graph
+from samba.kcc.kcc_utils import KCCError
 from samba.ndr import ndr_pack
 from samba.dcerpc import misc
 
-- 
2.11.0


From 681d4e0544541b238e9dd28ea29a832bf62b7feb Mon Sep 17 00:00:00 2001
From: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
Date: Thu, 11 Oct 2018 13:40:23 +1300
Subject: [PATCH 29/29] python/samba3: import passdb in the manner it is used

Signed-off-by: Douglas Bagnall <douglas.bagnall at catalyst.net.nz>
---
 python/samba/samba3/__init__.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/python/samba/samba3/__init__.py b/python/samba/samba3/__init__.py
index b9f6e6d6499..b092f450953 100644
--- a/python/samba/samba3/__init__.py
+++ b/python/samba/samba3/__init__.py
@@ -26,7 +26,7 @@ import os
 import struct
 import tdb
 
-import samba.samba3.passdb
+from samba.samba3 import passdb
 from samba.samba3 import param as s3param
 from samba.compat import get_bytes
 
-- 
2.11.0



More information about the samba-technical mailing list