Le 02/08/2016 à 15:32, Côme Chilliet a écrit :
Hello,
I’m trying to modify an LDAP node to change its objectClasses:
dn: cn=canon-c5250,ou=printers,ou=systems,dc=xxx,dc=xxx
cn: canon-c5250
description:: Q2Fub24gSVIgQURWIEM1MjUwIA==
labeledURI: ipp://127.0.0.1
ipHostnumber: 127.0.0.1
macAddress: 12:12:12:12:12:12
objectClass: top
objectClass: gotoPrinter
I want to remove gotoPrinter objectClass which is flagged as OBSOLETE
and instead use fdPrinter, ipHost and ieee802Device.
I try with an ldif with the following content:
dn: cn=canon-c5250,ou=printers,ou=systems,dc=xxx,dc=xxx
changetype: modify
replace: objectClass
objectClass: fdPrinter
objectClass: ieee802Device
objectClass: ipHost
objectClass: top
I get:
ldapadd -D cn=admin,dc=xxx,dc=xxx -f modify.ldif -W
ldap_modify: Object class violation (65)
How can I get more information? I don’t know which violation that
could be, as I am able to insert a second object with no problem which
looks like what I want:
dn: cn=test-print,ou=printers,ou=systems,dc=xxx,dc=xxx
changetype: add
cn: test-print
description: test
labeledURI: ipp://127.0.0.1
ipHostnumber: 127.0.0.1
macAddress: 12:22:12:12:22:22
objectClass: fdPrinter
objectClass: ieee802Device
objectClass: ipHost
objectClass: top
Here are the classes definitions:
objectclass (1.3.6.1.4.1.10098.1.2.1.31 NAME 'gotoPrinter'
DESC 'GOto - Gonicus Terminal Concept, objectclass' SUP top STRUCTURAL
OBSOLETE
MUST ( cn )
MAY ( labeledURI $ description $ l $ gotoPrinterPPD $ macAddress $
ipHostNumber $ gotoUserPrinter $
gotoUserAdminPrinter $ gotoGroupPrinter $ gotoGroupAdminPrinter $
printerWindowsInfFile $ printerWindowsDriverDir $
printerWindowsDriverName) )
objectclass ( 1.3.6.1.4.1.38414.16.2.5 NAME 'fdPrinter'
DESC 'FusionDirectory printer class'
MUST ( cn )
MAY ( labeledURI $
fdPrinterWindowsInfFile $ fdPrinterWindowsDriverDir $
fdPrinterWindowsDriverName $
fdPrinterUsers $ fdPrinterAdminUsers))
Hello,
you can't replace the default structural objectClass of an object (this
objectClass is listed in structuralObjectClass operational attribute).
You can do it with the relax extension if needed, else, simply remove
and add the entry.
--
Clément OUDOT
Consultant en logiciels libres, Expert infrastructure et sécurité
Savoir-faire Linux
87, rue de Turbigo - 75003 PARIS
Blog: http://sflx.ca/coudot