Author: jelmer Date: 2007-09-26 01:34:42 +0000 (Wed, 26 Sep 2007) New Revision: 25339
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25339 Log: Start converting provision to python. Modified: branches/4.0-python/ branches/4.0-python/source/setup/provision Changeset: Property changes on: branches/4.0-python ___________________________________________________________________ Name: bzr:revision-info ...skipped... Name: bzr:revision-id:v3-trunk0 ...skipped... Modified: branches/4.0-python/source/setup/provision =================================================================== --- branches/4.0-python/source/setup/provision 2007-09-26 01:34:35 UTC (rev 25338) +++ branches/4.0-python/source/setup/provision 2007-09-26 01:34:42 UTC (rev 25339) @@ -1,12 +1,13 @@ -#!/bin/sh -exec smbscript "$0" ${1+"$@"} -/* - provision a Samba4 server - Copyright Andrew Tridgell 2005 - Released under the GNU GPL v2 or later -*/ +#!/usr/bin/python +# +# provision a Samba4 server +# Copyright Andrew Tridgell 2005 +# Released under the GNU GPL v2 or later +# -options = GetOptions(ARGV, +from samba import getopt + +options = getopt( "POPT_AUTOHELP", "POPT_COMMON_SAMBA", "POPT_COMMON_VERSION", @@ -35,33 +36,23 @@ 'partitions-only', 'ldap-base', 'ldap-backend=s', - 'ldap-module=s', - 'aci=s'); + 'ldap-module=s', + 'aci=s'); -if (options == undefined) { - println("Failed to parse options"); - return -1; -} +from provision import provision -libinclude("base.js"); -libinclude("provision.js"); +# +# print a message if quiet is not set +# +def message(text): + if options["quiet"] == undefined: + print text -/* - print a message if quiet is not set -*/ -function message() -{ - if (options["quiet"] == undefined) { - print(vsprintf(arguments)); - } -} - -/* - show some help -*/ -function ShowHelp() -{ - print(" +# +# show some help +# +def ShowHelp(): + print " Samba4 provisioning provision [options] @@ -100,16 +91,16 @@ options['host-name'] = hostname(); } -/* - main program -*/ +# +# main program +# if (options["realm"] == undefined || options["domain"] == undefined || options["host-name"] == undefined) { ShowHelp(); } -/* cope with an initially blank smb.conf */ +# cope with an initially blank smb.conf var lp = loadparm_init(); lp.set("realm", options.realm); lp.set("workgroup", options.domain); @@ -152,34 +143,31 @@ message("LDAP module: %s on backend: %s\n", subobj.LDAPMODULE, subobj.LDAPBACKEND); } -if (!provision_validate(subobj, message)) { - return -1; -} +if not provision_validate(subobj, message): + return -1 -var system_session = system_session(); -var creds = options.get_credentials(); -message("Provisioning for %s in realm %s\n", subobj.DOMAIN, subobj.REALM); -message("Using administrator password: %s\n", subobj.ADMINPASS); -if (ldapbase) { - provision_ldapbase(subobj, message, paths); - message("Please install the LDIF located in " + paths.ldap_basedn_ldif + ", " + paths.ldap_config_basedn_ldif + " and " + paths.ldap_schema_basedn_ldif + " into your LDAP server, and re-run with --ldap-backend=ldap://my.ldap.server\n"); -} else if (partitions_only) { - provision_become_dc(subobj, message, false, paths, system_session); -} else { - provision(subobj, message, blank, paths, system_session, creds, ldapbackend); - provision_dns(subobj, message, paths, system_session, creds); - message("To reproduce this provision, run with:\n"); - message("--realm='" + subobj.REALM_CONF + "' --domain='" + subobj.DOMAIN_CONF + "' --domain-guid='" + subobj.DOMAINGUID + "' \\\n"); - message("--policy-guid='" + subobj.POLICYGUID + "' --host-name='" + subobj.HOSTNAME + "' --host-ip='" + subobj.HOSTIP + "' \\\n"); - message("--host-guid='" + subobj.HOSTGUID + "' --invocationid='" + subobj.INVOCATIONID + "' \\\n"); - message("--adminpass='" + subobj.ADMINPASS + "' --krbtgtpass='" + subobj.KRBTGTPASS + "' \\\n"); - message("--machinepass='" + subobj.MACHINEPASS + "' --dnspass='" + subobj.DNSPASS + "' \\\n"); - message("--root='" + subobj.ROOT + "' --nobody='" + subobj.NOBODY + "' --nogroup-'" + subobj.NOGROUP + "' \\\n"); - message("--wheel='" + subobj.WHEEL + "' --users='" + subobj.USERS + "' --server-role='" + subobj.SERVERROLE + "' \\\n"); - message("--ldap-backend='" + subobj.LDAPBACKEND + "' --ldap-mdoule='" + subobj.LDAPMODULE + "' \\\n"); +system_session = system_session() +creds = options.get_credentials() +message("Provisioning for %s in realm %s\n", subobj.DOMAIN, subobj.REALM) +message("Using administrator password: %s\n", subobj.ADMINPASS) +if ldapbase: + provision_ldapbase(subobj, message, paths) + message("Please install the LDIF located in " + paths.ldap_basedn_ldif + ", " + paths.ldap_config_basedn_ldif + " and " + paths.ldap_schema_basedn_ldif + " into your LDAP server, and re-run with --ldap-backend=ldap://my.ldap.server\n") +elif partitions_only: + provision_become_dc(subobj, message, false, paths, system_session) +else: + provision(subobj, message, blank, paths, system_session, creds, ldapbackend) + provision_dns(subobj, message, paths, system_session, creds) + message("To reproduce this provision, run with:\n") + message("--realm='" + subobj.REALM_CONF + "' --domain='" + subobj.DOMAIN_CONF + "' --domain-guid='" + subobj.DOMAINGUID + "' \\\n") + message("--policy-guid='" + subobj.POLICYGUID + "' --host-name='" + subobj.HOSTNAME + "' --host-ip='" + subobj.HOSTIP + "' \\\n") + message("--host-guid='" + subobj.HOSTGUID + "' --invocationid='" + subobj.INVOCATIONID + "' \\\n") + message("--adminpass='" + subobj.ADMINPASS + "' --krbtgtpass='" + subobj.KRBTGTPASS + "' \\\n") + message("--machinepass='" + subobj.MACHINEPASS + "' --dnspass='" + subobj.DNSPASS + "' \\\n") + message("--root='" + subobj.ROOT + "' --nobody='" + subobj.NOBODY + "' --nogroup-'" + subobj.NOGROUP + "' \\\n") + message("--wheel='" + subobj.WHEEL + "' --users='" + subobj.USERS + "' --server-role='" + subobj.SERVERROLE + "' \\\n") + message("--ldap-backend='" + subobj.LDAPBACKEND + "' --ldap-mdoule='" + subobj.LDAPMODULE + "' \\\n") message("--aci='" + subobj.ACI + "' \\\n") -} - -message("All OK\n"); -return 0; +message("All OK\n") +return 0
