[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha2-854-g2da0734

Jelmer Vernooij jelmer at samba.org
Fri Feb 15 14:27:45 GMT 2008


The branch, v4-0-test has been updated
       via  2da0734f439ee5f4e3eb1c9416e7df4450f08534 (commit)
       via  bb473a8d11ce0ab8d5c9f0b339861b552fc2b262 (commit)
       via  4b9d5bc57ca4ee14c142ea720dce5e4ee97f8c16 (commit)
       via  fe8bfda22d8e1fdbece4209b7489419074565efd (commit)
       via  0f3a1dbb5355bf5181d9a100af35be8a7f292be6 (commit)
       via  53c5924195844dac4dfe99e5c9b0c8911394497a (commit)
       via  f6c5b787cc031ddf858d7b16f455692a98a19b9e (commit)
       via  1a1f8a5e6b193f25f4838a3e7964cdf0590f4eb2 (commit)
       via  ed2b72ac76ec069fec799b3fd805cca59fc28de4 (commit)
      from  646c597b79cb01474ed8139e4e790206bd84632c (commit)

http://gitweb.samba.org/?samba.git;a=shortlog;h=v4-0-test


- Log -----------------------------------------------------------------
commit 2da0734f439ee5f4e3eb1c9416e7df4450f08534
Merge: bb473a8d11ce0ab8d5c9f0b339861b552fc2b262 646c597b79cb01474ed8139e4e790206bd84632c
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Fri Feb 15 15:27:21 2008 +0100

    Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into v4-0-trivial
    
    Conflicts:
    
    	source/torture/libnet/libnet_BecomeDC.c

commit bb473a8d11ce0ab8d5c9f0b339861b552fc2b262
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Fri Feb 15 15:22:01 2008 +0100

    Mark the provision_bare() test as known failing for now.

commit 4b9d5bc57ca4ee14c142ea720dce5e4ee97f8c16
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Fri Feb 15 15:14:55 2008 +0100

    Use struct for provision parameters since there are so many of them.

commit fe8bfda22d8e1fdbece4209b7489419074565efd
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Fri Feb 15 02:12:37 2008 +0100

    Add ability to not specify certain provision options(), fix some other options.

commit 0f3a1dbb5355bf5181d9a100af35be8a7f292be6
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Fri Feb 15 01:37:57 2008 +0100

    Add test for provision_bare() code.

commit 53c5924195844dac4dfe99e5c9b0c8911394497a
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Fri Feb 15 01:16:12 2008 +0100

    Finish migration of provision code.

commit f6c5b787cc031ddf858d7b16f455692a98a19b9e
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Fri Feb 15 00:35:17 2008 +0100

    Move Python dependencies.

commit 1a1f8a5e6b193f25f4838a3e7964cdf0590f4eb2
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Fri Feb 15 00:23:56 2008 +0100

    Avoid using private libnet test structure inside util_provision.

commit ed2b72ac76ec069fec799b3fd805cca59fc28de4
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Thu Feb 14 23:28:31 2008 +0100

    Split provision from C code out of becomedc.

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

Summary of changes:
 source/samba4-knownfail                    |    1 +
 source/scripting/python/samba/provision.py |   40 ++--
 source/torture/config.mk                   |    8 +-
 source/torture/libnet/libnet_BecomeDC.c    |  341 +++------------------------
 source/torture/local/torture.c             |   37 +++-
 source/torture/util_provision.c            |  355 ++++++++++++++++++++++++++++
 source/torture/util_provision.h            |   51 ++++
 7 files changed, 501 insertions(+), 332 deletions(-)
 create mode 100644 source/torture/util_provision.c
 create mode 100644 source/torture/util_provision.h


Changeset truncated at 500 lines:

diff --git a/source/samba4-knownfail b/source/samba4-knownfail
index ab03145..376d627 100644
--- a/source/samba4-knownfail
+++ b/source/samba4-knownfail
@@ -36,3 +36,4 @@ BASE-CHARSET.*.Testing partial surrogate
 RAP.*netservergetinfo
 kinit with pkinit # fails with: salt type 3 not supported
 samba4.blackbox.provision.py.reprovision # Fails with entry already exists
+LOCAL-TORTURE.provision
diff --git a/source/scripting/python/samba/provision.py b/source/scripting/python/samba/provision.py
index 97021fc..d30eaf3 100644
--- a/source/scripting/python/samba/provision.py
+++ b/source/scripting/python/samba/provision.py
@@ -271,7 +271,7 @@ def setup_name_mappings(ldb, sid, domaindn, root, nobody, nogroup, users,
 def setup_samdb_partitions(samdb_path, setup_path, message, lp, session_info, 
                            credentials, configdn, schemadn, domaindn, 
                            hostname, netbiosname, dnsdomain, realm, 
-                           rootdn, serverrole, ldap_backend=None, 
+                           rootdn, serverrole, sitename, ldap_backend=None, 
                            ldap_backend_type=None, erase=False):
     """Setup the partitions for the SAM database. 
     
@@ -378,7 +378,8 @@ def setup_samdb_partitions(samdb_path, setup_path, message, lp, session_info,
 
         message("Setting up sam.ldb rootDSE")
         setup_samdb_rootdse(samdb, setup_path, schemadn, domaindn, hostname, 
-                            dnsdomain, realm, rootdn, configdn, netbiosname)
+                            dnsdomain, realm, rootdn, configdn, netbiosname,
+                            sitename)
 
         if erase:
             message("Erasing data from partitions")
@@ -472,7 +473,8 @@ def setup_registry(path, setup_path, session_info, credentials, lp):
 
 
 def setup_samdb_rootdse(samdb, setup_path, schemadn, domaindn, hostname, 
-                        dnsdomain, realm, rootdn, configdn, netbiosname):
+                        dnsdomain, realm, rootdn, configdn, netbiosname,
+                        sitename):
     """Setup the SamDB rootdse.
 
     :param samdb: Sam Database handle
@@ -482,7 +484,7 @@ def setup_samdb_rootdse(samdb, setup_path, schemadn, domaindn, hostname,
         "SCHEMADN": schemadn, 
         "NETBIOSNAME": netbiosname,
         "DNSDOMAIN": dnsdomain,
-        "DEFAULTSITE": DEFAULTSITE,
+        "DEFAULTSITE": sitename,
         "REALM": realm,
         "DNSNAME": "%s.%s" % (hostname, dnsdomain),
         "DOMAINDN": domaindn,
@@ -495,7 +497,7 @@ def setup_samdb_rootdse(samdb, setup_path, schemadn, domaindn, hostname,
 def setup_self_join(samdb, configdn, schemadn, domaindn, 
                     netbiosname, hostname, dnsdomain, machinepass, dnspass, 
                     realm, domainname, domainsid, invocationid, setup_path,
-                    policyguid, hostguid=None):
+                    policyguid, sitename, hostguid=None):
     """Join a host to its own domain."""
     if hostguid is not None:
         hostguid_add = "objectGUID: %s" % hostguid
@@ -508,7 +510,7 @@ def setup_self_join(samdb, configdn, schemadn, domaindn,
               "DOMAINDN": domaindn,
               "INVOCATIONID": invocationid,
               "NETBIOSNAME": netbiosname,
-              "DEFAULTSITE": DEFAULTSITE,
+              "DEFAULTSITE": sitename,
               "DNSNAME": "%s.%s" % (hostname, dnsdomain),
               "MACHINEPASS_B64": b64encode(machinepass),
               "DNSPASS_B64": b64encode(dnspass),
@@ -529,7 +531,8 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
                 domainsid, aci, domainguid, policyguid, 
                 domainname, fill, adminpass, krbtgtpass, 
                 machinepass, hostguid, invocationid, dnspass,
-                serverrole, ldap_backend=None, ldap_backend_type=None):
+                serverrole, sitename, ldap_backend=None, 
+                ldap_backend_type=None):
     """Setup a complete SAM Database.
     
     :note: This will wipe the main SAM database file!
@@ -544,7 +547,8 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
                            hostname=hostname, netbiosname=netbiosname, 
                            dnsdomain=dnsdomain, realm=realm, rootdn=rootdn,
                            ldap_backend=ldap_backend, serverrole=serverrole,
-                           ldap_backend_type=ldap_backend_type, erase=erase)
+                           ldap_backend_type=ldap_backend_type, erase=erase,
+                           sitename=sitename)
 
     samdb = SamDB(path, session_info=session_info, 
                   credentials=credentials, lp=lp)
@@ -562,7 +566,7 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
     if lp.get("server role") == "domain controller":
         samdb.set_invocation_id(invocationid)
 
-    load_schema(setup_path, samdb, schemadn, netbiosname, configdn)
+    load_schema(setup_path, samdb, schemadn, netbiosname, configdn, sitename)
 
     samdb.transaction_start()
         
@@ -584,7 +588,7 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
             "DOMAINSID": str(domainsid),
             "SCHEMADN": schemadn, 
             "NETBIOSNAME": netbiosname,
-            "DEFAULTSITE": DEFAULTSITE,
+            "DEFAULTSITE": sitename,
             "CONFIGDN": configdn,
             "POLICYGUID": policyguid,
             "DOMAINDN": domaindn,
@@ -614,7 +618,7 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
             setup_path("provision_schema_basedn_modify.ldif"), {
             "SCHEMADN": schemadn,
             "NETBIOSNAME": netbiosname,
-            "DEFAULTSITE": DEFAULTSITE,
+            "DEFAULTSITE": sitename,
             "CONFIGDN": configdn,
             })
 
@@ -629,7 +633,7 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
         setup_add_ldif(samdb, setup_path("provision_configuration.ldif"), {
             "CONFIGDN": configdn,
             "NETBIOSNAME": netbiosname,
-            "DEFAULTSITE": DEFAULTSITE,
+            "DEFAULTSITE": sitename,
             "DNSDOMAIN": dnsdomain,
             "DOMAIN": domainname,
             "SCHEMADN": schemadn,
@@ -656,7 +660,7 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
         setup_add_ldif(samdb, setup_path("provision.ldif"), {
             "DOMAINDN": domaindn,
             "NETBIOSNAME": netbiosname,
-            "DEFAULTSITE": DEFAULTSITE,
+            "DEFAULTSITE": sitename,
             "CONFIGDN": configdn,
             })
 
@@ -679,7 +683,7 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
                                 machinepass=machinepass, domainname=domainname, 
                                 domainsid=domainsid, policyguid=policyguid,
                                 hostname=hostname, hostguid=hostguid, 
-                                setup_path=setup_path)
+                                setup_path=setup_path, sitename=sitename)
 
     #We want to setup the index last, as adds are faster unindexed
         message("Setting up sam.ldb index")
@@ -702,7 +706,7 @@ def provision(lp, setup_dir, message, paths, session_info,
               policyguid=None, invocationid=None, machinepass=None, 
               dnspass=None, root=None, nobody=None, nogroup=None, users=None, 
               wheel=None, backup=None, aci=None, serverrole=None, erase=False,
-              ldap_backend=None, ldap_backend_type=None):
+              ldap_backend=None, ldap_backend_type=None, sitename=DEFAULTSITE):
     """Provision samba4
     
     :note: caution, this wipes all existing data!
@@ -851,7 +855,7 @@ def provision(lp, setup_dir, message, paths, session_info,
                         hostguid=hostguid, invocationid=invocationid, 
                         machinepass=machinepass, dnspass=dnspass,
                         serverrole=serverrole, ldap_backend=ldap_backend, 
-                        ldap_backend_type=ldap_backend_type)
+                        ldap_backend_type=ldap_backend_type, sitename=sitename)
 
     if lp.get("server role") == "domain controller":
        policy_path = os.path.join(paths.sysvol, dnsdomain, "Policies", 
@@ -945,7 +949,7 @@ def create_zone_file(path, setup_path, samdb, dnsdomain, domaindn,
         })
 
 
-def load_schema(setup_path, samdb, schemadn, netbiosname, configdn):
+def load_schema(setup_path, samdb, schemadn, netbiosname, configdn, sitename):
     """Load schema for the SamDB.
     
     :param samdb: Load a schema into a SamDB.
@@ -962,7 +966,7 @@ def load_schema(setup_path, samdb, schemadn, netbiosname, configdn):
                     "SCHEMADN": schemadn,
                     "NETBIOSNAME": netbiosname,
                     "CONFIGDN": configdn,
-                    "DEFAULTSITE": DEFAULTSITE
+                    "DEFAULTSITE":sitename 
     })
     samdb.attach_schema_from_ldif(head_data, schema_data)
 
diff --git a/source/torture/config.mk b/source/torture/config.mk
index 18e5ea7..5a3e3d0 100644
--- a/source/torture/config.mk
+++ b/source/torture/config.mk
@@ -14,8 +14,8 @@ PUBLIC_DEPENDENCIES = \
 		LIBTALLOC 
 
 [SUBSYSTEM::TORTURE_UTIL]
-OBJ_FILES = util_smb.o
-PRIVATE_DEPENDENCIES = LIBCLI_RAW
+OBJ_FILES = util_smb.o util_provision.o
+PRIVATE_DEPENDENCIES = LIBCLI_RAW LIBPYTHON smbcalls
 PUBLIC_PROTO_HEADER = util.h
 PUBLIC_DEPENDENCIES = POPT_CREDENTIALS
 
@@ -295,10 +295,8 @@ OBJ_FILES = \
 		libnet/libnet_BecomeDC.o
 PRIVATE_DEPENDENCIES = \
 		LIBSAMBA-NET \
-		smbcalls \
 		POPT_CREDENTIALS \
-		torture_rpc \
-		LIBPYTHON
+		torture_rpc
 # End SUBSYSTEM TORTURE_NET
 #################################
 
diff --git a/source/torture/libnet/libnet_BecomeDC.c b/source/torture/libnet/libnet_BecomeDC.c
index 997dbc9..13e1aec 100644
--- a/source/torture/libnet/libnet_BecomeDC.c
+++ b/source/torture/libnet/libnet_BecomeDC.c
@@ -34,8 +34,10 @@
 #include "librpc/gen_ndr/ndr_drsblobs.h"
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "system/time.h"
-#include "auth/auth.h"
 #include "lib/ldb_wrap.h"
+#include "auth/auth.h"
+#include "param/param.h"
+#include "torture/util_provision.h"
 
 struct test_become_dc_state {
 	struct libnet_context *ctx;
@@ -66,6 +68,35 @@ struct test_become_dc_state {
 	} path;
 };
 
+static NTSTATUS test_become_dc_prepare_db(void *private_data,
+					      const struct libnet_BecomeDC_PrepareDB *p)
+{
+	struct test_become_dc_state *s = talloc_get_type(private_data, struct test_become_dc_state);
+	struct provision_settings settings;
+
+	settings.dns_name = p->dest_dsa->dns_name;
+	settings.site_name = p->dest_dsa->site_name;
+	settings.root_dn_str = p->forest->root_dn_str;
+	settings.domain_dn_str = p->domain->dn_str;
+	settings.config_dn_str = p->forest->config_dn_str;
+	settings.schema_dn_str = p->forest->schema_dn_str;
+	settings.invocation_id = &p->dest_dsa->invocation_id;
+	settings.netbios_name = p->dest_dsa->netbios_name;
+	settings.realm = torture_join_dom_dns_name(s->tj);
+	settings.domain = torture_join_dom_netbios_name(s->tj);
+	settings.ntds_guid = &p->dest_dsa->ntds_guid;
+	settings.ntds_dn_str = p->dest_dsa->ntds_dn_str;
+	settings.machine_password = cli_credentials_get_password(s->machine_account);
+	settings.samdb_ldb = s->path.samdb_ldb;
+	settings.secrets_ldb = s->path.secrets_ldb;
+	settings.secrets_keytab = s->path.secrets_keytab;
+	settings.schemadn_ldb = s->path.schemadn_ldb;
+	settings.configdn_ldb = s->path.configdn_ldb;
+	settings.domaindn_ldb = s->path.domaindn_ldb;
+
+	return provision_bare(s, s->tctx->lp_ctx, &settings);
+}
+
 static NTSTATUS test_become_dc_check_options(void *private_data,
 					     const struct libnet_BecomeDC_CheckOptions *o)
 {
@@ -90,309 +121,6 @@ static NTSTATUS test_become_dc_check_options(void *private_data,
 	return NT_STATUS_OK;
 }
 
-#include "lib/appweb/ejs/ejs.h"
-#include "lib/appweb/ejs/ejsInternal.h"
-#include "scripting/ejs/smbcalls.h"
-
-static EjsId eid;
-static int ejs_error;
-
-static void test_ejs_exception(const char *reason)
-{
-	Ejs *ep = ejsPtr(eid);
-	ejsSetErrorMsg(eid, "%s", reason);
-	fprintf(stderr, "%s", ep->error);
-	ejs_error = 127;
-}
-
-static int test_run_ejs(char *script)
-{
-	EjsHandle handle = 0;
-	MprVar result;
-	char *emsg;
-	TALLOC_CTX *mem_ctx = talloc_new(NULL);
-	struct MprVar *return_var;
-
-	mprSetCtx(mem_ctx);
-
-	if (ejsOpen(NULL, NULL, NULL) != 0) {
-		d_printf("ejsOpen(): unable to initialise EJS subsystem\n");
-		ejs_error = 127;
-		goto failed;
-	}
-
-	smb_setup_ejs_functions(test_ejs_exception);
-
-	if ((eid = ejsOpenEngine(handle, 0)) == (EjsId)-1) {
-		d_printf("smbscript: ejsOpenEngine(): unable to initialise an EJS engine\n");
-		ejs_error = 127;
-		goto failed;
-	}
-
-	mprSetVar(ejsGetGlobalObject(eid), "ARGV", mprList("ARGV", NULL));
-
-	/* run the script */
-	if (ejsEvalScript(eid, script, &result, &emsg) == -1) {
-		d_printf("smbscript: ejsEvalScript(): %s\n", emsg);
-		if (ejs_error == 0) ejs_error = 127;
-		goto failed;
-	}
-
-	return_var = ejsGetReturnValue(eid);
-	ejs_error = mprVarToNumber(return_var);
-
-failed:
-	ejsClose();
-	talloc_free(mem_ctx);
-	return ejs_error;
-}
-
-static NTSTATUS test_become_dc_prepare_db_ejs(void *private_data,
-					      const struct libnet_BecomeDC_PrepareDB *p)
-{
-	struct test_become_dc_state *s = talloc_get_type(private_data, struct test_become_dc_state);
-	char *ejs;
-	int ret;
-	bool ok;
-
-	DEBUG(0,("Provision for Become-DC test using EJS\n"));
-
-	DEBUG(0,("New Server[%s] in Site[%s]\n",
-		p->dest_dsa->dns_name, p->dest_dsa->site_name));
-
-	DEBUG(0,("DSA Instance [%s]\n"
-		"\tobjectGUID[%s]\n"
-		"\tinvocationId[%s]\n",
-		p->dest_dsa->ntds_dn_str,
-		GUID_string(s, &p->dest_dsa->ntds_guid),
-		GUID_string(s, &p->dest_dsa->invocation_id)));
-
-	DEBUG(0,("Pathes under PRIVATEDIR[%s]\n"
-		 "SAMDB[%s] SECRETS[%s] KEYTAB[%s]\n",
-		lp_private_dir(s->tctx->lp_ctx),
-		s->path.samdb_ldb,
-		s->path.secrets_ldb,
-		s->path.secrets_keytab));
-
-	DEBUG(0,("Schema Partition[%s => %s]\n",
-		p->forest->schema_dn_str, s->path.schemadn_ldb));
-
-	DEBUG(0,("Config Partition[%s => %s]\n",
-		p->forest->config_dn_str, s->path.configdn_ldb));
-
-	DEBUG(0,("Domain Partition[%s => %s]\n",
-		p->domain->dn_str, s->path.domaindn_ldb));
-
-	ejs = talloc_asprintf(s,
-		"libinclude(\"base.js\");\n"
-		"libinclude(\"provision.js\");\n"
-		"\n"
-		"function message() { print(vsprintf(arguments)); }\n"
-		"\n"
-		"var subobj = provision_guess();\n"
-		"subobj.ROOTDN       = \"%s\";\n"
-		"subobj.DOMAINDN     = \"%s\";\n"
-		"subobj.DOMAINDN_LDB = \"%s\";\n"
-		"subobj.CONFIGDN     = \"%s\";\n"
-		"subobj.CONFIGDN_LDB = \"%s\";\n"
-		"subobj.SCHEMADN     = \"%s\";\n"
-		"subobj.SCHEMADN_LDB = \"%s\";\n"
-		"subobj.HOSTNAME     = \"%s\";\n"
-		"subobj.REALM        = \"%s\";\n"
-		"subobj.DOMAIN       = \"%s\";\n"
-		"subobj.DEFAULTSITE  = \"%s\";\n"
-		"\n"
-		"subobj.KRBTGTPASS   = \"_NOT_USED_\";\n"
-		"subobj.MACHINEPASS  = \"%s\";\n"
-		"subobj.ADMINPASS    = \"_NOT_USED_\";\n"
-		"\n"
-		"var paths = provision_default_paths(subobj);\n"
-		"paths.samdb = \"%s\";\n"
-		"paths.secrets = \"%s\";\n"
-		"paths.templates = \"%s\";\n"
-		"paths.keytab = \"%s\";\n"
-		"paths.dns_keytab = \"%s\";\n"
-		"\n"
-		"var system_session = system_session();\n"
-		"\n"
-		"var ok = provision_become_dc(subobj, message, true, paths, system_session);\n"
-		"assert(ok);\n"
-		"\n"
-		"return 0;\n",
-		p->forest->root_dn_str,		/* subobj.ROOTDN */
-		p->domain->dn_str,		/* subobj.DOMAINDN */
-		s->path.domaindn_ldb,		/* subobj.DOMAINDN_LDB */
-		p->forest->config_dn_str,	/* subobj.CONFIGDN */
-		s->path.configdn_ldb,		/* subobj.CONFIGDN_LDB */
-		p->forest->schema_dn_str,	/* subobj.SCHEMADN */
-		s->path.schemadn_ldb,		/* subobj.SCHEMADN_LDB */
-		p->dest_dsa->netbios_name,	/* subobj.HOSTNAME */
-		torture_join_dom_dns_name(s->tj),/* subobj.REALM */
-		torture_join_dom_netbios_name(s->tj),/* subobj.DOMAIN */
-		p->dest_dsa->site_name,		/* subobj.DEFAULTSITE */
-		cli_credentials_get_password(s->machine_account),/* subobj.MACHINEPASS */
-		s->path.samdb_ldb,		/* paths.samdb */
-		s->path.templates_ldb,		/* paths.templates */
-		s->path.secrets_ldb,		/* paths.secrets */
-		s->path.secrets_keytab,	        /* paths.keytab */
-		s->path.dns_keytab);	        /* paths.dns_keytab */
-	NT_STATUS_HAVE_NO_MEMORY(ejs);
-
-	ret = test_run_ejs(ejs);
-	if (ret != 0) {
-		DEBUG(0,("Failed to run ejs script: %d:\n%s",
-			ret, ejs));
-		talloc_free(ejs);
-		return NT_STATUS_FOOBAR;
-	}
-	talloc_free(ejs);
-
-	talloc_free(s->ldb);
-
-	DEBUG(0,("Open the SAM LDB with system credentials: %s\n", 
-		 s->path.samdb_ldb));
-
-	s->ldb = ldb_wrap_connect(s, s->tctx->lp_ctx, s->path.samdb_ldb,
-				  system_session(s, s->tctx->lp_ctx),
-				  NULL, 0, NULL);
-	if (!s->ldb) {
-		DEBUG(0,("Failed to open '%s'\n",
-			s->path.samdb_ldb));
-		return NT_STATUS_INTERNAL_DB_ERROR;
-	}
-
-	ok = samdb_set_ntds_invocation_id(s->ldb, &p->dest_dsa->invocation_id);
-	if (!ok) {
-		DEBUG(0,("Failed to set cached ntds invocationId\n"));
-		return NT_STATUS_FOOBAR;
-	}
-	ok = samdb_set_ntds_objectGUID(s->ldb, &p->dest_dsa->ntds_guid);
-	if (!ok) {
-		DEBUG(0,("Failed to set cached ntds objectGUID\n"));
-		return NT_STATUS_FOOBAR;
-	}
-
-	return NT_STATUS_OK;
-}
-
-#include "param/param.h"
-#include <Python.h>
-#include "scripting/python/modules.h"
-
-static NTSTATUS test_become_dc_prepare_db_py(void *private_data,
-					     const struct libnet_BecomeDC_PrepareDB *p)
-{
-	struct test_become_dc_state *s = talloc_get_type(private_data, struct test_become_dc_state);
-	bool ok;
-	PyObject *module, *module_dict;
-	PyObject *provision_fn, *result, *parameters;
-
-	DEBUG(0,("Provision for Become-DC test using PYTHON\n"));
-
-	py_load_samba_modules();
-	Py_Initialize();
-
-	py_update_path("bin"); /* FIXME: Can't assume this always runs in source/... */
-
-	module = PyImport_Import(PyString_FromString("samba.provision"));
-	if (module == NULL) {
-		DEBUG(0, ("Unable to import 'samba.provision' Python module.\n"));
-		return NT_STATUS_UNSUCCESSFUL;
-	}
-
-	module_dict = PyModule_GetDict(module);
-	if (module_dict == NULL) {
-		DEBUG(0, ("Unable to GetDict of 'samba.provision'.\n"));
-		return NT_STATUS_UNSUCCESSFUL;
-	}
-
-	provision_fn = PyDict_GetItemString(module_dict, "provision");
-	if (provision_fn == NULL) {
-		DEBUG(0, ("Unable to get function 'provision' of 'samba.provision'.\n"));
-		return NT_STATUS_UNSUCCESSFUL;
-	}
-
-	DEBUG(0,("New Server[%s] in Site[%s]\n",
-		p->dest_dsa->dns_name, p->dest_dsa->site_name));
-
-	DEBUG(0,("DSA Instance [%s]\n"
-		"\tobjectGUID[%s]\n"
-		"\tinvocationId[%s]\n",
-		p->dest_dsa->ntds_dn_str,
-		GUID_string(s, &p->dest_dsa->ntds_guid),
-		GUID_string(s, &p->dest_dsa->invocation_id)));
-
-	DEBUG(0,("Pathes under PRIVATEDIR[%s]\n"
-		 "SAMDB[%s] SECRETS[%s] KEYTAB[%s]\n",
-		lp_private_dir(s->tctx->lp_ctx),
-		s->path.samdb_ldb,
-		s->path.secrets_ldb,
-		s->path.secrets_keytab));


-- 
Samba Shared Repository


More information about the samba-cvs mailing list