[SCM] Samba Shared Repository - branch master updated

Kamen Mazdrashki kamenim at samba.org
Thu Nov 11 12:39:01 MST 2010


The branch, master has been updated
       via  dcd346c s4-tests: Make repl_schema.py test part of Samba4 test suite
       via  0868a15 s4-repl: Propagate remote prefixMap in DRSUAPI data conversion functions
       via  2d0cb54 s4-dsdb_syntax: Warning message that we can't find requested ATTID in Schema Cache
       via  3ab7552 s4-prefixMap: dsdb_schema_pfm_oid_from_attid() to use const prefixMap
       via  e772518 s4-dsdb_syntax: Use remote prefixMap to handle generic cases in drsuapi_to_ldb conversions
       via  f65c840 s4-dsdb_syntax: Add remote prefixMap member for dsdb_syntax conversions
       via  a8495d3 s4-repl: dsdb_extended_replicated_objects_convert -> dsdb_replicated_objects_convert/
       via  227e8dc s4-repl: dsdb_extended_replicated_objects_commit -> dsdb_replicated_objects_commit
       via  28f41c1 s4-repl: dsdb_convert_object -> dsdb_origin_object_convert
       via  7ada90e s4-test: repl_schema - Make sure LdbError and ERR_NO_SUCH_OBJECT are visible
      from  beaf14e s3: Well... Fix a stupid error

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


- Log -----------------------------------------------------------------
commit dcd346c0e541246260507c96283eefaef23edebb
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Wed Nov 10 06:14:20 2010 +0200

    s4-tests: Make repl_schema.py test part of Samba4 test suite
    
    Autobuild-User: Kamen Mazdrashki <kamenim at samba.org>
    Autobuild-Date: Thu Nov 11 19:38:18 UTC 2010 on sn-devel-104

commit 0868a1598220e2ed73aefcd9ec3517a38704ac9e
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Wed Nov 10 03:45:22 2010 +0200

    s4-repl: Propagate remote prefixMap in DRSUAPI data conversion functions

commit 2d0cb54ceb8f568f233533ada007822ffb40ee3d
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Wed Nov 10 02:32:29 2010 +0200

    s4-dsdb_syntax: Warning message that we can't find requested ATTID in Schema Cache

commit 3ab75524ee11f9121f41b3d4dd452ecdf9847e67
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Tue Nov 9 04:36:24 2010 +0200

    s4-prefixMap: dsdb_schema_pfm_oid_from_attid() to use const prefixMap
    
    It is not supposed to change supplied prefixMap

commit e772518a64f1f616ba6c00a8ee45cffd228bd8b3
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Tue Nov 9 04:12:57 2010 +0200

    s4-dsdb_syntax: Use remote prefixMap to handle generic cases in drsuapi_to_ldb conversions

commit f65c8402998c0759aac1ff27234a5e841a3bba37
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Tue Nov 9 04:12:16 2010 +0200

    s4-dsdb_syntax: Add remote prefixMap member for dsdb_syntax conversions

commit a8495d380ef93f8d236d521c8b1b8bf76f689acf
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Sun Nov 7 23:04:33 2010 +0200

    s4-repl: dsdb_extended_replicated_objects_convert -> dsdb_replicated_objects_convert/
    
    It is part of dsdb_replicated_* family of functions

commit 227e8dcfcfeeb5721e4f23c2bc183fd63c5bbe30
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Sun Nov 7 22:51:11 2010 +0200

    s4-repl: dsdb_extended_replicated_objects_commit -> dsdb_replicated_objects_commit
    
    It is part of dsdb_replicated_* family of functions

commit 28f41c166a77c0d69f0b1eb3e0d811fb66e696a4
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Sun Nov 7 21:47:39 2010 +0200

    s4-repl: dsdb_convert_object -> dsdb_origin_object_convert
    
    It is used in dsdb_origin_objects_commit() func,
    hence the dsdb_origin_ prefix

commit 7ada90ec2956fc8fc744676496e847f1a4d2f163
Author: Kamen Mazdrashki <kamenim at samba.org>
Date:   Thu Nov 11 20:19:47 2010 +0200

    s4-test: repl_schema - Make sure LdbError and ERR_NO_SUCH_OBJECT are visible

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

Summary of changes:
 source4/dsdb/repl/drepl_out_helpers.c     |   28 ++++++------
 source4/dsdb/repl/replicated_objects.c    |   66 ++++++++++++++++++-----------
 source4/dsdb/schema/schema.h              |    3 +
 source4/dsdb/schema/schema_prefixmap.c    |    3 +-
 source4/dsdb/schema/schema_syntax.c       |   14 +++++-
 source4/libnet/libnet_vampire.c           |   60 +++++++++++++++-----------
 source4/selftest/tests.py                 |    1 +
 source4/torture/drs/python/repl_schema.py |    1 +
 source4/torture/drs/rpc/dssync.c          |   18 ++++----
 9 files changed, 117 insertions(+), 77 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/dsdb/repl/drepl_out_helpers.c b/source4/dsdb/repl/drepl_out_helpers.c
index f83cdda..b99f126 100644
--- a/source4/dsdb/repl/drepl_out_helpers.c
+++ b/source4/dsdb/repl/drepl_out_helpers.c
@@ -580,17 +580,17 @@ static void dreplsrv_op_pull_source_apply_changes_trigger(struct tevent_req *req
 		return;
 	}
 
-	status = dsdb_extended_replicated_objects_convert(service->samdb,
-							  partition->nc.dn,
-							  mapping_ctr,
-							  object_count,
-							  first_object,
-							  linked_attributes_count,
-							  linked_attributes,
-							  &rf1,
-							  uptodateness_vector,
-							  &drsuapi->gensec_skey,
-							  state, &objects);
+	status = dsdb_replicated_objects_convert(service->samdb,
+						 partition->nc.dn,
+						 mapping_ctr,
+						 object_count,
+						 first_object,
+						 linked_attributes_count,
+						 linked_attributes,
+						 &rf1,
+						 uptodateness_vector,
+						 &drsuapi->gensec_skey,
+						 state, &objects);
 	if (!W_ERROR_IS_OK(status)) {
 		nt_status = werror_to_ntstatus(WERR_BAD_NET_RESP);
 		DEBUG(0,("Failed to convert objects: %s/%s\n",
@@ -599,9 +599,9 @@ static void dreplsrv_op_pull_source_apply_changes_trigger(struct tevent_req *req
 		return;
 	}
 
-	status = dsdb_extended_replicated_objects_commit(service->samdb,
-							 objects, 
-							 &state->op->source_dsa->notify_uSN);
+	status = dsdb_replicated_objects_commit(service->samdb,
+						objects,
+						&state->op->source_dsa->notify_uSN);
 	talloc_free(objects);
 	if (!W_ERROR_IS_OK(status)) {
 		nt_status = werror_to_ntstatus(WERR_BAD_NET_RESP);
diff --git a/source4/dsdb/repl/replicated_objects.c b/source4/dsdb/repl/replicated_objects.c
index 5c3cf48..5824334 100644
--- a/source4/dsdb/repl/replicated_objects.c
+++ b/source4/dsdb/repl/replicated_objects.c
@@ -33,6 +33,7 @@
 
 WERROR dsdb_convert_object_ex(struct ldb_context *ldb,
 			      const struct dsdb_schema *schema,
+			      const struct dsdb_schema_prefixmap *pfm_remote,
 			      const struct drsuapi_DsReplicaObjectListItemEx *in,
 			      const DATA_BLOB *gensec_skey,
 			      TALLOC_CTX *mem_ctx,
@@ -127,7 +128,8 @@ WERROR dsdb_convert_object_ex(struct ldb_context *ldb,
 			W_ERROR_NOT_OK_RETURN(status);
 		}
 
-		status = dsdb_attribute_drsuapi_to_ldb(ldb, schema, a, msg->elements, e);
+		status = dsdb_attribute_drsuapi_to_ldb(ldb, schema, pfm_remote,
+						       a, msg->elements, e);
 		W_ERROR_NOT_OK_RETURN(status);
 
 		m->attid			= a->attid;
@@ -196,22 +198,23 @@ WERROR dsdb_convert_object_ex(struct ldb_context *ldb,
 	return WERR_OK;
 }
 
-WERROR dsdb_extended_replicated_objects_convert(struct ldb_context *ldb,
-						const char *partition_dn_str,
-						const struct drsuapi_DsReplicaOIDMapping_Ctr *mapping_ctr,
-						uint32_t object_count,
-						const struct drsuapi_DsReplicaObjectListItemEx *first_object,
-						uint32_t linked_attributes_count,
-						const struct drsuapi_DsReplicaLinkedAttribute *linked_attributes,
-						const struct repsFromTo1 *source_dsa,
-						const struct drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector,
-						const DATA_BLOB *gensec_skey,
-						TALLOC_CTX *mem_ctx,
-						struct dsdb_extended_replicated_objects **objects)
+WERROR dsdb_replicated_objects_convert(struct ldb_context *ldb,
+				       const char *partition_dn_str,
+				       const struct drsuapi_DsReplicaOIDMapping_Ctr *mapping_ctr,
+				       uint32_t object_count,
+				       const struct drsuapi_DsReplicaObjectListItemEx *first_object,
+				       uint32_t linked_attributes_count,
+				       const struct drsuapi_DsReplicaLinkedAttribute *linked_attributes,
+				       const struct repsFromTo1 *source_dsa,
+				       const struct drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector,
+				       const DATA_BLOB *gensec_skey,
+				       TALLOC_CTX *mem_ctx,
+				       struct dsdb_extended_replicated_objects **objects)
 {
 	WERROR status;
 	struct ldb_dn *partition_dn;
 	const struct dsdb_schema *schema;
+	struct dsdb_schema_prefixmap *pfm_remote;
 	struct dsdb_extended_replicated_objects *out;
 	const struct drsuapi_DsReplicaObjectListItemEx *cur;
 	uint32_t i;
@@ -230,6 +233,15 @@ WERROR dsdb_extended_replicated_objects_convert(struct ldb_context *ldb,
 	partition_dn = ldb_dn_new(out, ldb, partition_dn_str);
 	W_ERROR_HAVE_NO_MEMORY_AND_FREE(partition_dn, out);
 
+	status = dsdb_schema_pfm_from_drsuapi_pfm(mapping_ctr, true,
+						  out, &pfm_remote, NULL);
+	if (!W_ERROR_IS_OK(status)) {
+		DEBUG(0,(__location__ ": Failed to decode remote prefixMap: %s",
+			 win_errstr(status)));
+		talloc_free(out);
+		return status;
+	}
+
 	if (ldb_dn_compare(partition_dn, ldb_get_schema_basedn(ldb)) != 0) {
 		/*
 		 * check for schema changes in case
@@ -266,7 +278,7 @@ WERROR dsdb_extended_replicated_objects_convert(struct ldb_context *ldb,
 			return WERR_FOOBAR;
 		}
 
-		status = dsdb_convert_object_ex(ldb, schema,
+		status = dsdb_convert_object_ex(ldb, schema, pfm_remote,
 						cur, gensec_skey,
 						out->objects, &out->objects[i]);
 		if (!W_ERROR_IS_OK(status)) {
@@ -282,13 +294,16 @@ WERROR dsdb_extended_replicated_objects_convert(struct ldb_context *ldb,
 		return WERR_FOOBAR;
 	}
 
+	/* free pfm_remote, we won't need it anymore */
+	talloc_free(pfm_remote);
+
 	*objects = out;
 	return WERR_OK;
 }
 
-WERROR dsdb_extended_replicated_objects_commit(struct ldb_context *ldb,
-					       struct dsdb_extended_replicated_objects *objects,
-					       uint64_t *notify_uSN)
+WERROR dsdb_replicated_objects_commit(struct ldb_context *ldb,
+				      struct dsdb_extended_replicated_objects *objects,
+				      uint64_t *notify_uSN)
 {
 	struct ldb_result *ext_res;
 	int ret;
@@ -356,11 +371,11 @@ WERROR dsdb_extended_replicated_objects_commit(struct ldb_context *ldb,
 	return WERR_OK;
 }
 
-static WERROR dsdb_convert_object(struct ldb_context *ldb,
-				  const struct dsdb_schema *schema,
-				  const struct drsuapi_DsReplicaObjectListItem *in,
-				  TALLOC_CTX *mem_ctx,
-				  struct ldb_message **_msg)
+static WERROR dsdb_origin_object_convert(struct ldb_context *ldb,
+					 const struct dsdb_schema *schema,
+					 const struct drsuapi_DsReplicaObjectListItem *in,
+					 TALLOC_CTX *mem_ctx,
+					 struct ldb_message **_msg)
 {
 	WERROR status;
 	unsigned int i;
@@ -392,7 +407,8 @@ static WERROR dsdb_convert_object(struct ldb_context *ldb,
 		a = &in->object.attribute_ctr.attributes[i];
 		e = &msg->elements[i];
 
-		status = dsdb_attribute_drsuapi_to_ldb(ldb, schema, a, msg->elements, e);
+		status = dsdb_attribute_drsuapi_to_ldb(ldb, schema, schema->prefixmap,
+						       a, msg->elements, e);
 		W_ERROR_NOT_OK_RETURN(status);
 	}
 
@@ -449,8 +465,8 @@ WERROR dsdb_origin_objects_commit(struct ldb_context *ldb,
 	}
 
 	for (i=0, cur = first_object; cur; cur = cur->next_object, i++) {
-		status = dsdb_convert_object(ldb, schema,
-					     cur, objects, &objects[i]);
+		status = dsdb_origin_object_convert(ldb, schema, cur,
+						    objects, &objects[i]);
 		if (!W_ERROR_IS_OK(status)) {
 			goto cancel;
 		}
diff --git a/source4/dsdb/schema/schema.h b/source4/dsdb/schema/schema.h
index fd1e090..5ba2254 100644
--- a/source4/dsdb/schema/schema.h
+++ b/source4/dsdb/schema/schema.h
@@ -35,6 +35,9 @@ struct dsdb_syntax_ctx {
 
 	/* set when converting objects under Schema NC */
 	bool is_schema_nc;
+
+	/* remote prefixMap to be used for drsuapi_to_ldb conversions */
+	const struct dsdb_schema_prefixmap *pfm_remote;
 };
 
 
diff --git a/source4/dsdb/schema/schema_prefixmap.c b/source4/dsdb/schema/schema_prefixmap.c
index 371ec88..18b22ff 100644
--- a/source4/dsdb/schema/schema_prefixmap.c
+++ b/source4/dsdb/schema/schema_prefixmap.c
@@ -351,7 +351,8 @@ WERROR dsdb_schema_pfm_attid_from_oid(struct dsdb_schema_prefixmap *pfm,
  * Make OID for given ATTID.
  * Reference: [MS-DRSR] section 5.12.2
  */
-WERROR dsdb_schema_pfm_oid_from_attid(struct dsdb_schema_prefixmap *pfm, uint32_t attid,
+WERROR dsdb_schema_pfm_oid_from_attid(const struct dsdb_schema_prefixmap *pfm,
+				      uint32_t attid,
 				      TALLOC_CTX *mem_ctx, const char **_oid)
 {
 	uint32_t i;
diff --git a/source4/dsdb/schema/schema_syntax.c b/source4/dsdb/schema/schema_syntax.c
index 9cd3105..0d1d274 100644
--- a/source4/dsdb/schema/schema_syntax.c
+++ b/source4/dsdb/schema/schema_syntax.c
@@ -48,6 +48,8 @@ void dsdb_syntax_ctx_init(struct dsdb_syntax_ctx *ctx,
 	 * i.e. attributeID_id will be returned by default
 	 */
 	ctx->is_schema_nc = true;
+
+	ctx->pfm_remote = NULL;
 }
 
 
@@ -902,7 +904,9 @@ static WERROR _dsdb_syntax_auto_OID_drsuapi_to_ldb(const struct dsdb_syntax_ctx
 			str = talloc_strdup(out->values, a->lDAPDisplayName);
 		} else {
 			WERROR werr;
-			werr = dsdb_schema_pfm_oid_from_attid(ctx->schema->prefixmap, v, out->values, &str);
+			SMB_ASSERT(ctx->pfm_remote);
+			werr = dsdb_schema_pfm_oid_from_attid(ctx->pfm_remote, v,
+							      out->values, &str);
 			W_ERROR_NOT_OK_RETURN(werr);
 		}
 		W_ERROR_HAVE_NO_MEMORY(str);
@@ -1014,6 +1018,8 @@ static WERROR _dsdb_syntax_OID_oid_drsuapi_to_ldb(const struct dsdb_syntax_ctx *
 {
 	unsigned int i;
 
+	SMB_ASSERT(ctx->pfm_remote);
+
 	out->flags	= 0;
 	out->name	= talloc_strdup(mem_ctx, attr->lDAPDisplayName);
 	W_ERROR_HAVE_NO_MEMORY(out->name);
@@ -1037,7 +1043,8 @@ static WERROR _dsdb_syntax_OID_oid_drsuapi_to_ldb(const struct dsdb_syntax_ctx *
 
 		attid = IVAL(in->value_ctr.values[i].blob->data, 0);
 
-		status = dsdb_schema_pfm_oid_from_attid(ctx->schema->prefixmap, attid, out->values, &oid);
+		status = dsdb_schema_pfm_oid_from_attid(ctx->pfm_remote, attid,
+							out->values, &oid);
 		W_ERROR_NOT_OK_RETURN(status);
 
 		out->values[i] = data_blob_string_const(oid);
@@ -2579,6 +2586,7 @@ const struct dsdb_syntax *dsdb_syntax_for_attribute(const struct dsdb_attribute
 
 WERROR dsdb_attribute_drsuapi_to_ldb(struct ldb_context *ldb,
 				     const struct dsdb_schema *schema,
+				     const struct dsdb_schema_prefixmap *pfm_remote,
 				     const struct drsuapi_DsReplicaAttribute *in,
 				     TALLOC_CTX *mem_ctx,
 				     struct ldb_message_element *out)
@@ -2588,11 +2596,13 @@ WERROR dsdb_attribute_drsuapi_to_ldb(struct ldb_context *ldb,
 
 	sa = dsdb_attribute_by_attributeID_id(schema, in->attid);
 	if (!sa) {
+		DEBUG(1,(__location__ ": Unknown attributeID_id 0x%08X\n", in->attid));
 		return WERR_FOOBAR;
 	}
 
 	/* use default syntax conversion context */
 	dsdb_syntax_ctx_init(&syntax_ctx, ldb, schema);
+	syntax_ctx.pfm_remote = pfm_remote;
 
 	return sa->syntax->drsuapi_to_ldb(&syntax_ctx, sa, in, mem_ctx, out);
 }
diff --git a/source4/libnet/libnet_vampire.c b/source4/libnet/libnet_vampire.c
index f349a5d..164dcde 100644
--- a/source4/libnet/libnet_vampire.c
+++ b/source4/libnet/libnet_vampire.c
@@ -225,6 +225,7 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct libnet_vampire_cb_state *s
 	};
 
 	WERROR status;
+	struct dsdb_schema_prefixmap *pfm_remote;
 	const struct drsuapi_DsReplicaOIDMapping_Ctr *mapping_ctr;
 	struct schema_list *schema_list = NULL, *schema_list_item, *schema_list_next_item;
 	struct dsdb_schema *working_schema;
@@ -280,6 +281,14 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct libnet_vampire_cb_state *s
 		return NT_STATUS_INVALID_PARAMETER;
 	}
 
+	status = dsdb_schema_pfm_from_drsuapi_pfm(mapping_ctr, true,
+						  s, &pfm_remote, NULL);
+	if (!W_ERROR_IS_OK(status)) {
+		DEBUG(0,(__location__ ": Failed to decode remote prefixMap: %s",
+			 win_errstr(status)));
+		return werror_to_ntstatus(status);
+	}
+
 	s_dsa->replica_flags		= DRSUAPI_DRS_WRIT_REP
 					| DRSUAPI_DRS_INIT_SYNC
 					| DRSUAPI_DRS_PER_SYNC;
@@ -338,7 +347,7 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct libnet_vampire_cb_state *s
 			 * schema we have so far. It's ok if we fail to convert
 			 * an object. We should convert more objects on next pass.
 			 */
-			status = dsdb_convert_object_ex(s->ldb, working_schema,
+			status = dsdb_convert_object_ex(s->ldb, working_schema, pfm_remote,
 							cur, c->gensec_skey,
 							tmp_ctx, &object);
 			if (!W_ERROR_IS_OK(status)) {
@@ -409,17 +418,17 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct libnet_vampire_cb_state *s
 	s->self_made_schema = NULL;
 
 	/* Now convert the schema elements again, using the schema we finalised, ready to actually import */
-	status = dsdb_extended_replicated_objects_convert(s->ldb,
-							  c->partition->nc.dn,
-							  mapping_ctr,
-							  object_count,
-							  first_object,
-							  linked_attributes_count,
-							  linked_attributes,
-							  s_dsa,
-							  uptodateness_vector,
-							  c->gensec_skey,
-							  s, &schema_objs);
+	status = dsdb_replicated_objects_convert(s->ldb,
+						 c->partition->nc.dn,
+						 mapping_ctr,
+						 object_count,
+						 first_object,
+						 linked_attributes_count,
+						 linked_attributes,
+						 s_dsa,
+						 uptodateness_vector,
+						 c->gensec_skey,
+						 s, &schema_objs);
 	if (!W_ERROR_IS_OK(status)) {
 		DEBUG(0,("Failed to convert objects when trying to import over DRS (2nd pass, to store remote schema): %s\n", win_errstr(status)));
 		return werror_to_ntstatus(status);
@@ -436,7 +445,7 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct libnet_vampire_cb_state *s
 		}
 	}
 
-	status = dsdb_extended_replicated_objects_commit(s->ldb, schema_objs, &seq_num);
+	status = dsdb_replicated_objects_commit(s->ldb, schema_objs, &seq_num);
 	if (!W_ERROR_IS_OK(status)) {
 		DEBUG(0,("Failed to commit objects: %s\n", win_errstr(status)));
 		return werror_to_ntstatus(status);
@@ -676,17 +685,17 @@ NTSTATUS libnet_vampire_cb_store_chunk(void *private_data,
 	}
 
 
-	status = dsdb_extended_replicated_objects_convert(s->ldb,
-							  c->partition->nc.dn,
-							  mapping_ctr,
-							  object_count,
-							  first_object,
-							  linked_attributes_count,
-							  linked_attributes,
-							  s_dsa,
-							  uptodateness_vector,
-							  c->gensec_skey,
-							  s, &objs);
+	status = dsdb_replicated_objects_convert(s->ldb,
+						 c->partition->nc.dn,
+						 mapping_ctr,
+						 object_count,
+						 first_object,
+						 linked_attributes_count,
+						 linked_attributes,
+						 s_dsa,
+						 uptodateness_vector,
+						 c->gensec_skey,
+						 s, &objs);
 	if (!W_ERROR_IS_OK(status)) {
 		DEBUG(0,("Failed to convert objects: %s\n", win_errstr(status)));
 		return werror_to_ntstatus(status);
@@ -702,8 +711,7 @@ NTSTATUS libnet_vampire_cb_store_chunk(void *private_data,
 			NDR_PRINT_DEBUG(replPropertyMetaDataBlob, objs->objects[i].meta_data);
 		}
 	}
-	status = dsdb_extended_replicated_objects_commit(s->ldb,
-							 objs, &seq_num);
+	status = dsdb_replicated_objects_commit(s->ldb, objs, &seq_num);
 	if (!W_ERROR_IS_OK(status)) {
 		DEBUG(0,("Failed to commit objects: %s\n", win_errstr(status)));
 		return werror_to_ntstatus(status);
diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py
index 0c7c7c2..7a2dd44 100755
--- a/source4/selftest/tests.py
+++ b/source4/selftest/tests.py
@@ -509,6 +509,7 @@ plantestsuite("samba4.ldap.bind(dc)", "dc", [python, os.path.join(samba4srcdir,
 # DRS python tests
 plantestsuite("samba4.drs_delete_object.python(vampire_dc)", "vampire_dc", ['PYTHONPATH="$PYTHONPATH:%s"' % os.path.join(samba4srcdir, 'torture/drs/python'), 'DC1=$DC_SERVER', 'DC2=$VAMPIRE_DC_SERVER', subunitrun, 'delete_object', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'])
 plantestsuite("samba4.drs_fsmo.python(vampire_dc)", "vampire_dc", ['PYTHONPATH="$PYTHONPATH:%s"' % os.path.join(samba4srcdir, 'torture/drs/python'), 'DC1=$DC_SERVER', 'DC2=$VAMPIRE_DC_SERVER', subunitrun, 'fsmo', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'])
+plantestsuite("samba4.drs_repl_schema.python(vampire_dc)", "vampire_dc", ['PYTHONPATH="$PYTHONPATH:%s"' % os.path.join(samba4srcdir, 'torture/drs/python'), 'DC1=$DC_SERVER', 'DC2=$VAMPIRE_DC_SERVER', subunitrun, 'repl_schema', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'])
 
 # This makes sure we test the rid allocation code
 t = "RPC-SAMR-LARGE-DC"
diff --git a/source4/torture/drs/python/repl_schema.py b/source4/torture/drs/python/repl_schema.py
index b407dfb..78759e1 100644
--- a/source4/torture/drs/python/repl_schema.py
+++ b/source4/torture/drs/python/repl_schema.py
@@ -35,6 +35,7 @@ import os
 sys.path.append("bin/python")
 
 from samba.auth import system_session
+from ldb import LdbError, ERR_NO_SUCH_OBJECT
 from ldb import SCOPE_BASE, SCOPE_SUBTREE
 from samba.samdb import SamDB
 
diff --git a/source4/torture/drs/rpc/dssync.c b/source4/torture/drs/rpc/dssync.c
index db1703d..9c65b91 100644
--- a/source4/torture/drs/rpc/dssync.c
+++ b/source4/torture/drs/rpc/dssync.c
@@ -340,15 +340,15 @@ static bool test_analyse_objects(struct torture_context *tctx,
 		       "drs_util_dsdb_schema_load_ldb() failed");
 	ldap_schema = dsdb_get_schema(ldb, NULL);
 
-	status = dsdb_extended_replicated_objects_convert(ldb,
-							  partition,
-							  mapping_ctr,
-							  object_count,
-							  first_object,
-							  0, NULL,
-							  NULL, NULL,
-							  gensec_skey,
-							  ctx, &objs);
+	status = dsdb_replicated_objects_convert(ldb,
+						 partition,
+						 mapping_ctr,
+						 object_count,
+						 first_object,
+						 0, NULL,
+						 NULL, NULL,
+						 gensec_skey,
+						 ctx, &objs);
 	torture_assert_werr_ok(tctx, status, "dsdb_extended_replicated_objects_convert() failed!");
 
 	extended_dn_ctrl = talloc(objs, struct ldb_extended_dn_control);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list