From 85f1c4fdfdda7e9c765c6c4ab7f50519c657a409 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Mon, 27 Aug 2012 17:20:51 +1000 Subject: [PATCH] s4-classicupgrade: Do all the queries of data before the provision() This allows provision to change the s3 smb.conf settings if required. Andrew Bartlett --- source4/scripting/python/samba/upgrade.py | 70 +++++++++++------------ 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/source4/scripting/python/samba/upgrade.py b/source4/scripting/python/samba/upgrade.py index 32d8326cf95..4d4b08a76c9 100644 --- a/source4/scripting/python/samba/upgrade.py +++ b/source4/scripting/python/samba/upgrade.py @@ -769,41 +769,6 @@ Please fix this account before attempting to upgrade again logger.error(" %s" % str(sid)) raise ProvisioningError("Please remove duplicate sid entries before upgrade.") - if not (serverrole == "ROLE_DOMAIN_BDC" or serverrole == "ROLE_DOMAIN_PDC"): - dns_backend = "NONE" - - # Do full provision - result = provision(logger, session_info, None, - targetdir=targetdir, realm=realm, domain=domainname, - domainsid=str(domainsid), next_rid=next_rid, - dc_rid=machinerid, - dom_for_fun_level=dsdb.DS_DOMAIN_FUNCTION_2003, - hostname=netbiosname.lower(), machinepass=machinepass, - serverrole=serverrole, samdb_fill=FILL_FULL, - useeadb=useeadb, dns_backend=dns_backend, use_rfc2307=True, - use_ntvfs=use_ntvfs) - result.report_logger(logger) - - # Import WINS database - logger.info("Importing WINS database") - - samba3_winsdb = None - try: - samba3_winsdb = samba3.get_wins_db() - except IOError, e: - logger.warn('Cannot open wins database, Ignoring: %s', str(e)) - - if samba3_winsdb: - import_wins(Ldb(result.paths.winsdb), samba3_winsdb) - - # Set Account policy - logger.info("Importing Account policy") - import_sam_policy(result.samdb, policy, logger) - - # Migrate IDMAP database - logger.info("Importing idmap database") - import_idmap(result.idmap, samba3, logger) - # Get posix attributes from ldap or the os homes = {} shells = {} @@ -844,6 +809,41 @@ Please fix this account before attempting to upgrade again except KeyError: pass + if not (serverrole == "ROLE_DOMAIN_BDC" or serverrole == "ROLE_DOMAIN_PDC"): + dns_backend = "NONE" + + # Do full provision + result = provision(logger, session_info, None, + targetdir=targetdir, realm=realm, domain=domainname, + domainsid=str(domainsid), next_rid=next_rid, + dc_rid=machinerid, + dom_for_fun_level=dsdb.DS_DOMAIN_FUNCTION_2003, + hostname=netbiosname.lower(), machinepass=machinepass, + serverrole=serverrole, samdb_fill=FILL_FULL, + useeadb=useeadb, dns_backend=dns_backend, use_rfc2307=True, + use_ntvfs=use_ntvfs) + result.report_logger(logger) + + # Import WINS database + logger.info("Importing WINS database") + + samba3_winsdb = None + try: + samba3_winsdb = samba3.get_wins_db() + except IOError, e: + logger.warn('Cannot open wins database, Ignoring: %s', str(e)) + + if samba3_winsdb: + import_wins(Ldb(result.paths.winsdb), samba3_winsdb) + + # Set Account policy + logger.info("Importing Account policy") + import_sam_policy(result.samdb, policy, logger) + + # Migrate IDMAP database + logger.info("Importing idmap database") + import_idmap(result.idmap, samba3, logger) + # Set the s3 context for samba4 configuration new_lp_ctx = s3param.get_context() new_lp_ctx.load(result.lp.configfile) -- 2.34.1