[SCM] Samba Shared Repository - branch master updated
Andrew Bartlett
abartlet at samba.org
Sat May 12 22:25:06 UTC 2018
The branch, master has been updated
via 26c4084 auth/credentials/test: py2/py3 compat always decode result of b64encode
via c50ccc7 python/samba: py2/py3 compatability always decode result of b64encode
via 6f30a0b s4/dsdb/tests: py2/py3 compatability always decode result of b64encode
via bf95ecb s4/scripting/devel: py2/py3 compatability always decode result of b64encode
via ff1920f s4/scripting/bin: py2/py3 compatability always decode result of b64encode
via 521bc60 Bulk: enclose .keys() method with list where list (from python2) expected
via 504fca7 samba_tool: replace xrange -> range
via 5f33084 s4/dsdb/tests: py2/py3 compatability replace xrange with range
via 9c54337 python/samba/tests: py2/py3 compatability replace xrange with range
via ee363db python/samba: Ensure md5 always provided with bytes
via a0cd47f python/samba/provision: Fix urllib.quote usage for py2/py3
via 9410cea samba_tool: make exception handling statements py2/py3 compatible
via 7399da0 samba_tool: Py2/Py3 compatability fix tuple assigment
via 63648af python/samba: Bulk replace of '.next()' method with function 'next()'
from fcda17c ctdb-tools: Add logging config options to config tool
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 26c4084ad2d5f35d4e35026c96150759d062969a
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 15:30:22 2018 +0100
auth/credentials/test: py2/py3 compat always decode result of b64encode
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
Autobuild-Date(master): Sun May 13 00:24:35 CEST 2018 on sn-devel-144
commit c50ccc714a1871ef6eaa3bfc9b16c232127d3fad
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 15:29:59 2018 +0100
python/samba: py2/py3 compatability always decode result of b64encode
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 6f30a0b5f11b58ab0bb528c7387099171703de4c
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 15:27:12 2018 +0100
s4/dsdb/tests: py2/py3 compatability always decode result of b64encode
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit bf95ecb35dae64e0a07c126f264bdf8a7ccc2a8a
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 15:26:39 2018 +0100
s4/scripting/devel: py2/py3 compatability always decode result of b64encode
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit ff1920fb6704a617d03d2a18905a4fb603a351bc
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 15:25:22 2018 +0100
s4/scripting/bin: py2/py3 compatability always decode result of b64encode
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 521bc6056edc5252f2256664f4eacba13a3749e3
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 13:33:03 2018 +0100
Bulk: enclose .keys() method with list where list (from python2) expected
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 504fca732a3ed0865c39772767ee520f99a93cad
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 12:19:57 2018 +0100
samba_tool: replace xrange -> range
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 5f330840d0479f9a352d19b15159c10efce9d862
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 12:18:59 2018 +0100
s4/dsdb/tests: py2/py3 compatability replace xrange with range
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 9c543376e4fec3db00968fa9d682ac7ad5c9962b
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 12:16:38 2018 +0100
python/samba/tests: py2/py3 compatability replace xrange with range
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit ee363db5716334d759cc7f9f3ef61e4227f3f3e5
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 12:05:27 2018 +0100
python/samba: Ensure md5 always provided with bytes
To allow code run in both python3 and python2 we have to ensure
that md5 always receives bytes
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit a0cd47fdf8819efb2c72e81cb132e2f1308bd395
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 11:41:11 2018 +0100
python/samba/provision: Fix urllib.quote usage for py2/py3
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 9410cea310f6ac5089a28b90a93bd3b20ffa2d9b
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 11:31:33 2018 +0100
samba_tool: make exception handling statements py2/py3 compatible
Fix some missed conversions of
except Exception, e:
to
except Exception as e:
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 7399da0b44503d2b5fe3218f9b55c79eac4cefe4
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 11:28:46 2018 +0100
samba_tool: Py2/Py3 compatability fix tuple assigment
replace
(foo, bar) = e
with
(foo, bar) = e.args
while will run in with both python2 and python3
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
commit 63648af515df6c62e44ebeaa81d73e49511d03bc
Author: Noel Power <noel.power at suse.com>
Date: Fri May 4 11:22:43 2018 +0100
python/samba: Bulk replace of '.next()' method with function 'next()'
Signed-off-by: Noel Power <noel.power at suse.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
-----------------------------------------------------------------------
Summary of changes:
auth/credentials/tests/bind.py | 2 +-
lib/ldb/tests/python/api.py | 4 +--
python/samba/domain_update.py | 2 +-
python/samba/idmap.py | 2 +-
python/samba/join.py | 2 +-
python/samba/netcmd/__init__.py | 2 +-
python/samba/netcmd/computer.py | 6 ++--
python/samba/netcmd/dns.py | 6 ++--
python/samba/netcmd/user.py | 16 ++++-----
python/samba/netcmd/visualize.py | 8 +++--
python/samba/provision/__init__.py | 52 +++++++++++++--------------
python/samba/provision/backend.py | 3 +-
python/samba/provision/sambadns.py | 16 ++++-----
python/samba/schema.py | 4 +--
python/samba/tests/dns_forwarder.py | 2 +-
python/samba/tests/password_hash.py | 4 +++
python/samba/tests/samba_tool/user.py | 8 ++---
python/samba/tests/samba_tool/user_wdigest.py | 4 +++
source4/dsdb/tests/python/acl.py | 40 ++++++++++-----------
source4/dsdb/tests/python/dirsync.py | 2 +-
source4/dsdb/tests/python/ldap.py | 8 ++---
source4/dsdb/tests/python/notification.py | 4 +--
source4/dsdb/tests/python/password_lockout.py | 52 +++++++++++++--------------
source4/dsdb/tests/python/passwords.py | 30 ++++++++--------
source4/dsdb/tests/python/rodc_rwdc.py | 2 +-
source4/dsdb/tests/python/sam.py | 2 +-
source4/dsdb/tests/python/sec_descriptor.py | 6 ++--
source4/dsdb/tests/python/vlv.py | 2 +-
source4/heimdal/lib/wind/gen-normalize.py | 2 +-
source4/scripting/bin/fullschema | 2 +-
source4/scripting/bin/get-descriptors | 2 +-
source4/scripting/bin/minschema | 2 +-
source4/scripting/bin/samba_upgradedns | 2 +-
source4/scripting/bin/samba_upgradeprovision | 2 +-
source4/scripting/bin/smbstatus | 6 ++--
source4/scripting/devel/demodirsync.py | 12 +++----
source4/scripting/devel/speedtest.py | 2 +-
37 files changed, 168 insertions(+), 155 deletions(-)
Changeset truncated at 500 lines:
diff --git a/auth/credentials/tests/bind.py b/auth/credentials/tests/bind.py
index 8b08b4a..e612dfc 100755
--- a/auth/credentials/tests/bind.py
+++ b/auth/credentials/tests/bind.py
@@ -96,7 +96,7 @@ operatingSystem: Windows Server 2003
dn: """ + self.computer_dn + """
changetype: modify
replace: unicodePwd
-unicodePwd:: """ + base64.b64encode("\"P at ssw0rd\"".encode('utf-16-le')) + """
+unicodePwd:: """ + base64.b64encode(u"\"P at ssw0rd\"".encode('utf-16-le')).decode('utf8') + """
""")
# do a simple bind and search with the machine account
diff --git a/lib/ldb/tests/python/api.py b/lib/ldb/tests/python/api.py
index c5935ba..657fa14b 100755
--- a/lib/ldb/tests/python/api.py
+++ b/lib/ldb/tests/python/api.py
@@ -1957,13 +1957,13 @@ class LdbMsgTests(TestCase):
self.msg.dn = ldb.Dn(ldb.Ldb(), "@BASEINFO")
self.msg["foo"] = [b"bla"]
self.msg["bar"] = [b"bla"]
- self.assertEqual(["dn", "foo", "bar"], self.msg.keys())
+ self.assertEqual(["dn", "foo", "bar"], list(self.msg.keys()))
def test_keys_text(self):
self.msg.dn = ldb.Dn(ldb.Ldb(), "@BASEINFO")
self.msg["foo"] = ["bla"]
self.msg["bar"] = ["bla"]
- self.assertEqual(["dn", "foo", "bar"], self.msg.text.keys())
+ self.assertEqual(["dn", "foo", "bar"], list(self.msg.text.keys()))
def test_dn(self):
self.msg.dn = ldb.Dn(ldb.Ldb(), "@BASEINFO")
diff --git a/python/samba/domain_update.py b/python/samba/domain_update.py
index 11a0a73..d21ea38 100644
--- a/python/samba/domain_update.py
+++ b/python/samba/domain_update.py
@@ -390,7 +390,7 @@ objectClass: msTPM-InformationObjectsContainer
self.raise_if_not_fix(op)
descriptor = get_managed_service_accounts_descriptor(self.domain_sid)
- managedservice_descr = b64encode(descriptor)
+ managedservice_descr = b64encode(descriptor).decode('utf8')
managed_service_dn = "CN=Managed Service Accounts,%s" % \
str(self.domain_dn)
diff --git a/python/samba/idmap.py b/python/samba/idmap.py
index 0cb729f..a618347 100644
--- a/python/samba/idmap.py
+++ b/python/samba/idmap.py
@@ -95,4 +95,4 @@ type: %s
cn: %s
""" % (sid, unixid, sid, type_string, sid)
- self.add(self.parse_ldif(mod).next()[1])
+ self.add(next(self.parse_ldif(mod))[1])
diff --git a/python/samba/join.py b/python/samba/join.py
index b35eb78..e164d9b 100644
--- a/python/samba/join.py
+++ b/python/samba/join.py
@@ -742,7 +742,7 @@ class dc_join(object):
{"DNSDOMAIN": ctx.dnsdomain,
"DOMAINDN": ctx.base_dn,
"HOSTNAME" : ctx.myname,
- "DNSPASS_B64": b64encode(ctx.dnspass.encode('utf-16-le')),
+ "DNSPASS_B64": b64encode(ctx.dnspass.encode('utf-16-le')).decode('utf8'),
"DNSNAME" : ctx.dnshostname}))
for changetype, msg in recs:
assert changetype == ldb.CHANGETYPE_NONE
diff --git a/python/samba/netcmd/__init__.py b/python/samba/netcmd/__init__.py
index 7797678..9df096d 100644
--- a/python/samba/netcmd/__init__.py
+++ b/python/samba/netcmd/__init__.py
@@ -103,7 +103,7 @@ class Command(object):
force_traceback = True
if isinstance(inner_exception, LdbError):
- (ldb_ecode, ldb_emsg) = inner_exception
+ (ldb_ecode, ldb_emsg) = inner_exception.args
self.errf.write("ERROR(ldb): %s - %s\n" % (message, ldb_emsg))
elif isinstance(inner_exception, AssertionError):
self.errf.write("ERROR(assert): %s\n" % message)
diff --git a/python/samba/netcmd/computer.py b/python/samba/netcmd/computer.py
index 3b130b1..9ca8904 100644
--- a/python/samba/netcmd/computer.py
+++ b/python/samba/netcmd/computer.py
@@ -298,7 +298,7 @@ Example3 shows how to create a new computer in the OrgUnit organizational unit.
samdb, hostname, dns_conn,
change_owner_sd, samdb.host_dns_name(),
ip_address_list, self.get_logger())
- except Exception, e:
+ except Exception as e:
raise CommandError("Failed to create computer '%s': " %
computername, e)
@@ -394,7 +394,7 @@ sudo is used so a computer may run the command as root.
remove_dns_references(
samdb, self.get_logger(), computer_dns_host_name,
ignore_no_name=True)
- except Exception, e:
+ except Exception as e:
raise CommandError('Failed to remove computer "%s"' %
samaccountname, e)
self.outf.write("Deleted computer %s\n" % computername)
@@ -569,7 +569,7 @@ class cmd_computer_move(Command):
new_computer_dn.add_base(full_new_ou_dn)
try:
samdb.rename(computer_dn, new_computer_dn)
- except Exception, e:
+ except Exception as e:
raise CommandError('Failed to move computer "%s"' % computername, e)
self.outf.write('Moved computer "%s" to "%s"\n' %
(computername, new_ou_dn))
diff --git a/python/samba/netcmd/dns.py b/python/samba/netcmd/dns.py
index 8bd6a9b..a0e92cf 100644
--- a/python/samba/netcmd/dns.py
+++ b/python/samba/netcmd/dns.py
@@ -140,7 +140,7 @@ def ip4_array_string(array):
ret = []
if not array:
return ret
- for i in xrange(array.AddrCount):
+ for i in range(array.AddrCount):
addr = inet_ntop(AF_INET, pack('I', array.AddrArray[i]))
ret.append(addr)
return ret
@@ -150,7 +150,7 @@ def dns_addr_array_string(array):
ret = []
if not array:
return ret
- for i in xrange(array.AddrCount):
+ for i in range(array.AddrCount):
if array.AddrArray[i].MaxSa[0] == 0x02:
x = "".join([chr(b) for b in array.AddrArray[i].MaxSa])[4:8]
addr = inet_ntop(AF_INET, x)
@@ -523,7 +523,7 @@ def dns_record_match(dns_conn, server, zone, name, record_type, data):
elif record_type == dnsp.DNS_TYPE_TXT:
if rec.data.count == urec.data.count:
found = True
- for i in xrange(rec.data.count):
+ for i in range(rec.data.count):
found = found and \
(rec.data.str[i].str == urec.data.str[i].str)
diff --git a/python/samba/netcmd/user.py b/python/samba/netcmd/user.py
index 1e2e040..4009d63 100644
--- a/python/samba/netcmd/user.py
+++ b/python/samba/netcmd/user.py
@@ -119,7 +119,7 @@ def get_crypt_value(alg, utf8pw, rounds=0):
# we can ignore the possible == at the end
# of the base64 string
# we just need to replace '+' by '.'
- b64salt = base64.b64encode(salt)[0:16].replace('+', '.')
+ b64salt = base64.b64encode(salt)[0:16].replace('+', '.').decode('utf8')
crypt_salt = ""
if rounds != 0:
crypt_salt = "$%s$rounds=%s$%s$" % (alg, rounds, b64salt)
@@ -1247,7 +1247,7 @@ class GetPasswordCommand(Command):
h.update(u8)
h.update(salt)
bv = h.digest() + salt
- v = "{SSHA}" + base64.b64encode(bv)
+ v = "{SSHA}" + base64.b64encode(bv).decode('utf8')
elif a == "virtualCryptSHA256":
rounds = get_rounds(attr_opts[a])
x = get_virtual_crypt_value(a, 5, rounds, username, account_name)
@@ -1861,13 +1861,13 @@ samba-tool user syncpasswords --terminate \\
self.sync_command = sync_command
add_ldif = "dn: %s\n" % self.cache_dn
add_ldif += "objectClass: userSyncPasswords\n"
- add_ldif += "samdbUrl:: %s\n" % base64.b64encode(self.samdb_url)
- add_ldif += "dirsyncFilter:: %s\n" % base64.b64encode(self.dirsync_filter)
+ add_ldif += "samdbUrl:: %s\n" % base64.b64encode(self.samdb_url).decode('utf8')
+ add_ldif += "dirsyncFilter:: %s\n" % base64.b64encode(self.dirsync_filter).decode('utf8')
for a in self.dirsync_attrs:
- add_ldif += "dirsyncAttribute:: %s\n" % base64.b64encode(a)
+ add_ldif += "dirsyncAttribute:: %s\n" % base64.b64encode(a).decode('utf8')
add_ldif += "dirsyncControl: %s\n" % self.dirsync_controls[0]
for a in self.password_attrs:
- add_ldif += "passwordAttribute:: %s\n" % base64.b64encode(a)
+ add_ldif += "passwordAttribute:: %s\n" % base64.b64encode(a).decode('utf8')
if self.decrypt_samba_gpg == True:
add_ldif += "decryptSambaGPG: TRUE\n"
else:
@@ -1879,7 +1879,7 @@ samba-tool user syncpasswords --terminate \\
self.current_pid = None
self.outf.write("Initialized cache_ldb[%s]\n" % (cache_ldb))
msgs = self.cache.parse_ldif(add_ldif)
- changetype,msg = msgs.next()
+ changetype,msg = next(msgs)
ldif = self.cache.write_ldif(msg, ldb.CHANGETYPE_NONE)
self.outf.write("%s" % ldif)
else:
@@ -2027,7 +2027,7 @@ samba-tool user syncpasswords --terminate \\
if self.lockfd != -1:
got_exclusive = False
# Try 5 times to get the exclusiv lock.
- for i in xrange(0, 5):
+ for i in range(0, 5):
try:
fcntl.lockf(self.lockfd, fcntl.LOCK_EX | fcntl.LOCK_NB)
got_exclusive = True
diff --git a/python/samba/netcmd/visualize.py b/python/samba/netcmd/visualize.py
index 6f880ae..b9d126a 100644
--- a/python/samba/netcmd/visualize.py
+++ b/python/samba/netcmd/visualize.py
@@ -34,6 +34,7 @@ from ldb import SCOPE_BASE, SCOPE_SUBTREE, LdbError
import time
from samba.kcc import KCC
from samba.kcc.kcc_utils import KCCError
+from samba.compat import text_type
COMMON_OPTIONS = [
Option("-H", "--URL", help="LDB URL for database or target server",
@@ -50,7 +51,7 @@ COMMON_OPTIONS = [
choices=['yes', 'no', 'auto']),
Option("--color-scheme", help=("use this colour scheme "
"(implies --color=yes)"),
- choices=COLOUR_SETS.keys()),
+ choices=list(COLOUR_SETS.keys())),
Option("-S", "--shorten-names",
help="don't print long common suffixes",
action='store_true', default=False),
@@ -161,7 +162,10 @@ def colour_hash(x):
"""Generate a randomish but consistent darkish colour based on the
given object."""
from hashlib import md5
- c = int(md5(str(x)).hexdigest()[:6], base=16) & 0x7f7f7f
+ tmp_str = str(x)
+ if isinstance(tmp_str, text_type):
+ tmp_str = tmp_str.encode('utf8')
+ c = int(md5(tmp_str).hexdigest()[:6], base=16) & 0x7f7f7f
return '#%06x' % c
diff --git a/python/samba/provision/__init__.py b/python/samba/provision/__init__.py
index 43ccb0f..d9df425 100644
--- a/python/samba/provision/__init__.py
+++ b/python/samba/provision/__init__.py
@@ -26,6 +26,7 @@
__docformat__ = "restructuredText"
+from samba.compat import urllib_quote
from base64 import b64encode
import errno
import os
@@ -37,7 +38,6 @@ import logging
import time
import uuid
import socket
-import urllib
import string
import tempfile
import samba.dsdb
@@ -1020,14 +1020,14 @@ def setup_secretsdb(paths, session_info, backend_credentials, lp):
setup_add_ldif(secrets_ldb,
setup_path("secrets_simple_ldap.ldif"), {
"LDAPMANAGERDN": backend_credentials.get_bind_dn(),
- "LDAPMANAGERPASS_B64": b64encode(backend_credentials.get_password())
+ "LDAPMANAGERPASS_B64": b64encode(backend_credentials.get_password()).decode('utf8')
})
else:
setup_add_ldif(secrets_ldb,
setup_path("secrets_sasl_ldap.ldif"), {
"LDAPADMINUSER": backend_credentials.get_username(),
"LDAPADMINREALM": backend_credentials.get_realm(),
- "LDAPADMINPASS_B64": b64encode(backend_credentials.get_password())
+ "LDAPADMINPASS_B64": b64encode(backend_credentials.get_password()).decode('utf8')
})
except:
secrets_ldb.transaction_cancel()
@@ -1144,7 +1144,7 @@ def setup_self_join(samdb, admin_session_info, names, fill, machinepass,
"INVOCATIONID": invocationid,
"NETBIOSNAME": names.netbiosname,
"DNSNAME": "%s.%s" % (names.hostname, names.dnsdomain),
- "MACHINEPASS_B64": b64encode(machinepass.encode('utf-16-le')),
+ "MACHINEPASS_B64": b64encode(machinepass.encode('utf-16-le')).decode('utf8'),
"DOMAINSID": str(domainsid),
"DCRID": str(dc_rid),
"SAMBA_VERSION_STRING": version,
@@ -1171,7 +1171,7 @@ def setup_self_join(samdb, admin_session_info, names, fill, machinepass,
"INVOCATIONID": invocationid,
"NETBIOSNAME": names.netbiosname,
"DNSNAME": "%s.%s" % (names.hostname, names.dnsdomain),
- "MACHINEPASS_B64": b64encode(machinepass.encode('utf-16-le')),
+ "MACHINEPASS_B64": b64encode(machinepass.encode('utf-16-le')).decode('utf8'),
"DOMAINSID": str(domainsid),
"DCRID": str(dc_rid),
"SAMBA_VERSION_STRING": version,
@@ -1208,7 +1208,7 @@ def setup_self_join(samdb, admin_session_info, names, fill, machinepass,
setup_add_ldif(samdb, setup_path("provision_dns_add_samba.ldif"), {
"DNSDOMAIN": names.dnsdomain,
"DOMAINDN": names.domaindn,
- "DNSPASS_B64": b64encode(dnspass.encode('utf-16-le')),
+ "DNSPASS_B64": b64encode(dnspass.encode('utf-16-le')).decode('utf8'),
"HOSTNAME" : names.hostname,
"DNSNAME" : '%s.%s' % (
names.netbiosname.lower(), names.dnsdomain.lower())
@@ -1367,7 +1367,7 @@ def fill_samdb(samdb, lp, names, logger, policyguid,
else:
domainguid_line = ""
- descr = b64encode(get_domain_descriptor(names.domainsid))
+ descr = b64encode(get_domain_descriptor(names.domainsid)).decode('utf8')
setup_add_ldif(samdb, setup_path("provision_basedn.ldif"), {
"DOMAINDN": names.domaindn,
"DOMAINSID": str(names.domainsid),
@@ -1390,7 +1390,7 @@ def fill_samdb(samdb, lp, names, logger, policyguid,
# If we are setting up a subdomain, then this has been replicated in, so we don't need to add it
if fill == FILL_FULL:
logger.info("Adding configuration container")
- descr = b64encode(get_config_descriptor(names.domainsid))
+ descr = b64encode(get_config_descriptor(names.domainsid)).decode('utf8')
setup_add_ldif(samdb, setup_path("provision_configuration_basedn.ldif"), {
"CONFIGDN": names.configdn,
"DESCRIPTOR": descr,
@@ -1420,12 +1420,12 @@ def fill_samdb(samdb, lp, names, logger, policyguid,
if fill == FILL_FULL:
logger.info("Setting up sam.ldb configuration data")
- partitions_descr = b64encode(get_config_partitions_descriptor(names.domainsid))
- sites_descr = b64encode(get_config_sites_descriptor(names.domainsid))
- ntdsquotas_descr = b64encode(get_config_ntds_quotas_descriptor(names.domainsid))
- protected1_descr = b64encode(get_config_delete_protected1_descriptor(names.domainsid))
- protected1wd_descr = b64encode(get_config_delete_protected1wd_descriptor(names.domainsid))
- protected2_descr = b64encode(get_config_delete_protected2_descriptor(names.domainsid))
+ partitions_descr = b64encode(get_config_partitions_descriptor(names.domainsid)).decode('utf8')
+ sites_descr = b64encode(get_config_sites_descriptor(names.domainsid)).decode('utf8')
+ ntdsquotas_descr = b64encode(get_config_ntds_quotas_descriptor(names.domainsid)).decode('utf8')
+ protected1_descr = b64encode(get_config_delete_protected1_descriptor(names.domainsid)).decode('utf8')
+ protected1wd_descr = b64encode(get_config_delete_protected1wd_descriptor(names.domainsid)).decode('utf8')
+ protected2_descr = b64encode(get_config_delete_protected2_descriptor(names.domainsid)).decode('utf8')
if "2008" in schema.base_schema:
# exclude 2012-specific changes if we're using a 2008 schema
@@ -1475,7 +1475,7 @@ def fill_samdb(samdb, lp, names, logger, policyguid,
})
logger.info("Adding users container")
- users_desc = b64encode(get_domain_users_descriptor(names.domainsid))
+ users_desc = b64encode(get_domain_users_descriptor(names.domainsid)).decode('utf8')
setup_add_ldif(samdb, setup_path("provision_users_add.ldif"), {
"DOMAINDN": names.domaindn,
"USERS_DESCRIPTOR": users_desc
@@ -1484,7 +1484,7 @@ def fill_samdb(samdb, lp, names, logger, policyguid,
setup_modify_ldif(samdb, setup_path("provision_users_modify.ldif"), {
"DOMAINDN": names.domaindn})
logger.info("Adding computers container")
- computers_desc = b64encode(get_domain_computers_descriptor(names.domainsid))
+ computers_desc = b64encode(get_domain_computers_descriptor(names.domainsid)).decode('utf8')
setup_add_ldif(samdb, setup_path("provision_computers_add.ldif"), {
"DOMAINDN": names.domaindn,
"COMPUTERS_DESCRIPTOR": computers_desc
@@ -1494,11 +1494,11 @@ def fill_samdb(samdb, lp, names, logger, policyguid,
setup_path("provision_computers_modify.ldif"), {
"DOMAINDN": names.domaindn})
logger.info("Setting up sam.ldb data")
- infrastructure_desc = b64encode(get_domain_infrastructure_descriptor(names.domainsid))
- lostandfound_desc = b64encode(get_domain_delete_protected2_descriptor(names.domainsid))
- system_desc = b64encode(get_domain_delete_protected1_descriptor(names.domainsid))
- builtin_desc = b64encode(get_domain_builtin_descriptor(names.domainsid))
- controllers_desc = b64encode(get_domain_controllers_descriptor(names.domainsid))
+ infrastructure_desc = b64encode(get_domain_infrastructure_descriptor(names.domainsid)).decode('utf8')
+ lostandfound_desc = b64encode(get_domain_delete_protected2_descriptor(names.domainsid)).decode('utf8')
+ system_desc = b64encode(get_domain_delete_protected1_descriptor(names.domainsid)).decode('utf8')
+ builtin_desc = b64encode(get_domain_builtin_descriptor(names.domainsid)).decode('utf8')
+ controllers_desc = b64encode(get_domain_controllers_descriptor(names.domainsid)).decode('utf8')
setup_add_ldif(samdb, setup_path("provision.ldif"), {
"CREATTIME": str(samba.unix2nttime(int(time.time()))),
"DOMAINDN": names.domaindn,
@@ -1517,14 +1517,14 @@ def fill_samdb(samdb, lp, names, logger, policyguid,
# If we are setting up a subdomain, then this has been replicated in, so we don't need to add it
if fill == FILL_FULL:
- managedservice_descr = b64encode(get_managed_service_accounts_descriptor(names.domainsid))
+ managedservice_descr = b64encode(get_managed_service_accounts_descriptor(names.domainsid)).decode('utf8')
setup_modify_ldif(samdb,
setup_path("provision_configuration_references.ldif"), {
"CONFIGDN": names.configdn,
"SCHEMADN": names.schemadn})
logger.info("Setting up well known security principals")
- protected1wd_descr = b64encode(get_config_delete_protected1wd_descriptor(names.domainsid))
+ protected1wd_descr = b64encode(get_config_delete_protected1wd_descriptor(names.domainsid)).decode('utf8')
setup_add_ldif(samdb, setup_path("provision_well_known_sec_princ.ldif"), {
"CONFIGDN": names.configdn,
"WELLKNOWNPRINCIPALS_DESCRIPTOR": protected1wd_descr,
@@ -1541,8 +1541,8 @@ def fill_samdb(samdb, lp, names, logger, policyguid,
setup_add_ldif(samdb, setup_path("provision_users.ldif"), {
"DOMAINDN": names.domaindn,
"DOMAINSID": str(names.domainsid),
- "ADMINPASS_B64": b64encode(adminpass.encode('utf-16-le')),
- "KRBTGTPASS_B64": b64encode(krbtgtpass.encode('utf-16-le'))
+ "ADMINPASS_B64": b64encode(adminpass.encode('utf-16-le')).decode('utf8'),
+ "KRBTGTPASS_B64": b64encode(krbtgtpass.encode('utf-16-le')).decode('utf8')
}, controls=["relax:0", "provision:0"])
logger.info("Setting up self join")
@@ -2189,7 +2189,7 @@ def provision(logger, session_info, smbconf=None,
if paths.sysvol and not os.path.exists(paths.sysvol):
os.makedirs(paths.sysvol, 0o775)
- ldapi_url = "ldapi://%s" % urllib.quote(paths.s4_ldapi_path, safe="")
+ ldapi_url = "ldapi://%s" % urllib_quote(paths.s4_ldapi_path, safe="")
schema = Schema(domainsid, invocationid=invocationid,
schemadn=names.schemadn, base_schema=base_schema)
diff --git a/python/samba/provision/backend.py b/python/samba/provision/backend.py
index 278e69f..af82987 100644
--- a/python/samba/provision/backend.py
+++ b/python/samba/provision/backend.py
@@ -25,6 +25,7 @@
"""Functions for setting up a Samba configuration (LDB and LDAP backends)."""
+from samba.compat import urllib_quote
from base64 import b64encode
import errno
import ldb
@@ -183,7 +184,7 @@ class LDAPBackend(ProvisionBackend):
if ldap_backend_forced_uri is not None:
self.ldap_uri = ldap_backend_forced_uri
else:
- self.ldap_uri = "ldapi://%s" % urllib.quote(
+ self.ldap_uri = "ldapi://%s" % urllib_quote(
os.path.join(self.ldapdir, "ldapi"), safe="")
if not os.path.exists(self.ldapdir):
diff --git a/python/samba/provision/sambadns.py b/python/samba/provision/sambadns.py
index 3d59c70..63ebff0 100644
--- a/python/samba/provision/sambadns.py
+++ b/python/samba/provision/sambadns.py
@@ -247,12 +247,12 @@ def setup_dns_partitions(samdb, domainsid, domaindn, forestdn, configdn,
setup_add_ldif(samdb, setup_path("provision_dnszones_partitions.ldif"), {
"ZONE_DN": domainzone_dn,
- "SECDESC" : b64encode(descriptor)
+ "SECDESC" : b64encode(descriptor).decode('utf8')
})
if fill_level != FILL_SUBDOMAIN:
setup_add_ldif(samdb, setup_path("provision_dnszones_partitions.ldif"), {
"ZONE_DN": forestzone_dn,
- "SECDESC" : b64encode(descriptor)
+ "SECDESC" : b64encode(descriptor).decode('utf8')
})
domainzone_guid = get_domainguid(samdb, domainzone_dn)
@@ -267,8 +267,8 @@ def setup_dns_partitions(samdb, domainsid, domaindn, forestdn, configdn,
"ZONE_DNS": domainzone_dns,
"CONFIGDN": configdn,
"SERVERDN": serverdn,
- "LOSTANDFOUND_DESCRIPTOR": b64encode(protected2_desc),
- "INFRASTRUCTURE_DESCRIPTOR": b64encode(protected1_desc),
+ "LOSTANDFOUND_DESCRIPTOR": b64encode(protected2_desc).decode('utf8'),
+ "INFRASTRUCTURE_DESCRIPTOR": b64encode(protected1_desc).decode('utf8'),
})
setup_modify_ldif(samdb, setup_path("provision_dnszones_modify.ldif"), {
"CONFIGDN": configdn,
@@ -287,8 +287,8 @@ def setup_dns_partitions(samdb, domainsid, domaindn, forestdn, configdn,
"ZONE_DNS": forestzone_dns,
"CONFIGDN": configdn,
"SERVERDN": serverdn,
- "LOSTANDFOUND_DESCRIPTOR": b64encode(protected2_desc),
- "INFRASTRUCTURE_DESCRIPTOR": b64encode(protected1_desc),
+ "LOSTANDFOUND_DESCRIPTOR": b64encode(protected2_desc).decode('utf8'),
+ "INFRASTRUCTURE_DESCRIPTOR": b64encode(protected1_desc).decode('utf8'),
})
setup_modify_ldif(samdb, setup_path("provision_dnszones_modify.ldif"), {
"CONFIGDN": configdn,
@@ -675,7 +675,7 @@ def secretsdb_setup_dns(secretsdb, names, private_dir, binddns_dir, realm,
"REALM": realm,
"DNSDOMAIN": dnsdomain,
"DNS_KEYTAB": dns_keytab_path,
- "DNSPASS_B64": b64encode(dnspass.encode('utf-8')),
+ "DNSPASS_B64": b64encode(dnspass.encode('utf-8')).decode('utf8'),
"KEY_VERSION_NUMBER": str(key_version_number),
"HOSTNAME": names.hostname,
"DNSNAME" : '%s.%s' % (
@@ -817,7 +817,7 @@ def create_samdb_copy(samdb, logger, paths, names, domainsid, domainguid):
dom_ldb.add(index_res[0])
domainguid_line = "objectGUID: %s\n-" % domainguid
- descr = b64encode(get_domain_descriptor(domainsid))
+ descr = b64encode(get_domain_descriptor(domainsid)).decode('utf8')
setup_add_ldif(dom_ldb, setup_path("provision_basedn.ldif"), {
"DOMAINDN" : names.domaindn,
"DOMAINGUID" : domainguid_line,
diff --git a/python/samba/schema.py b/python/samba/schema.py
index 67ec357..c553708 100644
--- a/python/samba/schema.py
+++ b/python/samba/schema.py
@@ -122,7 +122,7 @@ class Schema(object):
setup_path("provision_schema_basedn_modify.ldif"),
{"SCHEMADN": schemadn, "OBJVERSION" : schema_version})
- descr = b64encode(get_schema_descriptor(domain_sid))
+ descr = b64encode(get_schema_descriptor(domain_sid)).decode('utf8')
self.schema_dn_add = read_and_sub_file(
setup_path("provision_schema_basedn.ldif"),
--
Samba Shared Repository
More information about the samba-cvs
mailing list