diff options
author | Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de> | 2009-11-27 10:50:03 +0100 |
---|---|---|
committer | Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de> | 2009-11-27 12:26:11 +0100 |
commit | fd313282a24e58570c2fa5b3fdfd0b84d0053363 (patch) | |
tree | 9060e6305406e464345a79bdd46d702d5db40294 /source4/scripting/bin | |
parent | d6c60f8447ce92a15d48a35d3f21d881c4428663 (diff) | |
download | samba-fd313282a24e58570c2fa5b3fdfd0b84d0053363.tar.gz samba-fd313282a24e58570c2fa5b3fdfd0b84d0053363.tar.bz2 samba-fd313282a24e58570c2fa5b3fdfd0b84d0053363.zip |
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
Diffstat (limited to 'source4/scripting/bin')
-rwxr-xr-x | source4/scripting/bin/upgrade_from_s3 | 86 |
1 files changed, 86 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>. + +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] <libdir> <smbconf>") +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) |