diff options
Diffstat (limited to 'source4/setup/upgrade_from_s3')
-rwxr-xr-x | source4/setup/upgrade_from_s3 | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/source4/setup/upgrade_from_s3 b/source4/setup/upgrade_from_s3 deleted file mode 100755 index 6aaf99d8c6..0000000000 --- a/source4/setup/upgrade_from_s3 +++ /dev/null @@ -1,132 +0,0 @@ -#!/usr/bin/env python -# -# Upgrade from Samba3 -# Copyright Jelmer Vernooij 2005-2007 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -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] <configuration_file> <targetdir> - -Input arguments are: - <configuration_file> - path to existing smb.conf - <targetdir> - 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) |