The branch, master has been updated via b973c50... s4:upgrade_from_s3 - Move it back to "setup" via f068664... s4:setup/provision - Rework via 3ca61d9... s4:upgrade.py - remove my copyright via 68f7b84... s4:upgrade.py - readd accidentally removed empty lines via ecfd1df... s4:samba3.py/upgrade.py: Revert from 8a34cf6... s4-ldb: make it much easier to use common ldb controls
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit b973c5083699ad2b22c72fafe5c4b77f1f4eeccb Author: Matthias Dieter Wallnöfer <mwallnoe...@yahoo.de> Date: Sat Nov 28 19:23:08 2009 +0100 s4:upgrade_from_s3 - Move it back to "setup" Suggested by Jelmer commit f0686645a99de226f199130fee07910d0f6462be Author: Matthias Dieter Wallnöfer <mwallnoe...@yahoo.de> Date: Sat Nov 28 17:03:57 2009 +0100 s4:setup/provision - Rework - Revert change in "ask" - was previously correct - Readd accidentally removed checks for non-null realm and domainname - On interactive mode perform only one "ask" call per question - Inform the user about the unset administrator password commit 3ca61d9a011d5e8ff677df041f4afb4c3a8be0b4 Author: Matthias Dieter Wallnöfer <mwallnoe...@yahoo.de> Date: Sat Nov 28 18:48:47 2009 +0100 s4:upgrade.py - remove my copyright First I wanted to add also other changes but then I didn't introduce them. Therefore remove my copyright again. commit 68f7b84140e59800b2a5c9c96b7a27f7a67235bb Author: Matthias Dieter Wallnöfer <mwallnoe...@yahoo.de> Date: Sat Nov 28 16:59:18 2009 +0100 s4:upgrade.py - readd accidentally removed empty lines Jelmer pointed out that this is against the PEP8 norm commit ecfd1dfcbd8f301b879942322f7fe765f03599bb Author: Matthias Dieter Wallnöfer <mwallnoe...@yahoo.de> Date: Sat Nov 28 15:28:45 2009 +0100 s4:samba3.py/upgrade.py: Revert This reverts commit 2175c0ed0649d545ea833d50e8d33fbee9051c35. This reverts commit 6c3e2417a0639cd7c367de93615c422cf5217456. This reverts commit dbb8989e05ac3189a5eca11fa40d572388ea02fc. This reverts commit 82adfa39b75aa628c88f828278c6ac09335d1a49. This reverts commit f299efa8f05c6a5b739222bdf75690a4591d3650. After a small discussion with Jelmer we agreed that this isn't the right way to fix the problem. We should wait for a real patch rather to rely on temporal hacks. ----------------------------------------------------------------------- Summary of changes: WHATSNEW4.txt | 2 +- howto4.txt | 2 +- source4/scripting/python/samba/samba3.py | 11 ++++---- source4/scripting/python/samba/tests/samba3.py | 6 ++-- source4/scripting/python/samba/upgrade.py | 7 ++++- source4/selftest/tests.sh | 2 +- source4/setup/provision | 29 ++++++++++++++++++---- source4/{scripting/bin => setup}/upgrade_from_s3 | 0 8 files changed, 40 insertions(+), 19 deletions(-) rename source4/{scripting/bin => setup}/upgrade_from_s3 (100%) Changeset truncated at 500 lines: diff --git a/WHATSNEW4.txt b/WHATSNEW4.txt index 9718bf4..1c9d1e4 100644 --- a/WHATSNEW4.txt +++ b/WHATSNEW4.txt @@ -116,7 +116,7 @@ KNOWN ISSUES - Users upgrading existing databases to Samba4 should carefully consult upgrading-samba4.txt. We have made a number of changes in this release that should make it easier to upgrade in future. - Btw: there exists also a script under the "scripting/bin" directory of the + Btw: there exists also a script under the "setup" directory of the source distribution called "upgrade_from_s3" which should allow a step-up from Samba3 to Samba4. It's not included yet in the binary distributions since it's completely experimental! diff --git a/howto4.txt b/howto4.txt index 50acf23..e33d040 100644 --- a/howto4.txt +++ b/howto4.txt @@ -93,7 +93,7 @@ use the procedures shown in "upgrading-samba4.txt" to upgrade it and keep all data. When you are using Samba3 at the moment you could try the experimental script -"upgrade_from_s3" under the "scripting/bin" directory of the source +"upgrade_from_s3" under the "setup" directory of the source distribution (it isn't included in binary distributions yet). Step 5: Create a simple smb.conf diff --git a/source4/scripting/python/samba/samba3.py b/source4/scripting/python/samba/samba3.py index 809fd01..9873679 100644 --- a/source4/scripting/python/samba/samba3.py +++ b/source4/scripting/python/samba/samba3.py @@ -509,7 +509,7 @@ class TdbSam(TdbDatabase): """Samba 3 TDB passdb backend reader.""" def _check_version(self): self.version = fetch_uint32(self.tdb, "INFO/version\0") or 0 - assert self.version in (0, 1, 2, 3) + assert self.version in (0, 1, 2) def usernames(self): """Iterate over the usernames in this Tdb database.""" @@ -592,11 +592,10 @@ class TdbSam(TdbDatabase): for entry in hours: for i in range(8): user.hours.append(ord(entry) & (2 ** i) == (2 ** i)) - # FIXME (reactivate also the tests in tests/samba3.py after fixing this) - #(user.bad_password_count, data) = unpack_uint16(data) - #(user.logon_count, data) = unpack_uint16(data) - #(user.unknown_6, data) = unpack_uint32(data) - #assert len(data) == 0 + (user.bad_password_count, data) = unpack_uint16(data) + (user.logon_count, data) = unpack_uint16(data) + (user.unknown_6, data) = unpack_uint32(data) + assert len(data) == 0 return user diff --git a/source4/scripting/python/samba/tests/samba3.py b/source4/scripting/python/samba/tests/samba3.py index 8128c51..71e08bd 100644 --- a/source4/scripting/python/samba/tests/samba3.py +++ b/source4/scripting/python/samba/tests/samba3.py @@ -122,15 +122,15 @@ class TdbSamTestCase(unittest.TestCase): user.logoff_time = 2147483647 user.acct_desc = "" user.group_rid = 1001 - # FIXME user.logon_count = 0 - # FIXME user.bad_password_count = 0 + user.logon_count = 0 + user.bad_password_count = 0 user.domain = "BEDWYR" user.munged_dial = "" user.workstations = "" user.user_rid = 1000 user.kickoff_time = 2147483647 user.logoff_time = 2147483647 - # FIXME user.unknown_6 = 1260L + user.unknown_6 = 1260L user.logon_divs = 0 user.hours = [True for i in range(168)] other = self.samdb["root"] diff --git a/source4/scripting/python/samba/upgrade.py b/source4/scripting/python/samba/upgrade.py index 3c45245..29f2f7c 100644 --- a/source4/scripting/python/samba/upgrade.py +++ b/source4/scripting/python/samba/upgrade.py @@ -2,7 +2,6 @@ # # backend code for upgrading from Samba3 # Copyright Jelmer Vernooij 2005-2007 -# Copyright Matthias Dieter Wallnoefer 2009 # Released under the GNU GPL v3 or later # @@ -93,6 +92,7 @@ def import_sam_account(samldb,acc,domaindn,domainsid): "ntPwdHash:": acc.nt_password, }) + def import_sam_group(samldb, sid, gid, sid_name_use, nt_name, comment, domaindn): """Upgrade a SAM group. @@ -132,6 +132,7 @@ def import_sam_group(samldb, sid, gid, sid_name_use, nt_name, comment, domaindn) "samba3SidNameUse": str(sid_name_use) }) + def import_idmap(samdb,samba3_idmap,domaindn): """Import idmap data. @@ -156,6 +157,7 @@ def import_idmap(samdb,samba3_idmap,domaindn): "type": "group", "unixID": str(gid)}) + def import_wins(samba4_winsdb, samba3_winsdb): """Import settings from a Samba3 WINS database. @@ -221,6 +223,7 @@ replace: @LIST samdb.add({"dn": "@MAP=samba3sam", "@MAP_URL": ldapurl}) + smbconf_keep = [ "dos charset", "unix charset", @@ -411,7 +414,7 @@ def upgrade_provision(samba3, setup_dir, message, credentials, session_info, hostname=netbiosname, machinepass=machinepass, serverrole=serverrole) - # FIXME: import_wins(Ldb(result.paths.winsdb), samba3.get_wins_db()) + import_wins(Ldb(result.paths.winsdb), samba3.get_wins_db()) # FIXME: import_registry(registry.Registry(), samba3.get_registry()) diff --git a/source4/selftest/tests.sh b/source4/selftest/tests.sh index 7c9b19f..73209ef 100755 --- a/source4/selftest/tests.sh +++ b/source4/selftest/tests.sh @@ -465,7 +465,7 @@ plantest "ldap.secdesc.python" dc PYTHONPATH="$PYTHONPATH:../lib/subunit/python" plantest "ldap.acl.python" dc PYTHONPATH="$PYTHONPATH:../lib/subunit/python" $PYTHON $samba4srcdir/lib/ldb/tests/python/acl.py $CONFIGURATION \$SERVER -U\$USERNAME%\$PASSWORD -W \$DOMAIN plantest "blackbox.samba3dump" none $PYTHON $samba4srcdir/scripting/bin/samba3dump $samba4srcdir/../testdata/samba3 rm -rf $PREFIX/upgrade -plantest "blackbox.upgrade" none $PYTHON $samba4srcdir/scripting/bin/upgrade_from_s3 $CONFIGURATION --targetdir=$PREFIX/upgrade $samba4srcdir/../testdata/samba3 ../testdata/samba3/smb.conf +plantest "blackbox.upgrade" none $PYTHON $samba4srcdir/setup/upgrade_from_s3 $CONFIGURATION --targetdir=$PREFIX/upgrade $samba4srcdir/../testdata/samba3 ../testdata/samba3/smb.conf rm -rf $PREFIX/provision mkdir $PREFIX/provision plantest "blackbox.provision.py" none PYTHON="$PYTHON" $samba4srcdir/setup/tests/blackbox_provision.sh "$PREFIX/provision" diff --git a/source4/setup/provision b/source4/setup/provision index f1aa07c..b855dc2 100755 --- a/source4/setup/provision +++ b/source4/setup/provision @@ -129,17 +129,25 @@ if opts.interactive: if default is not None: print "%s [%s]: " % (prompt,default), else: - print "%s: " % (prompt), + print "%s: " % (prompt,), return sys.stdin.readline().rstrip("\n") or default try: - opts.realm = ask("Realm", socket.getfqdn().split(".", 1)[1].upper()) + default = socket.getfqdn().split(".", 1)[1].upper() except IndexError: - opts.realm = ask("Realm", None) + default = None + opts.realm = ask("Realm", default) + if opts.realm in (None, ""): + print >>sys.stderr, "No realm set!" + sys.exit(1) try: - opts.domain = ask("Domain", opts.realm.split(".")[0]) + default = opts.realm.split(".")[0] except IndexError: - opts.domain = ask("Domain", None) + default = None + opts.domain = ask("Domain", default) + if opts.domain is None: + print >> sys.stderr, "No domain set!" + sys.exit(1) opts.server_role = ask("Server Role (dc, member, standalone)", "dc") for i in range(3): @@ -148,6 +156,17 @@ if opts.interactive: print >>sys.stderr, "Invalid administrator password." else: break +else: + if opts.realm is None or opts.domain is None: + if opts.realm is None: + print >>sys.stderr, "No realm set!" + if opts.domain is None: + print >> sys.stderr, "No domain set!" + parser.print_usage() + sys.exit(1) + +if not opts.adminpass: + message("Administrator password will be set randomly!") lp = sambaopts.get_loadparm() smbconf = lp.configfile diff --git a/source4/scripting/bin/upgrade_from_s3 b/source4/setup/upgrade_from_s3 similarity index 100% rename from source4/scripting/bin/upgrade_from_s3 rename to source4/setup/upgrade_from_s3 -- Samba Shared Repository