[SCM] Samba Shared Repository - branch master updated

Jelmer Vernooij jelmer at samba.org
Wed Apr 7 09:40:22 MDT 2010


The branch, master has been updated
       via  c76bd65... s4-samdb: Allow skipping global schema.
       via  feeedf4... s4-provision: Proper handling of exceptions, use SamDB class but skip global schema.
       via  21ab06f... s4-python: Move samdb_ntds_objectGUID to pydsdb.
       via  fe4b212... urgent_replication: Use standard comments rather than docstrings.
      from  eebc66c... s3-spoolss: Added a winreg_getform1 function.

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


- Log -----------------------------------------------------------------
commit c76bd65b608bed0810013b3a447a4a30fbed98bd
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Wed Apr 7 12:11:12 2010 +0200

    s4-samdb: Allow skipping global schema.

commit feeedf49cfc2edbfdfd0e5512904ea67f2daff11
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Wed Apr 7 12:10:09 2010 +0200

    s4-provision: Proper handling of exceptions, use SamDB class but skip global schema.

commit 21ab06f8a233b38bee750250e455416ac0bef13e
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sun Apr 4 03:30:03 2010 +0200

    s4-python: Move samdb_ntds_objectGUID to pydsdb.

commit fe4b212eba1d7645c8be98240a2630759050197d
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sun Apr 4 03:08:05 2010 +0200

    urgent_replication: Use standard comments rather than docstrings.

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

Summary of changes:
 source4/dsdb/pydsdb.c                              |  148 ++++++++++++++++++++
 source4/lib/ldb/tests/python/urgent_replication.py |   57 ++++----
 source4/scripting/bin/samba_dnsupdate              |    6 +-
 source4/scripting/bin/upgradeprovision             |    3 +-
 source4/scripting/python/pyglue.c                  |  144 -------------------
 source4/scripting/python/samba/__init__.py         |   10 +-
 .../scripting/python/samba/netcmd/setpassword.py   |    2 +-
 source4/scripting/python/samba/provision.py        |   24 ++-
 source4/scripting/python/samba/samdb.py            |   55 ++++++--
 9 files changed, 247 insertions(+), 202 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/dsdb/pydsdb.c b/source4/dsdb/pydsdb.c
index ac9b93c..b18c127 100644
--- a/source4/dsdb/pydsdb.c
+++ b/source4/dsdb/pydsdb.c
@@ -21,6 +21,8 @@
 #include "includes.h"
 #include "dsdb/samdb/samdb.h"
 #include "lib/ldb/pyldb.h"
+#include "libcli/security/security.h"
+#include "librpc/ndr/libndr.h"
 
 /* FIXME: These should be in a header file somewhere, once we finish moving
  * away from SWIG .. */
@@ -83,6 +85,138 @@ static PyObject *py_dsdb_convert_schema_to_openldap(PyObject *self,
 	return ret;
 }
 
+static PyObject *py_samdb_set_domain_sid(PyLdbObject *self, PyObject *args)
+{ 
+	PyObject *py_ldb, *py_sid;
+	struct ldb_context *ldb;
+	struct dom_sid *sid;
+	bool ret;
+
+	if (!PyArg_ParseTuple(args, "OO", &py_ldb, &py_sid))
+		return NULL;
+	
+	PyErr_LDB_OR_RAISE(py_ldb, ldb);
+
+	sid = dom_sid_parse_talloc(NULL, PyString_AsString(py_sid));
+
+	ret = samdb_set_domain_sid(ldb, sid);
+	if (!ret) {
+		PyErr_SetString(PyExc_RuntimeError, "set_domain_sid failed");
+		return NULL;
+	} 
+	Py_RETURN_NONE;
+}
+
+static PyObject *py_samdb_get_domain_sid(PyLdbObject *self, PyObject *args)
+{ 
+	PyObject *py_ldb;
+	struct ldb_context *ldb;
+	const struct dom_sid *sid;
+	PyObject *ret;
+	char *retstr;
+
+	if (!PyArg_ParseTuple(args, "O", &py_ldb))
+		return NULL;
+	
+	PyErr_LDB_OR_RAISE(py_ldb, ldb);
+
+	sid = samdb_domain_sid(ldb);
+	if (!sid) {
+		PyErr_SetString(PyExc_RuntimeError, "samdb_domain_sid failed");
+		return NULL;
+	} 
+	retstr = dom_sid_string(NULL, sid);
+	ret = PyString_FromString(retstr);
+	talloc_free(retstr);
+	return ret;
+}
+
+static PyObject *py_samdb_ntds_invocation_id(PyObject *self, PyObject *args)
+{
+	PyObject *py_ldb, *result;
+	struct ldb_context *ldb;
+	TALLOC_CTX *mem_ctx;
+	const struct GUID *guid;
+
+	mem_ctx = talloc_new(NULL);
+	if (mem_ctx == NULL) {
+		PyErr_NoMemory();
+		return NULL;
+	}
+
+	if (!PyArg_ParseTuple(args, "O", &py_ldb)) {
+		talloc_free(mem_ctx);
+		return NULL;
+	}
+
+	PyErr_LDB_OR_RAISE(py_ldb, ldb);
+
+	guid = samdb_ntds_invocation_id(ldb);
+	if (guid == NULL) {
+		PyErr_SetString(PyExc_RuntimeError,
+						"Failed to find NTDS invocation ID");
+		talloc_free(mem_ctx);
+		return NULL;
+	}
+
+	result = PyString_FromString(GUID_string(mem_ctx, guid));
+	talloc_free(mem_ctx);
+	return result;
+}
+
+static PyObject *py_dsdb_set_ntds_invocation_id(PyObject *self, PyObject *args)
+{
+	PyObject *py_ldb, *py_guid;
+	bool ret;
+	struct GUID guid;
+	struct ldb_context *ldb;
+	if (!PyArg_ParseTuple(args, "OO", &py_ldb, &py_guid))
+		return NULL;
+
+	PyErr_LDB_OR_RAISE(py_ldb, ldb);
+	GUID_from_string(PyString_AsString(py_guid), &guid);
+
+	ret = samdb_set_ntds_invocation_id(ldb, &guid);
+	if (!ret) {
+		PyErr_SetString(PyExc_RuntimeError, "set_ntds_invocation_id failed");
+		return NULL;
+	}
+	Py_RETURN_NONE;
+}
+
+static PyObject *py_samdb_ntds_objectGUID(PyObject *self, PyObject *args)
+{
+	PyObject *py_ldb, *result;
+	struct ldb_context *ldb;
+	TALLOC_CTX *mem_ctx;
+	const struct GUID *guid;
+
+	mem_ctx = talloc_new(NULL);
+	if (mem_ctx == NULL) {
+		PyErr_NoMemory();
+		return NULL;
+	}
+
+	if (!PyArg_ParseTuple(args, "O", &py_ldb)) {
+		talloc_free(mem_ctx);
+		return NULL;
+	}
+
+	PyErr_LDB_OR_RAISE(py_ldb, ldb);
+
+	guid = samdb_ntds_objectGUID(ldb);
+	if (guid == NULL) {
+		PyErr_SetString(PyExc_RuntimeError, "Failed to find NTDS GUID");
+		talloc_free(mem_ctx);
+		return NULL;
+	}
+
+	result = PyString_FromString(GUID_string(mem_ctx, guid));
+	talloc_free(mem_ctx);
+	return result;
+}
+
+
 static PyMethodDef py_dsdb_methods[] = {
 	{ "samdb_server_site_name", (PyCFunction)py_samdb_server_site_name,
 		METH_VARARGS, "Get the server site name as a string"},
@@ -90,6 +224,20 @@ static PyMethodDef py_dsdb_methods[] = {
 		(PyCFunction)py_dsdb_convert_schema_to_openldap, METH_VARARGS, 
 		"dsdb_convert_schema_to_openldap(ldb, target_str, mapping) -> str\n"
 		"Create an OpenLDAP schema from a schema." },
+	{ "samdb_set_domain_sid", (PyCFunction)py_samdb_set_domain_sid,
+		METH_VARARGS,
+		"samdb_set_domain_sid(samdb, sid)\n"
+		"Set SID of domain to use." },
+	{ "samdb_get_domain_sid", (PyCFunction)py_samdb_get_domain_sid,
+		METH_VARARGS,
+		"samdb_get_domain_sid(samdb)\n"
+		"Get SID of domain in use." },
+	{ "samdb_ntds_invocation_id", (PyCFunction)py_samdb_ntds_invocation_id,
+		METH_VARARGS, "get the NTDS invocation ID GUID as a string"},
+	{ "dsdb_set_ntds_invocation_id", (PyCFunction)py_dsdb_set_ntds_invocation_id, METH_VARARGS,
+		NULL },
+	{ "samdb_ntds_objectGUID", (PyCFunction)py_samdb_ntds_objectGUID, METH_VARARGS,
+		"get the NTDS objectGUID as a string"},
 	{ NULL }
 };
 
diff --git a/source4/lib/ldb/tests/python/urgent_replication.py b/source4/lib/ldb/tests/python/urgent_replication.py
index 86d6d65..41eae8d 100755
--- a/source4/lib/ldb/tests/python/urgent_replication.py
+++ b/source4/lib/ldb/tests/python/urgent_replication.py
@@ -1,6 +1,5 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# This is a port of the original in testprogs/ejs/ldap.js
 
 import optparse
 import sys
@@ -60,19 +59,19 @@ class UrgentReplicationTests(unittest.TestCase):
         print "baseDN: %s\n" % self.base_dn
 
     def test_nonurgent_object(self):
-        '''Test if the urgent replication is not activated
-           when handling a non urgent object'''
+        """Test if the urgent replication is not activated
+           when handling a non urgent object"""
         self.ldb.add({
             "dn": "cn=nonurgenttest,cn=users," + self.base_dn,
             "objectclass":"user",
             "samaccountname":"nonurgenttest",
             "description":"nonurgenttest description"});
 
-        ''' urgent replication should not be enabled when creating '''
+        # urgent replication should not be enabled when creating 
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertNotEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should not be enabled when modifying '''
+        # urgent replication should not be enabled when modifying
         m = Message()
         m.dn = Dn(ldb, "cn=nonurgenttest,cn=users," + self.base_dn)
         m["description"] = MessageElement("new description", FLAG_MOD_REPLACE,
@@ -81,7 +80,7 @@ class UrgentReplicationTests(unittest.TestCase):
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertNotEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should not be enabled when deleting '''
+        # urgent replication should not be enabled when deleting
         self.delete_force(self.ldb, "cn=nonurgenttest,cn=users," + self.base_dn)
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertNotEquals(res["uSNHighest"], res["uSNUrgent"]);
@@ -105,11 +104,11 @@ options: 1
 instanceType: 4
 systemFlags: 33554432""", ["relax:0"]);
 
-        ''' urgent replication should be enabled when creation '''
+        # urgent replication should be enabled when creation
         res = glue.dsdb_load_partition_usn(self.ldb, "cn=Configuration," + self.base_dn)
         self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should NOT be enabled when modifying '''
+        # urgent replication should NOT be enabled when modifying
         m = Message()
         m.dn = Dn(ldb, "cn=NTDS Settings test,cn=test server,cn=Servers,cn=Default-First-Site-Name,cn=Sites,cn=Configuration," + self.base_dn)
         m["options"] = MessageElement("0", FLAG_MOD_REPLACE,
@@ -118,7 +117,7 @@ systemFlags: 33554432""", ["relax:0"]);
         res = glue.dsdb_load_partition_usn(self.ldb, "cn=Configuration," + self.base_dn)
         self.assertNotEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should be enabled when deleting '''
+        # urgent replication should be enabled when deleting
         self.delete_force(self.ldb, "cn=NTDS Settings test,cn=test server,cn=Servers,cn=Default-First-Site-Name,cn=Sites,cn=Configuration," + self.base_dn)
         res = glue.dsdb_load_partition_usn(self.ldb, "cn=Configuration," + self.base_dn)
         self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
@@ -139,11 +138,11 @@ systemFlags: 33554432""", ["relax:0"]);
                       "name": "test crossRef",
                       "systemFlags": "1"});
 
-        ''' urgent replication should be enabled when creating '''
+        # urgent replication should be enabled when creating
         res = glue.dsdb_load_partition_usn(self.ldb, "cn=Configuration," + self.base_dn)
         self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should NOT be enabled when modifying '''
+        # urgent replication should NOT be enabled when modifying
         m = Message()
         m.dn = Dn(ldb, "cn=test crossRef,CN=Partitions,CN=Configuration," + self.base_dn)
         m["systemFlags"] = MessageElement("0", FLAG_MOD_REPLACE,
@@ -153,7 +152,7 @@ systemFlags: 33554432""", ["relax:0"]);
         self.assertNotEquals(res["uSNHighest"], res["uSNUrgent"]);
 
 
-        ''' urgent replication should be enabled when deleting '''
+        # urgent replication should be enabled when deleting
         self.delete_force(self.ldb, "cn=test crossRef,CN=Partitions,CN=Configuration," + self.base_dn)
         res = glue.dsdb_load_partition_usn(self.ldb, "cn=Configuration," + self.base_dn)
         self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
@@ -183,14 +182,14 @@ lDAPDisplayName: test attributeSchema
 name: test attributeSchema
 systemFlags: 0""", ["relax:0"]);
 
-            ''' urgent replication should be enabled when creating '''
+            # urgent replication should be enabled when creating
             res = glue.dsdb_load_partition_usn(self.ldb, "cn=Schema,cn=Configuration," + self.base_dn)
             self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
 
         except LdbError:
             print "Not testing urgent replication when creating attributeSchema object ...\n"
 
-        ''' urgent replication should be enabled when modifying '''
+        # urgent replication should be enabled when modifying 
         m = Message()
         m.dn = Dn(ldb, "CN=test attributeSchema,CN=Schema,CN=Configuration," + self.base_dn)
         m["lDAPDisplayName"] = MessageElement("updated test attributeSchema", FLAG_MOD_REPLACE,
@@ -226,14 +225,14 @@ defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCD
 systemFlags: 16
 defaultHidingValue: TRUE""", ["relax:0"]);
 
-            ''' urgent replication should be enabled when creating '''
+            # urgent replication should be enabled when creating
             res = glue.dsdb_load_partition_usn(self.ldb, "cn=Schema,cn=Configuration," + self.base_dn)
             self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
 
         except LdbError:
             print "Not testing urgent replication when creating classSchema object ...\n"
 
-        ''' urgent replication should be enabled when modifying '''
+        # urgent replication should be enabled when modifying 
         m = Message()
         m.dn = Dn(ldb, "CN=test classSchema,CN=Schema,CN=Configuration," + self.base_dn)
         m["lDAPDisplayName"] = MessageElement("updated test classSchema", FLAG_MOD_REPLACE,
@@ -244,7 +243,6 @@ defaultHidingValue: TRUE""", ["relax:0"]);
 
 
     def test_secret_object(self):
-
         '''Test if the urgent replication is activated
            when handling a secret object'''
 
@@ -256,11 +254,11 @@ defaultHidingValue: TRUE""", ["relax:0"]);
             "currentValue":"xxxxxxx"});
 
 
-        ''' urgent replication should be enabled when creationg '''
+        # urgent replication should be enabled when creating
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should be enabled when modifying '''
+        # urgent replication should be enabled when modifying
         m = Message()
         m.dn = Dn(ldb, "cn=test secret,cn=System," + self.base_dn)
         m["currentValue"] = MessageElement("yyyyyyyy", FLAG_MOD_REPLACE,
@@ -269,7 +267,7 @@ defaultHidingValue: TRUE""", ["relax:0"]);
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should NOT be enabled when deleting '''
+        # urgent replication should NOT be enabled when deleting 
         self.delete_force(self.ldb, "cn=test secret,cn=System," + self.base_dn)
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertNotEquals(res["uSNHighest"], res["uSNUrgent"]);
@@ -289,11 +287,11 @@ systemFlags: -1946157056
 isCriticalSystemObject: TRUE
 rIDAvailablePool: 133001-1073741823""", ["relax:0"])
 
-        ''' urgent replication should be enabled when creating '''
+        # urgent replication should be enabled when creating
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should be enabled when modifying '''
+        # urgent replication should be enabled when modifying
         m = Message()
         m.dn = Dn(ldb, "CN=RID Manager test,CN=System," + self.base_dn)
         m["systemFlags"] = MessageElement("0", FLAG_MOD_REPLACE,
@@ -302,7 +300,7 @@ rIDAvailablePool: 133001-1073741823""", ["relax:0"])
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should NOT be enabled when deleting '''
+        # urgent replication should NOT be enabled when deleting 
         self.delete_force(self.ldb, "CN=RID Manager test,CN=System," + self.base_dn)
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertNotEquals(res["uSNHighest"], res["uSNUrgent"]);
@@ -321,11 +319,11 @@ rIDAvailablePool: 133001-1073741823""", ["relax:0"])
             "pwdLastSet":"0",
             "description":"urgent attributes test description"});
 
-        ''' urgent replication should NOT be enabled when creating '''
+        # urgent replication should NOT be enabled when creating
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertNotEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should be enabled when modifying userAccountControl '''
+        # urgent replication should be enabled when modifying userAccountControl 
         m = Message()
         m.dn = Dn(ldb, "cn=user UrgAttr test,cn=users," + self.base_dn)
         m["userAccountControl"] = MessageElement("0", FLAG_MOD_REPLACE,
@@ -334,7 +332,7 @@ rIDAvailablePool: 133001-1073741823""", ["relax:0"])
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should be enabled when modifying lockoutTime '''
+        # urgent replication should be enabled when modifying lockoutTime
         m = Message()
         m.dn = Dn(ldb, "cn=user UrgAttr test,cn=users," + self.base_dn)
         m["lockoutTime"] = MessageElement("1", FLAG_MOD_REPLACE,
@@ -343,7 +341,7 @@ rIDAvailablePool: 133001-1073741823""", ["relax:0"])
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should be enabled when modifying pwdLastSet '''
+        # urgent replication should be enabled when modifying pwdLastSet
         m = Message()
         m.dn = Dn(ldb, "cn=user UrgAttr test,cn=users," + self.base_dn)
         m["pwdLastSet"] = MessageElement("1", FLAG_MOD_REPLACE,
@@ -352,7 +350,8 @@ rIDAvailablePool: 133001-1073741823""", ["relax:0"])
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should NOT be enabled when modifying a not-urgent attribute '''
+        # urgent replication should NOT be enabled when modifying a not-urgent
+        # attribute
         m = Message()
         m.dn = Dn(ldb, "cn=user UrgAttr test,cn=users," + self.base_dn)
         m["description"] = MessageElement("updated urgent attributes test description",
@@ -361,7 +360,7 @@ rIDAvailablePool: 133001-1073741823""", ["relax:0"])
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertNotEquals(res["uSNHighest"], res["uSNUrgent"]);
 
-        ''' urgent replication should NOT be enabled when deleting '''
+        # urgent replication should NOT be enabled when deleting
         self.delete_force(self.ldb, "cn=user UrgAttr test,cn=users," + self.base_dn)
         res = glue.dsdb_load_partition_usn(self.ldb, self.base_dn)
         self.assertNotEquals(res["uSNHighest"], res["uSNUrgent"]);
diff --git a/source4/scripting/bin/samba_dnsupdate b/source4/scripting/bin/samba_dnsupdate
index b3956aa..73611c8 100755
--- a/source4/scripting/bin/samba_dnsupdate
+++ b/source4/scripting/bin/samba_dnsupdate
@@ -34,7 +34,6 @@ import samba
 import optparse
 from samba import getopt as options
 from ldb import SCOPE_BASE
-from samba import glue
 from samba.auth import system_session
 from samba.samdb import SamDB
 
@@ -69,7 +68,7 @@ if opts.all_interfaces:
 else:
     all_interfaces = False
 
-IPs = glue.interface_ips(lp, all_interfaces)
+IPs = samba.interface_ips(lp, all_interfaces)
 nsupdate_cmd = lp.get('nsupdate command')
 
 if len(IPs) == 0:
@@ -200,7 +199,8 @@ def get_subst_vars():
     global lp
     vars = {}
 
-    samdb = SamDB(url=lp.get("sam database"), session_info=system_session(), lp=lp)
+    samdb = SamDB(url=lp.get("sam database"), session_info=system_session(),
+			      lp=lp)
 
     vars['DNSDOMAIN'] = lp.get('realm').lower()
     vars['HOSTNAME']  = lp.get('netbios name').lower() + "." + vars['DNSDOMAIN']
diff --git a/source4/scripting/bin/upgradeprovision b/source4/scripting/bin/upgradeprovision
index 8f01bd3..234152b 100755
--- a/source4/scripting/bin/upgradeprovision
+++ b/source4/scripting/bin/upgradeprovision
@@ -39,7 +39,6 @@ from ldb import SCOPE_SUBTREE, SCOPE_BASE, \
                 FLAG_MOD_REPLACE, FLAG_MOD_ADD, FLAG_MOD_DELETE,\
                 MessageElement, Message, Dn
 from samba import param
-from samba import glue
 from samba.misc import messageEltFlagToString
 from samba.provision import find_setup_dir, get_domain_descriptor, get_config_descriptor, secretsdb_self_join,set_gpo_acl,getpolicypath,create_gpo_struct
 from samba.provisionexceptions import ProvisioningError
@@ -845,7 +844,7 @@ def update_machine_account_password(paths, creds, session, names):
         assert(len(res) == 1)
 
         msg = Message(res[0].dn)
-        machinepass = glue.generate_random_password(128, 255)
+        machinepass = samba.generate_random_password(128, 255)
         msg["userPassword"] = MessageElement(machinepass, FLAG_MOD_REPLACE, "userPassword")
         sam_ldb.modify(msg)
 
diff --git a/source4/scripting/python/pyglue.c b/source4/scripting/python/pyglue.c
index 8639958..8d19b06 100644
--- a/source4/scripting/python/pyglue.c
+++ b/source4/scripting/python/pyglue.c
@@ -117,72 +117,6 @@ static PyObject *py_set_debug_level(PyObject *self, PyObject *args)
 	Py_RETURN_NONE;
 }
 
-static PyObject *py_samdb_set_domain_sid(PyLdbObject *self, PyObject *args)
-{ 
-	PyObject *py_ldb, *py_sid;
-	struct ldb_context *ldb;
-	struct dom_sid *sid;
-	bool ret;
-
-	if (!PyArg_ParseTuple(args, "OO", &py_ldb, &py_sid))
-		return NULL;
-	
-	PyErr_LDB_OR_RAISE(py_ldb, ldb);
-
-	sid = dom_sid_parse_talloc(NULL, PyString_AsString(py_sid));
-
-	ret = samdb_set_domain_sid(ldb, sid);
-	if (!ret) {
-		PyErr_SetString(PyExc_RuntimeError, "set_domain_sid failed");
-		return NULL;
-	} 
-	Py_RETURN_NONE;
-}
-
-static PyObject *py_samdb_get_domain_sid(PyLdbObject *self, PyObject *args)
-{ 
-	PyObject *py_ldb;
-	struct ldb_context *ldb;
-	const struct dom_sid *sid;
-	PyObject *ret;
-	char *retstr;
-
-	if (!PyArg_ParseTuple(args, "O", &py_ldb))
-		return NULL;
-	
-	PyErr_LDB_OR_RAISE(py_ldb, ldb);
-
-	sid = samdb_domain_sid(ldb);
-	if (!sid) {
-		PyErr_SetString(PyExc_RuntimeError, "samdb_domain_sid failed");


-- 
Samba Shared Repository


More information about the samba-cvs mailing list