Avec ldapvi, je tente de retirer un attribut sur un objet de notre annuaire LDAP (slapd, OpenLDAP). Au moment d'enregistrer une erreur s'affiche :
ldap_modify: Undefined attribute type (17)
additional info: entry update failed
Cet attribut est défini dans une classe maison. Cette classe était une classe de test qui a changé de nom depuis, tout comme l'attribut. Et voilà, tout est dit : avant de renommer ou de supprimer une classe ou des attributs, il faut les retirer de tous les objets du LDAP.
Pour réparer après-coup, il existe plusieurs méthodes. Si peu d'objets sont concernés : ldapdelete "uid=guigui,ou=people,dc=exemple,dc=net"
Si beaucoup d'objets sont concernés : slapcat
+ sed
+ slapadd
ou générer un LDIF adapté à coup de script shell. Si l'on a encore l'ancien schéma, on peut le remettre en service le temps du nettoyage.