provision: Leave result reporting up to caller.
authorJelmer Vernooij <jelmer@samba.org>
Sun, 26 Feb 2012 14:44:40 +0000 (15:44 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Sun, 26 Feb 2012 15:27:06 +0000 (16:27 +0100)
source4/scripting/bin/upgradeprovision
source4/scripting/python/samba/join.py
source4/scripting/python/samba/provision/__init__.py
source4/scripting/python/samba/tests/provision.py
source4/scripting/python/samba/upgrade.py
source4/scripting/python/samba/upgradehelpers.py
source4/setup/provision

index aec0774a9d2046bc2e7d263110c3157246300aba..2adb9a5b1aec887d699ba20bd46e07fea9688ad4 100755 (executable)
@@ -1782,8 +1782,9 @@ if __name__ == '__main__':
             message(SIMPLE, "Creating a reference provision")
             provisiondir = tempfile.mkdtemp(dir=paths.private_dir,
                             prefix="referenceprovision")
-            newprovision(names, creds, session, smbconf, provisiondir,
+            result = newprovision(names, creds, session, smbconf, provisiondir,
                     provision_logger)
+            result.report_logger(provision_logger)
 
             # TODO
             # 6) and 7)
index 10f8ad7e584416edfb6fb22d3076f04553664e68..1e6e2c68989aa993cd805dd16c18de722922dd78 100644 (file)
@@ -599,6 +599,7 @@ class dc_join(object):
                             machinepass=ctx.acct_pass, serverrole="domain controller",
                             sitename=ctx.site, lp=ctx.lp, ntdsguid=ctx.ntds_guid,
                             dns_backend="NONE")
+        presult.report_logger(logger)
         print "Provision OK for domain DN %s" % presult.domaindn
         ctx.local_samdb = presult.samdb
         ctx.lp          = presult.lp
index 6f7adc1a2f61ae1c80300dea76af31cd0ce1ee64..526c07a37c356018cce2207c7d1a8ebba9385fbc 100644 (file)
@@ -118,6 +118,7 @@ class ProvisionPaths(object):
         self.dns = None
         self.winsdb = None
         self.private_dir = None
+        self.phpldapadminconfig = None
 
 
 class ProvisionNames(object):
@@ -379,11 +380,16 @@ class ProvisionResult(object):
 
     def report_logger(self, logger):
         """Report this provision result to a logger."""
-        logger.info("Server Role:           %s" % self.server_role)
-        logger.info("Hostname:              %s" % self.names.hostname)
-        logger.info("NetBIOS Domain:        %s" % self.names.domain)
-        logger.info("DNS Domain:            %s" % self.names.dnsdomain)
-        logger.info("DOMAIN SID:            %s" % self.domainsid)
+        logger.info("Server Role:           %s", self.server_role)
+        logger.info("Hostname:              %s", self.names.hostname)
+        logger.info("NetBIOS Domain:        %s", self.names.domain)
+        logger.info("DNS Domain:            %s", self.names.dnsdomain)
+        logger.info("DOMAIN SID:            %s", self.domainsid)
+
+        if self.paths.phpldapadminconfig is not None:
+            logger.info(
+                "A phpLDAPadmin configuration file suitable for administering the Samba 4 LDAP server has been created in %s .",
+                self.paths.phpldapadminconfig)
 
 
 def check_install(lp, session_info, credentials):
@@ -1837,9 +1843,6 @@ def provision(logger, session_info, credentials, smbconf=None,
     result.samdb = samdb
     result.idmap = idmap
     result.domainsid = str(domainsid)
-    result.report_logger(logger)
-    logger.info("A phpLDAPadmin configuration file suitable for administering the Samba 4 LDAP server has been created in %s .",
-            paths.phpldapadminconfig)
 
     if samdb_fill == FILL_FULL:
         if adminpass_generated:
index fc8451c8e5b5a773b66dccf9be676df141cdce74..937221407e93840c6ef9b8e551b5eb1bfe9acb7d 100644 (file)
@@ -141,8 +141,8 @@ class DummyLogger(object):
     def __init__(self):
         self.entries = []
 
-    def info(self, text):
-        self.entries.append(("INFO", text))
+    def info(self, text, *args):
+        self.entries.append(("INFO", text % args))
 
 
 class ProvisionResultTests(TestCase):
@@ -156,6 +156,7 @@ class ProvisionResultTests(TestCase):
         result.names.domain = "DOMEIN"
         result.names.dnsdomain = "dnsdomein"
         result.domainsid = "S1-1-1"
+        result.paths = ProvisionPaths()
         result.report_logger(logger)
         self.assertEquals(logger.entries, [
             ('INFO', 'Server Role:           domain controller'),
index 850035b9e938108888961686505fc85dba306969..b2fb51e3b7009d837039cde512fea22d2e47b903 100644 (file)
@@ -643,6 +643,7 @@ Please fix this account before attempting to upgrade again
                        hostname=netbiosname.lower(), machinepass=machinepass,
                        serverrole=serverrole, samdb_fill=FILL_FULL,
                        useeadb=useeadb, dns_backend=dns_backend)
+    result.report_logger(logger)
 
     # Import WINS database
     logger.info("Importing WINS database")
index a75ab75ada87c1b58ae9ee5a271d6fbbf662f3c7..c6c9527e365e0534e12ef2055c4b95257ae91f64 100755 (executable)
@@ -259,7 +259,7 @@ def newprovision(names, creds, session, smbconf, provdir, logger):
     os.mkdir(provdir)
     logger.info("Provision stored in %s", provdir)
     dns_backend="BIND9_DLZ"
-    provision(logger, session, creds, smbconf=smbconf,
+    return provision(logger, session, creds, smbconf=smbconf,
             targetdir=provdir, samdb_fill=FILL_FULL, realm=names.realm,
             domain=names.domain, domainguid=names.domainguid,
             domainsid=str(names.domainsid), ntdsguid=names.ntdsguid,
index a2327b339e98482472be555cb44abaf37bb8f8b7..4316ad00c6f5f13bf60ceb8e8d3e4528b7376fd8 100755 (executable)
@@ -243,7 +243,7 @@ elif opts.use_xattrs == "auto" and not lp.get("posix:eadb"):
 
 session = system_session()
 try:
-    provision(logger,
+    result = provision(logger,
           session, creds, smbconf=smbconf, targetdir=opts.targetdir,
           samdb_fill=samdb_fill, realm=opts.realm, domain=opts.domain,
           domainguid=opts.domain_guid, domainsid=opts.domain_sid,
@@ -263,3 +263,5 @@ try:
 except ProvisioningError, e:
     print str(e)
     sys.exit(1)
+
+result.report_logger(logger)