[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-780-g9e71fef

Jelmer Vernooij jelmer at samba.org
Wed Feb 11 17:49:30 GMT 2009


The branch, master has been updated
       via  9e71fef57b956fa62134e5b885fc4ff78a957e71 (commit)
       via  53b59aa2cf78d465f471916c7fae60b9f212840b (commit)
       via  ddb4db7c65db202d71785a404622a4d6f1c3906a (commit)
      from  d9e94bf33681dda2b9fad5efa3226e5d818fab6b (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 9e71fef57b956fa62134e5b885fc4ff78a957e71
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Wed Feb 11 18:45:51 2009 +0100

    Use convenience function for finding setup dir in SaMDB tests.

commit 53b59aa2cf78d465f471916c7fae60b9f212840b
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Wed Feb 11 18:44:57 2009 +0100

    Use convenience function for finding setup_dir based on location of
    python module.

commit ddb4db7c65db202d71785a404622a4d6f1c3906a
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Wed Feb 11 18:31:52 2009 +0100

    Move some samdb-specific code out of provision.

-----------------------------------------------------------------------

Summary of changes:
 source4/scripting/python/samba/provision.py   |   25 +++++++++++++++++++------
 source4/scripting/python/samba/samdb.py       |    8 ++++++++
 source4/scripting/python/samba/tests/samdb.py |    4 ++--
 source4/setup/provision                       |    4 ++--
 source4/setup/provision-backend               |    4 ++--
 source4/setup/upgrade                         |    3 ++-
 6 files changed, 35 insertions(+), 13 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py
index 91cc074..d77b487 100644
--- a/source4/scripting/python/samba/provision.py
+++ b/source4/scripting/python/samba/provision.py
@@ -45,6 +45,23 @@ from ldb import SCOPE_SUBTREE, SCOPE_ONELEVEL, SCOPE_BASE, LdbError, \
 
 __docformat__ = "restructuredText"
 
+
+def find_setup_dir():
+    """Find the setup directory used by provision."""
+    dirname = os.path.dirname(__file__)
+    if "/site-packages/" in dirname:
+        prefix = dirname[:dirname.index("/site-packages/")]
+        for suffix in ["share/setup", "share/samba/setup", "setup"]:
+            ret = os.path.join(prefix, suffix)
+            if os.path.isdir(ret):
+                return ret
+    # In source tree
+    ret = os.path.join(dirname, "../../../setup")
+    if os.path.isdir(ret):
+        return ret
+    raise Exception("Unable to find setup directory.")
+
+
 DEFAULTSITE = "Default-First-Site-Name"
 
 class InvalidNetbiosName(Exception):
@@ -394,7 +411,6 @@ def make_smbconf(smbconf, setup_path, hostname, domain, realm, serverrole,
             })
 
 
-
 def setup_name_mappings(samdb, idmap, sid, domaindn, root_uid, nobody_uid,
                         users_gid, wheel_gid):
     """setup reasonable name mappings for sam names to unix names.
@@ -408,11 +424,7 @@ def setup_name_mappings(samdb, idmap, sid, domaindn, root_uid, nobody_uid,
     :param users_gid: gid of the UNIX users group.
     :param wheel_gid: gid of the UNIX wheel group."""
     # add some foreign sids if they are not present already
-    samdb.add_foreign(domaindn, "S-1-5-7", "Anonymous")
-    samdb.add_foreign(domaindn, "S-1-1-0", "World")
-    samdb.add_foreign(domaindn, "S-1-5-2", "Network")
-    samdb.add_foreign(domaindn, "S-1-5-18", "System")
-    samdb.add_foreign(domaindn, "S-1-5-11", "Authenticated Users")
+    samdb.add_stock_foreign_sids()
 
     idmap.setup_name_mapping("S-1-5-7", idmap.TYPE_UID, nobody_uid)
     idmap.setup_name_mapping("S-1-5-32-544", idmap.TYPE_GID, wheel_gid)
@@ -1423,6 +1435,7 @@ def provision_backend(setup_dir=None, message=None,
             "--server-role='" + serverrole + "'"]
     message("Run provision with: " + " ".join(args))
 
+
 def create_phpldapadmin_config(path, setup_path, ldapi_uri):
     """Create a PHP LDAP admin configuration file.
 
diff --git a/source4/scripting/python/samba/samdb.py b/source4/scripting/python/samba/samdb.py
index 947c460..9cc55e5 100644
--- a/source4/scripting/python/samba/samdb.py
+++ b/source4/scripting/python/samba/samdb.py
@@ -65,6 +65,14 @@ description: %s
         for msg in self.parse_ldif(add):
             self.add(msg[1])
 
+    def add_stock_foreign_sids(self):
+        domaindn = self.domain_dn()
+        self.add_foreign(domaindn, "S-1-5-7", "Anonymous")
+        self.add_foreign(domaindn, "S-1-1-0", "World")
+        self.add_foreign(domaindn, "S-1-5-2", "Network")
+        self.add_foreign(domaindn, "S-1-5-18", "System")
+        self.add_foreign(domaindn, "S-1-5-11", "Authenticated Users")
+
     def enable_account(self, user_dn):
         """Enable an account.
         
diff --git a/source4/scripting/python/samba/tests/samdb.py b/source4/scripting/python/samba/tests/samdb.py
index 8b8f178..434d7a7 100644
--- a/source4/scripting/python/samba/tests/samdb.py
+++ b/source4/scripting/python/samba/tests/samdb.py
@@ -19,7 +19,7 @@
 from samba.auth import system_session
 from samba.credentials import Credentials
 import os
-from samba.provision import setup_samdb, guess_names, setup_templatesdb, make_smbconf
+from samba.provision import setup_samdb, guess_names, setup_templatesdb, make_smbconf, find_setup_dir
 from samba.samdb import SamDB
 from samba.tests import cmdline_loadparm, TestCaseInTempDir
 from samba.dcerpc import security
@@ -30,7 +30,7 @@ from samba import param
 class SamDBTestCase(TestCaseInTempDir):
 
     def setup_path(self, relpath):
-        return os.path.join("setup", relpath)
+        return os.path.join(find_setup_dir(), relpath)
 
     def setUp(self):
         super(SamDBTestCase, self).setUp()
diff --git a/source4/setup/provision b/source4/setup/provision
index eab5d09..5cb851c 100755
--- a/source4/setup/provision
+++ b/source4/setup/provision
@@ -35,7 +35,7 @@ from samba.credentials import DONT_USE_KERBEROS
 from samba.auth import system_session
 import samba.getopt as options
 from samba import param
-from samba.provision import provision, FILL_FULL, FILL_NT4SYNC, FILL_DRS
+from samba.provision import provision, FILL_FULL, FILL_NT4SYNC, FILL_DRS, find_setup_dir
 
 # how do we make this case insensitive??
 
@@ -168,7 +168,7 @@ creds.set_kerberos_state(DONT_USE_KERBEROS)
 
 setup_dir = opts.setupdir
 if setup_dir is None:
-	setup_dir = os.path.dirname(__file__)
+	setup_dir = find_setup_dir()
 
 samdb_fill = FILL_FULL
 if opts.blank:
diff --git a/source4/setup/provision-backend b/source4/setup/provision-backend
index e4e2d56..eca209c 100755
--- a/source4/setup/provision-backend
+++ b/source4/setup/provision-backend
@@ -34,7 +34,7 @@ from samba import param
 
 from samba.auth import system_session
 import samba.getopt as options
-from samba.provision import provision_backend
+from samba.provision import provision_backend, find_setup_dir
 
 parser = optparse.OptionParser("provision [options]")
 sambaopts = options.SambaOptions(parser)
@@ -94,7 +94,7 @@ else:
 
 setup_dir = opts.setupdir
 if setup_dir is None:
-	setup_dir = os.path.dirname(__file__)
+	setup_dir = find_setup_dir()
 
 provision_backend(setup_dir=setup_dir, message=message, smbconf=smbconf, targetdir=opts.targetdir,
 		  realm=opts.realm, domain=opts.domain,
diff --git a/source4/setup/upgrade b/source4/setup/upgrade
index 9c1a0cf..3d13169 100755
--- a/source4/setup/upgrade
+++ b/source4/setup/upgrade
@@ -65,13 +65,14 @@ else:
     smbconf = os.path.join(libdir, "smb.conf")
 samba3 = Samba3(libdir, smbconf)
 
+from samba.provision import find_setup_dir
 from samba.upgrade import upgrade_provision
 
 message("Provisioning\n")
 
 setup_dir = opts.setupdir
 if setup_dir is None:
-	setup_dir = os.path.dirname(__file__)
+	setup_dir = find_setup_dir()
 
 lp = sambaopts.get_loadparm()
 smbconf = lp.configfile


-- 
Samba Shared Repository


More information about the samba-cvs mailing list