Удаление objectClasses и attributeTypes из ldap только с использованием ObjectID

Я пытался удалить классы объектов и типы атрибутов из локального экземпляра openDJ через скрипт. Цель состоит в том, чтобы создать набор сценариев для уничтожения, а затем воссоздания сервера, чтобы при возникновении изменений каждый разработчик/экземпляр мог просто запустить сценарии и быть готовым к работе. Мне удалось удалить объекты и атрибуты, используя полное определение, но когда я пытаюсь использовать ObjectID, он не может найти объекты/атрибуты. "Entry cn=schema cannot be modified because the attempt to update objectClasses would have removed one or more values from the attribute that were not present: (1.1.2.2.2) "

Рабочий лдиф:

dn: cn=schema
changetype: modify
delete: objectClasses
objectclasses: ( 1.1.2.2.2 NAME 'tstPerson'
            DESC 'Person object'
            SUP inetOrgPerson
            STRUCTURAL
            MUST ( name )
            MAY ( unit ) 
             ) 

dn: cn=schema
changetype:modify
delete:attributeTypes
attributeTypes: (2.16.3.1.1
   NAME 'unit'
   DESC 'identifies the unit or units a person has been assigned'
   EQUALITY caseIgnoreMatch
   SUBSTR caseIgnoreSubstringsMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

Укороченный нерабочий:

dn: cn=schema
changetype: modify
delete: objectClasses
objectclasses: ( 1.1.2.2.2 ) 

dn: cn=schema
changetype:modify
delete:attributeTypes
attributeTypes: ( 2.16.3.1.1 )

Вопрос в том, чтобы удалить объектный класс или атрибут, необходимо ли предоставить полное определение объектного класса или атрибута или есть способ конкретно идентифицировать объектный класс или атрибут с помощью имени или OID?


person Seth Zurborg    schedule 24.04.2015    source источник
comment
Попробуйте без скобок. Странное дело делать.   -  person user207421    schedule 25.04.2015


Ответы (1)


Только что проверил, работает только с OID и именем.

$ ldapmodify -D cn=directory\ manager -w secret12 -p 1389
dn: cn=schema
changetype: modify
delete: attributeTypes
attributeTypes: (2.16.3.1.1 NAME 'unit')

Processing MODIFY request for cn=schema
MODIFY operation successful for DN cn=schema

Мне нужно проверить, почему одного OID недостаточно, но это должно помочь вам двигаться вперед.

person Ludovic Poitou    schedule 26.04.2015
comment
Вам не нужно ни имя, ни OID. Что произошло, когда вы попробовали OID без круглых скобок? - person user207421; 27.04.2015
comment
Если круглых скобок нет, OpenDJ отклонит значение как не соответствующее атрибутуTypeDescription. Кстати, это работает только с разрабатываемой версией OpenDJ (выходит версия 3.0). Недавно мы перешли с использованием правила objectIdentifierFirstComponentMatch для схемы. - person Ludovic Poitou; 27.04.2015