Unable to map attributeID
Matthieu Patou
mat+Informatique.Samba at matws.net
Sat Aug 22 05:42:56 MDT 2009
Hello all,
in my tries to create an script to upgrade provision I am a blocked when
I try to create missing attributes in the schema.ldb:
I am trying to create this object (the @@@ are added during the display
to be sure that no trailing chars are present):
dn:CN=ACS-Max-Peak-Bandwidth,CN=Schema,CN=Configuration,DC=smb4,DC=tst@@@
objectClass:top@@@
objectClass:attributeSchema@@@
cn:ACS-Max-Peak-Bandwidth@@@
instanceType:4@@@
attributeID:1.2.840.113556.1.4.767@@@
attributeSyntax:2.5.5.16@@@
isSingleValued:TRUE@@@
oMSyntax:65@@@
searchFlags:0@@@
lDAPDisplayName:aCSMaxPeakBandwidth@@@
cn:ACS-Max-Peak-Bandwidth@@@
schemaIDGUID:7f561284-5301-11d1-a9c5-0000f80367c1@@@
systemOnly:FALSE@@@
systemFlags:16@@@
I get this message:
schema_fsmo_add: failed to map attributeID[1.2.840.113556.1.4.767-FP]:
WERR_INVALID_PARAM
Traceback (most recent call last):
File "/usr/local/src/samba4/source4/scripting/bin/upgradeschema.py",
line 415, in <module>
check_diff(newpaths,paths,creds,session,names)
File "/usr/local/src/samba4/source4/scripting/bin/upgradeschema.py",
line 402, in check_diff
check_diff_name(newpaths,paths,creds,session,name,names)
File "/usr/local/src/samba4/source4/scripting/bin/upgradeschema.py",
line 395, in check_diff_name
sam_ldb.add(m)
_ldb.LdbError: (53, 'schema_fsmo_add: failed to map
attributeID[1.2.840.113556.1.4.767-FP]: WERR_INVALID_PARAM\n')
A transaction is still active in ldb context [0xb25f4f8]
I am a bit puzzled to see trailing chars at the end of the attributeID
(here -FP).
But I'm not sure that it's the case of my problem.
Here is the part of the code
# Reopen schema ldb ... doing like the provision script
sam_ldb = Ldb(session_info=session, credentials=creds, lp=lp)
schema = Schema(setup_path, schemadn=names.schemadn,
serverdn=names.serverdn)
# Load the schema from the one we computed earlier
sam_ldb.set_schema_from_ldb(schema.ldb)
# And now we can connect to the DB - the schema won't be loaded
from the DB
sam_ldb.connect(paths.samdb)
sam_ldb.transaction_start()
sam_ldb.set_schema_from_ldb(schema.ldb)
#print >>sys.stderr,schema.schema_data
for e in listMissing:
res3= newsam_ldb.search(expression="dn=%s"%e,base=name,
scope=SCOPE_SUBTREE)
ldif = ""
m = ldb.Message()
m.dn = ldb.Dn(sam_ldb, str(res3[0]["dn"]))
#m["dn"] = ldb.MessageElement( str(res3[0]["dn"]),
ldb.CHANGETYPE_ADD, "dn")
ldif += "dn:%s"%(res3[0]["dn"])+"\n"
for attr in res3[0]:
found=0
sAtt=str(attr)
for invalidAtt in attrNotCopied:
if(not cmp(sAtt,invalidAtt)):
found=1
break
if not found:
val = []
if not cmp(sAtt,"name"):
sAtt = "cn"
#print >>sys.stderr,sAtt
for v in res3[0][attr]:
if hashGUID.has_key(sAtt):
v = str(ndr_unpack( misc.GUID,v))
if hashNTDesc.has_key(sAtt):
v = str(ndr_unpack( security.descriptor,v))
#print >>sys.stderr," "+str(v)
val.append(str(v))
ldif += "%s:%s"%(sAtt,v)+"\n"
m[sAtt] = ldb.MessageElement(val,
ldb.CHANGETYPE_ADD, sAtt)
print >>sys.stderr,ldif
sam_ldb.add(m)
Any idea welcomed !
Matthieu.
More information about the samba-technical
mailing list