From fd313282a24e58570c2fa5b3fdfd0b84d0053363 Mon Sep 17 00:00:00 2001 From: Matthias Dieter Wallnöfer Date: Fri, 27 Nov 2009 10:50:03 +0100 Subject: s4:upgrade script - rename it to "upgrade_from_s3" and do some rework - Give a better name to the script - Move it to the location where also "upgradeprovision" resides - Fix up trailing whitespaces and tabs --- source4/scripting/bin/upgrade_from_s3 | 86 +++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100755 source4/scripting/bin/upgrade_from_s3 (limited to 'source4/scripting') diff --git a/source4/scripting/bin/upgrade_from_s3 b/source4/scripting/bin/upgrade_from_s3 new file mode 100755 index 0000000000..03f44157c2 --- /dev/null +++ b/source4/scripting/bin/upgrade_from_s3 @@ -0,0 +1,86 @@ +#!/usr/bin/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 . + +import getopt +import optparse +import os, sys + +# Find right directory when running from source tree +sys.path.insert(0, "bin/python") + +import samba +import samba.getopt as options +from samba import param +from samba.auth import system_session +from samba.provision import find_setup_dir +from samba.upgrade import upgrade_provision +from samba.samba3 import Samba3 + +parser = optparse.OptionParser("upgrade_from_s3 [options] ") +sambaopts = options.SambaOptions(parser) +parser.add_option_group(sambaopts) +parser.add_option_group(options.VersionOptions(parser)) +credopts = options.CredentialsOptions(parser) +parser.add_option_group(credopts) +parser.add_option("--setupdir", type="string", metavar="DIR", + help="directory with setup files") +parser.add_option("--realm", type="string", metavar="REALM", help="set realm") +parser.add_option("--quiet", help="Be quiet") +parser.add_option("--blank", + help="do not add users or groups, just the structure") +parser.add_option("--targetdir", type="string", metavar="DIR", + help="Set target directory") + +opts, args = parser.parse_args() + +def message(text): + """Print a message if quiet is not set.""" + if opts.quiet: + print text + +if len(args) < 1: + parser.print_usage() + sys.exit(1) + +message("Reading Samba3 databases and smb.conf\n") + +libdir = args[0] +if not os.path.isdir(libdir): + print "error: %s is not a directory" + sys.exit(1) + +if len(args) > 1: + smbconf = args[1] +else: + smbconf = os.path.join(libdir, "smb.conf") + +samba3 = Samba3(libdir, smbconf) + +message("Provisioning\n") + +setup_dir = opts.setupdir +if setup_dir is None: + setup_dir = find_setup_dir() + +lp = sambaopts.get_loadparm() +smbconf = lp.configfile +creds = credopts.get_credentials(lp) + +upgrade_provision(samba3, setup_dir, message, credentials=creds, + session_info=system_session(), smbconf=smbconf, + targetdir=opts.targetdir) -- cgit