Fix up provision and samdb tests.
authorAndrew Bartlett <abartlet@samba.org>
Fri, 30 May 2008 04:26:47 +0000 (14:26 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 30 May 2008 04:26:47 +0000 (14:26 +1000)
This fixes up the provision to operate with a target directory - it
must override the smb.conf in this case.

Andrew Bartlett
(This used to be commit 89fc39f7edb214065aff461bc225f41443eae3c7)

source4/scripting/python/samba/provision.py
source4/scripting/python/samba/tests/samdb.py

index 71c1ac31878eb5fe6f48f7c76524cf4390b080ee..b7112e16c34db28e1534fd71ed158b81599dfbb5 100644 (file)
@@ -930,8 +930,9 @@ def provision(setup_dir, message, session_info,
     if aci is None:
         aci = "# no aci for local ldb"
 
-    if smbconf is None:
-        os.makedirs(os.path.join(targetdir, "etc"))
+    if targetdir is not None:
+        if (not os.path.exists(os.path.join(targetdir, "etc"))):
+            os.makedirs(os.path.join(targetdir, "etc"))
         smbconf = os.path.join(targetdir, "etc", "smb.conf")
 
     # only install a new smb.conf if there isn't one there already
index 7e8ba053d44a42f50bad7f23ef9a3487370b9b84..fcf93a3fc6f5b68d975abdd508cf73311ca38272 100644 (file)
 from samba.auth import system_session
 from samba.credentials import Credentials
 import os
-from samba.provision import setup_samdb, guess_names, setup_templatesdb
+from samba.provision import setup_samdb, guess_names, setup_templatesdb, make_smbconf
 from samba.samdb import SamDB
 from samba.tests import cmdline_loadparm, TestCaseInTempDir
 from samba import security
 from unittest import TestCase
 import uuid
+import param
 
 class SamDBTestCase(TestCaseInTempDir):
     def setUp(self):
@@ -43,9 +44,22 @@ class SamDBTestCase(TestCaseInTempDir):
         hostguid = str(uuid.uuid4())
         path = os.path.join(self.tempdir, "samdb.ldb")
         session_info = system_session()
-        names = guess_names(lp=cmdline_loadparm, hostname="foo", 
-                            domain="EXAMPLE.COM", dnsdomain="example.com", 
-                            serverrole="domain controller", 
+        
+        hostname="foo"
+        domain="EXAMPLE"
+        dnsdomain="example.com" 
+        serverrole="domain controller"
+
+        smbconf = os.path.join(self.tempdir, "smb.conf")
+        make_smbconf(smbconf, setup_path, hostname, domain, dnsdomain, serverrole, 
+                     self.tempdir)
+
+        lp = param.LoadParm()
+        lp.load(smbconf)
+
+        names = guess_names(lp=lp, hostname=hostname, 
+                            domain=domain, dnsdomain=dnsdomain, 
+                            serverrole=severrole, 
                             domaindn=self.domaindn, configdn=configdn, 
                             schemadn=schemadn)
         setup_templatesdb(os.path.join(self.tempdir, "templates.ldb"), 
@@ -58,9 +72,10 @@ class SamDBTestCase(TestCaseInTempDir):
                                  policyguid, False, "secret", 
                                  "secret", "secret", invocationid, 
                                  "secret", "domain controller")
+
     def tearDown(self):
         for f in ['templates.ldb', 'schema.ldb', 'configuration.ldb', 
-                  'users.ldb', 'samdb.ldb']:
+                  'users.ldb', 'samdb.ldb', 'smb.conf']:
             os.remove(os.path.join(self.tempdir, f))
         super(SamDBTestCase, self).tearDown()