The branch, master has been updated via cefb41b sambatool drs showrepl: prefer self over ctx in python classes via f6f1929 samba-tool rodc: consistently use self.outf, not stdout via 055b730 subunit.run: report failure in process return code via d8aa50b python samdb.newuser(): use user DN not samaccountname to set password via a43dbb9 tests/samba_tool user virtualCryptSHA: remove unused py3 incompatible import via 0e912a7 tests/password_hash: avoid py3-incompatible md5 module via 57784b4 tests/samba-tool user_wdigest: avoid py3-incompatible md5 module via 5a483bc lib/crypto/REQUIREMENTS: DRSUAPI replication replicated secrets was missing from the RC4 section from be3c8d0 lib: Make g_lock_locks use TDB_DATA
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit cefb41b0edb273a0095e5bda85c9ce5cc3208fa3 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Thu Feb 1 16:08:34 2018 +1300 sambatool drs showrepl: prefer self over ctx in python classes and the line length too. (Now only python/samba/join.py uses ctx for self, but at least it does it consistently. This was the only ctx function in the class). Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abart...@samba.org> Autobuild-User(master): Andrew Bartlett <abart...@samba.org> Autobuild-Date(master): Fri Feb 9 12:34:06 CET 2018 on sn-devel-144 commit f6f192934c8d170b1786eb2fd09560b7e02b50d4 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Thu Feb 1 15:28:28 2018 +1300 samba-tool rodc: consistently use self.outf, not stdout This increases the output of some commands from the point of view of tests which read the outf, so we also need to change those tests a bit. Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 055b7308d252d3b1501f61884defcd5bbe91049e Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Fri Feb 9 09:51:54 2018 +1300 subunit.run: report failure in process return code The protocol requires that the TestResult object remembers when it has failed, but in subclassing unittest.TestResult we forgot to ensure this is true. Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit d8aa50b217b16b7e809fa5d59b6240a5671e86b8 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Fri Feb 2 10:35:25 2018 +1300 python samdb.newuser(): use user DN not samaccountname to set password This is noticably faster in cases (e.g. tests) where the same user is added and deleted many times. The rreason is samaccountname is retained for deleted objects, so the search finds multiple objects that need to be filtered out internally. Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit a43dbb93ffa47c2c39e7bb1d89f3f93941b9e566 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Thu Feb 1 12:02:29 2018 +1300 tests/samba_tool user virtualCryptSHA: remove unused py3 incompatible import Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 0e912a7303bdc859175a6a65106b63d404f85684 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Thu Feb 1 12:01:10 2018 +1300 tests/password_hash: avoid py3-incompatible md5 module Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 57784b41c1245397b1d8eaabdff0553f205b5231 Author: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Date: Thu Feb 1 11:56:06 2018 +1300 tests/samba-tool user_wdigest: avoid py3-incompatible md5 module In Python3, the md5 and sha modules are gone, but the functions are available via hashlib (which is also in python 2.5+). The md5.hexdigest() does what binascii.hexlify(md5.digest()) does. Signed-off-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abart...@samba.org> commit 5a483bc0d1d1daf68999c397a0094631fadacc40 Author: Andrew Bartlett <abart...@samba.org> Date: Fri Feb 9 16:51:22 2018 +1300 lib/crypto/REQUIREMENTS: DRSUAPI replication replicated secrets was missing from the RC4 section Signed-off-by: Andrew Bartlett <abart...@samba.org> Reviewed-by: Douglas Bagnall <douglas.bagn...@catalyst.net.nz> ----------------------------------------------------------------------- Summary of changes: lib/crypto/REQUIREMENTS | 1 + python/samba/netcmd/drs.py | 5 +++-- python/samba/netcmd/rodc.py | 4 ++-- python/samba/samdb.py | 4 +++- python/samba/subunit/run.py | 7 +++++++ python/samba/tests/password_hash.py | 4 ++-- python/samba/tests/samba_tool/rodc.py | 7 +++++-- python/samba/tests/samba_tool/user_virtualCryptSHA.py | 2 -- python/samba/tests/samba_tool/user_wdigest.py | 6 ++---- 9 files changed, 25 insertions(+), 15 deletions(-) Changeset truncated at 500 lines: diff --git a/lib/crypto/REQUIREMENTS b/lib/crypto/REQUIREMENTS index 3cd8a15..ff91a2f 100644 --- a/lib/crypto/REQUIREMENTS +++ b/lib/crypto/REQUIREMENTS @@ -16,6 +16,7 @@ ARCFOUR (RC4) - Password encryption on SAMR for password set/get - NETLOGON SamLogon session keys - Schannel + - DRSUAPI replication replicated secrets # GNUTLS >= 3.0.0 # NETTLE diff --git a/python/samba/netcmd/drs.py b/python/samba/netcmd/drs.py index e1886b9..0ccbf9a 100644 --- a/python/samba/netcmd/drs.py +++ b/python/samba/netcmd/drs.py @@ -112,13 +112,14 @@ class cmd_drs_showrepl(Command): self.message("\t\tLast success @ %s" % nttime2string(n.last_success)) self.message("") - def drsuapi_ReplicaInfo(ctx, info_type): + def drsuapi_ReplicaInfo(self, info_type): '''call a DsReplicaInfo''' req1 = drsuapi.DsReplicaGetInfoRequest1() req1.info_type = info_type try: - (info_type, info) = ctx.drsuapi.DsReplicaGetInfo(ctx.drsuapi_handle, 1, req1) + (info_type, info) = self.drsuapi.DsReplicaGetInfo( + self.drsuapi_handle, 1, req1) except Exception, e: raise CommandError("DsReplicaGetInfo of type %u failed" % info_type, e) return (info_type, info) diff --git a/python/samba/netcmd/rodc.py b/python/samba/netcmd/rodc.py index 41a7a85..533f944 100644 --- a/python/samba/netcmd/rodc.py +++ b/python/samba/netcmd/rodc.py @@ -149,9 +149,9 @@ class cmd_rodc_preload(Command): local_samdb.transaction_commit() if len(errors) > 0: - print "\nPreload encountered problematic users:" + self.message("\nPreload encountered problematic users:") for error in errors: - print " %s" % error + self.message(" %s" % error) class cmd_rodc(SuperCommand): diff --git a/python/samba/samdb.py b/python/samba/samdb.py index d1048a7..7f52a5e 100644 --- a/python/samba/samdb.py +++ b/python/samba/samdb.py @@ -459,7 +459,9 @@ member: %s # Sets the password for it if setpassword: - self.setpassword("(samAccountName=%s)" % ldb.binary_encode(username), password, + self.setpassword(("(distinguishedName=%s)" % + ldb.binary_encode(user_dn)), + password, force_password_change_at_next_login_req) except: self.transaction_cancel() diff --git a/python/samba/subunit/run.py b/python/samba/subunit/run.py index efaeef9..bb598b4 100755 --- a/python/samba/subunit/run.py +++ b/python/samba/subunit/run.py @@ -94,6 +94,10 @@ class TestProtocolClient(unittest.TestResult): def __init__(self, stream): unittest.TestResult.__init__(self) self._stream = stream + self.failed = False + + def wasSuccessful(self): + return not self.failed def addError(self, test, error=None): """Report an error in test test. @@ -102,6 +106,7 @@ class TestProtocolClient(unittest.TestResult): exc_info tuple. """ self._addOutcome("error", test, error=error) + self.failed = True def addExpectedFailure(self, test, error=None): """Report an expected failure in test test. @@ -118,6 +123,7 @@ class TestProtocolClient(unittest.TestResult): exc_info tuple. """ self._addOutcome("failure", test, error=error) + self.failed = True def _addOutcome(self, outcome, test, error=None, error_permitted=True): """Report a failure in test test. @@ -161,6 +167,7 @@ class TestProtocolClient(unittest.TestResult): """Report an unexpected success in test test. """ self._addOutcome("uxsuccess", test, error_permitted=False) + self.failed = True def startTest(self, test): """Mark a test as starting its test run.""" diff --git a/python/samba/tests/password_hash.py b/python/samba/tests/password_hash.py index 611983e..a3a74aa 100644 --- a/python/samba/tests/password_hash.py +++ b/python/samba/tests/password_hash.py @@ -32,7 +32,7 @@ from samba.tests import delete_force import ldb import samba import binascii -import md5 +from hashlib import md5 import crypt @@ -60,7 +60,7 @@ def get_package(sc, name): def calc_digest(user, realm, password): data = "%s:%s:%s" % (user, realm, password) - return binascii.hexlify(md5.new(data).digest()) + return md5(data).hexdigest() class PassWordHashTests(TestCase): diff --git a/python/samba/tests/samba_tool/rodc.py b/python/samba/tests/samba_tool/rodc.py index 4851a53..870b5d4 100644 --- a/python/samba/tests/samba_tool/rodc.py +++ b/python/samba/tests/samba_tool/rodc.py @@ -104,7 +104,8 @@ class RodcCmdTestCase(SambaToolCmdTest): "--server", os.environ["DC_SERVER"], "--ignore-errors") self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully") - self.assertEqual(out, "Replicating DN CN=sambatool5,CN=Users,%s\n" % self.base_dn) + self.assertTrue(out.startswith("Replicating DN CN=sambatool5,CN=Users,%s\n" + % self.base_dn)) def test_multi_with_missing_name_failure(self): (result, out, err) = self.runsubcmd("rodc", "preload", @@ -119,7 +120,9 @@ class RodcCmdTestCase(SambaToolCmdTest): "--server", os.environ["DC_SERVER"], "--ignore-errors") self.assertCmdSuccess(result, out, err, "ensuring rodc prefetch ran successfully") - self.assertEqual(out, "Replicating DN CN=sambatool6,CN=Users,%s\nReplicating DN CN=sambatool5,CN=Users,%s\n" % (self.base_dn, self.base_dn)) + self.assertTrue(out.startswith("Replicating DN CN=sambatool6,CN=Users,%s\n" + "Replicating DN CN=sambatool5,CN=Users,%s\n" + % (self.base_dn, self.base_dn))) def test_multi_without_group_failure(self): (result, out, err) = self.runsubcmd("rodc", "preload", diff --git a/python/samba/tests/samba_tool/user_virtualCryptSHA.py b/python/samba/tests/samba_tool/user_virtualCryptSHA.py index 909de37..3edf1a4 100644 --- a/python/samba/tests/samba_tool/user_virtualCryptSHA.py +++ b/python/samba/tests/samba_tool/user_virtualCryptSHA.py @@ -28,8 +28,6 @@ from samba.auth import system_session from samba.ndr import ndr_unpack from samba.dcerpc import drsblobs from samba import dsdb -import binascii -import md5 import re import random import string diff --git a/python/samba/tests/samba_tool/user_wdigest.py b/python/samba/tests/samba_tool/user_wdigest.py index b531ad0..497855c 100644 --- a/python/samba/tests/samba_tool/user_wdigest.py +++ b/python/samba/tests/samba_tool/user_wdigest.py @@ -30,8 +30,7 @@ from samba import ( ) from samba.ndr import ndr_unpack from samba.dcerpc import drsblobs -import binascii -import md5 +from hashlib import md5 import re import random import string @@ -47,8 +46,7 @@ USER_PASS = ''.join(random.choice(string.ascii_uppercase + # def calc_digest(user, realm, password): data = "%s:%s:%s" % (user, realm, password) - return "%s:%s:%s" % (user, realm, binascii.hexlify(md5.new(data).digest())) - + return "%s:%s:%s" % (user, realm, md5(data).hexdigest()) class UserCmdWdigestTestCase(SambaToolCmdTest): -- Samba Shared Repository