From 8268c2d4e231b05b439bc70331b75342b35daa4e Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Mon, 12 Sep 2011 20:21:53 +1000 Subject: s4-s3-upgrade Remove upgrade_from_s3 script, use samba-tool domain samba3upgrade --- source4/setup/tests/blackbox_s3upgrade.sh | 7 +- source4/setup/upgrade_from_s3 | 132 ------------------------------ 2 files changed, 5 insertions(+), 134 deletions(-) delete mode 100755 source4/setup/upgrade_from_s3 (limited to 'source4/setup') diff --git a/source4/setup/tests/blackbox_s3upgrade.sh b/source4/setup/tests/blackbox_s3upgrade.sh index 59bd70e811..44da3234bf 100755 --- a/source4/setup/tests/blackbox_s3upgrade.sh +++ b/source4/setup/tests/blackbox_s3upgrade.sh @@ -10,6 +10,9 @@ fi PREFIX=`pwd`"/$1" shift 1 +samba4bindir="$BINDIR" +samba_tool="$samba4bindir/samba-tool$EXEEXT" + . `dirname $0`/../../../testprogs/blackbox/subunit.sh rm -rf $PREFIX/samba3-upgrade @@ -35,7 +38,7 @@ cat - > $PREFIX/samba3-upgrade/samba3/smb1.conf < $PREFIX/samba3-upgrade/samba3/smb2.conf < $PREFIX/samba3-upgrade/samba3/smb2.conf <. - -import logging -import optparse -import os, sys -import tempfile - -# Find right directory when running from source tree -sys.path.insert(0, "bin/python") - -import samba -import samba.getopt as options -from samba.auth import system_session -from samba.upgrade import upgrade_from_samba3 -from samba.samba3 import Samba3 -from samba.samba3 import param as s3param -from samba.provision import ProvisioningError - -def get_testparm_var(testparm, varname): - cmd = "%s -s -l --parameter-name='%s' 2>/dev/null" % (testparm, varname) - output = os.popen(cmd, 'r').readline() - return output.strip() - -cmd_help = """upgrade_from_s3 [options] - -Input arguments are: - - path to existing smb.conf - - directory in which samba4 database will be created - -In addition, specify either samba3 database directory (with --libdir) or -samba3 testparm utility (with --testparm). """ - -parser = optparse.OptionParser(cmd_help) -parser.add_option_group(options.VersionOptions(parser)) -parser.add_option("--quiet", help="Be quiet") -parser.add_option("--libdir", type="string", metavar="DIR", - help="samba3 database directory") -parser.add_option("--testparm", type="string", metavar="PATH", - help="samba3 testparm utility") -parser.add_option("--use-xattrs", type="choice", choices=["yes","no","auto"], help="Define if we should use the native fs capabilities or a tdb file for storing attributes likes ntacl, auto tries to make an inteligent guess based on the user rights and system capabilities", default="auto") - -opts, args = parser.parse_args() - -if len(args) < 2: - parser.print_usage() - sys.exit(1) - -smbconf = args[0] -if not os.path.exists(smbconf): - print("error: %s does not exist" % smbconf) - sys.exit(1) - -targetdir = args[1] -if not os.path.isdir(targetdir): - print("error: %s is not a directory" % targetdir) - sys.exit(1) - -libdir = opts.libdir -testparm = opts.testparm - -if not libdir and not testparm: - print("error: please specify either libdir or testparm") - sys.exit(1) - -if libdir and testparm: - print("warning: both libdir and testparm specified, libdir will be ignored.") - libdir = None - -logger = logging.getLogger("upgrade") -logger.addHandler(logging.StreamHandler(sys.stdout)) -if opts.quiet: - logger.setLevel(logging.WARNING) -else: - logger.setLevel(logging.INFO) - -s3conf = s3param.get_context() - -eadb = True -if opts.use_xattrs == "yes": - eadb = False -elif opts.use_xattrs == "auto" and not s3conf.get("posix:eadb"): - file = tempfile.NamedTemporaryFile() - try: - samba.ntacls.setntacl(lp, file.name, - "O:S-1-5-32G:S-1-5-32", "S-1-5-32", "native") - eadb = False - except: - logger.info("You are not root or your system do not support xattr, using tdb backend for attributes. " - "If you intend to use this provision in production, rerun the script as root on a system supporting xattrs.") - file.close() - -# Set correct default values from libdir or testparm -paths = {} -if libdir: - paths["state directory"] = libdir - paths["private dir"] = libdir - paths["lock directory"] = libdir -else: - paths["state directory"] = get_testparm_var(testparm, "state directory") - paths["private dir"] = get_testparm_var(testparm, "private dir") - paths["lock directory"] = get_testparm_var(testparm, "lock directory") - -for p in paths: - s3conf.set(p, paths[p]) - -# load smb.conf parameters -logger.info("Reading smb.conf") -s3conf.load(smbconf) -samba3 = Samba3(smbconf, s3conf) - -logger.info("Provisioning") -try: - upgrade_from_samba3(samba3, logger, targetdir, session_info=system_session(), useeadb=eadb) -except ProvisioningError, e: - print str(e) - exit(1) -- cgit