Hi,

I used the below ldif file to add a user defined objectclass in my openldap 2.4.40 on CentOS 7.

-----------------------------------------------------------------------
dn: cn={12}ng911,cn=schema,cn=config

changetype: add

objectClass: olcSchemaConfig

cn: ng911


dn: cn={12}ng911,cn=schema,cn=config

changetype: modify

add: olcAttributeTypes

olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.4.1.6.8.12 NAME 'cityCode' DESC 'city plate' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )

olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.4.1.6.8.14 NAME 'identityNumber' DESC 'id number' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )

olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.4.1.6.8.16 NAME 'institutionName' DESC 'institution name' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.4.1.6.8.18 NAME 'phoneNumber' DESC 'phone' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )

olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.4.1.6.8.20 NAME 'agentId' DESC 'agent id' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )

olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.4.1.6.8.22 NAME 'agentPassword' DESC 'agent passwd' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.4203.1.1.2 )

-

add: olcObjectClasses
olcObjectClasses: ( 1.3.6.1.4.1.42.2.27.4.3.6 NAME 'ng911' DESC 'Container for ng911 object' SUP inetOrgPerson MAY ( cityCode $ identityNumber $ institutionName $ phoneNumber & agentId & agentPassword ) )
-----------------------------------------------------------------

And then I run the command on the server
ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f extendtong911.ldif

The addition was ok. But I made a mistake and run the same command again which added another copy of the objectclass. The result of the command below is given underneath it

ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config cn
-----------------------------------------------------------------
dn: cn=schema,cn=config
cn: schema

dn: cn={0}core,cn=schema,cn=config
cn: {0}core

dn: cn={1}cosine,cn=schema,cn=config
cn: {1}cosine

dn: cn={2}nis,cn=schema,cn=config
cn: {2}nis

dn: cn={3}inetorgperson,cn=schema,cn=config
cn: {3}inetorgperson

dn: cn={4}ng911,cn=schema,cn=config
cn: {4}ng911
cn: {12}ng911

dn: cn={5}ng911,cn=schema,cn=config
cn: {5}ng911
cn: {12}ng911
-----------------------------------------------------------------

Now, I want to delete the second objectclass created.
For this I created an ldif file with the contents as below:

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

dn: cn={5}ng911,cn=schema,cn=config

changetype: modify

delete: olcObjectClasses
olcObjectClasses: ( 1.3.6.1.4.1.42.2.27.4.3.6 NAME 'ng911' DESC 'Container for ng911 object' SUP inetOrgPerson MAY ( cityCode $ identityNumber $ institutionName $ phoneNumber & agentId & agentPassword ) )
-----------------------------------------------------------------

And I run the command
ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f deleteng911.ldif
on the server. The result is:
-----------------------------------------------------------------
modifying entry "cn={5}ng911,cn=schema,cn=config"
ldap_modify: No such attribute (16)
    additional info: modify/delete: olcObjectClasses: no such attribute
-----------------------------------------------------------------
When I change {5} to {12} I get
-----------------------------------------------------------------
modifying entry "cn={12}ng911,cn=schema,cn=config"
ldap_modify: No such object (32)
    matched DN: cn=schema,cn=config
-----------------------------------------------------------------

I tried many modifications of the ldif file but couldn't succeed. Can you help me writing the right ldif file for deletion of an objectclass?

Thanks.
Tamer