summaryrefslogtreecommitdiff
path: root/source4/setup/upgrade_from_s3
diff options
context:
space:
mode:
Diffstat (limited to 'source4/setup/upgrade_from_s3')
-rwxr-xr-xsource4/setup/upgrade_from_s3132
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)