From 27df0e81c2b79ff4e2a1f990375a7e2a7d210b07 Mon Sep 17 00:00:00 2001 From: Noel Power Date: Wed, 8 Aug 2018 17:03:48 +0100 Subject: [PATCH] python/samba: port changes to allow samba.tests.dsdb_lock to work with PY3/PY2 Signed-off-by: Noel Power Reviewed-by: Andrew Bartlett --- python/samba/dbchecker.py | 4 ++-- python/samba/provision/__init__.py | 9 +++++---- python/samba/samdb.py | 4 ++-- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/python/samba/dbchecker.py b/python/samba/dbchecker.py index ae93ed1c72f..beb664da8f2 100644 --- a/python/samba/dbchecker.py +++ b/python/samba/dbchecker.py @@ -293,7 +293,7 @@ class dbcheck(object): # as the original one, so that on replication we # merge, rather than conflict. proposed_objectguid = dsdb_dn.dn.get_extended_component("GUID") - listwko.append(o) + listwko.append(str(o)) if proposed_objectguid is not None: guid_suffix = "\nobjectGUID: %s" % str(misc.GUID(proposed_objectguid)) @@ -2223,7 +2223,7 @@ newSuperior: %s""" % (str(from_dn), str(to_rdn), str(to_base))) values = set() # check for incorrectly normalised attributes for val in obj[attrname]: - values.add(str(val)) + values.add(val) normalised = self.samdb.dsdb_normalise_attributes(self.samdb_schema, attrname, [val]) if len(normalised) != 1 or normalised[0] != val: diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py index 81272095c48..e9922285daf 100644 --- a/python/samba/provision/__init__.py +++ b/python/samba/provision/__init__.py @@ -27,6 +27,7 @@ __docformat__ = "restructuredText" from samba.compat import urllib_quote +from samba.compat import string_types from base64 import b64encode import errno import os @@ -1573,8 +1574,8 @@ def fill_samdb(samdb, lp, names, logger, policyguid, ntds_dn = "CN=NTDS Settings,%s" % names.serverdn names.ntdsguid = samdb.searchone(basedn=ntds_dn, - attribute="objectGUID", expression="", scope=ldb.SCOPE_BASE) - assert isinstance(names.ntdsguid, str) + attribute="objectGUID", expression="", scope=ldb.SCOPE_BASE).decode('utf8') + assert isinstance(names.ntdsguid, string_types) return samdb @@ -1964,8 +1965,8 @@ def provision_fill(samdb, secrets_ldb, logger, names, paths, backend_store=backend_store) domainguid = samdb.searchone(basedn=samdb.get_default_basedn(), - attribute="objectGUID") - assert isinstance(domainguid, str) + attribute="objectGUID").decode('utf8') + assert isinstance(domainguid, string_types) lastProvisionUSNs = get_last_provision_usn(samdb) maxUSN = get_max_usn(samdb, str(names.rootdn)) diff --git a/python/samba/samdb.py b/python/samba/samdb.py index 0b80c9c878e..53f9c4038fa 100644 --- a/python/samba/samdb.py +++ b/python/samba/samdb.py @@ -1048,12 +1048,12 @@ schemaUpdateNow: 1 def get_dsServiceName(self): '''get the NTDS DN from the rootDSE''' res = self.search(base="", scope=ldb.SCOPE_BASE, attrs=["dsServiceName"]) - return res[0]["dsServiceName"][0] + return str(res[0]["dsServiceName"][0]) def get_serverName(self): '''get the server DN from the rootDSE''' res = self.search(base="", scope=ldb.SCOPE_BASE, attrs=["serverName"]) - return res[0]["serverName"][0] + return str(res[0]["serverName"][0]) def dns_lookup(self, dns_name, dns_partition=None): '''Do a DNS lookup in the database, returns the NDR database structures'''