From 3bcf21fc2a95bf9ea4dd1efb1df3a3dcb14c3d42 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 1/20] Tests --- diff --git a/dirsrvtests/tests/suites/openldap_2_389/__init__.py b/dirsrvtests/tests/suites/openldap_2_389/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/dirsrvtests/tests/suites/openldap_2_389/__init__.py diff --git a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py new file mode 100644 index 0000000..138c13e --- /dev/null +++ b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py @@ -0,0 +1,50 @@ +# --- BEGIN COPYRIGHT BLOCK --- +# Copyright (C) 2020 William Brown +# All rights reserved. +# +# License: GPL (version 3 or any later version). +# See LICENSE for details. +# --- END COPYRIGHT BLOCK --- +# +import pytest +import os +from lib389.topologies import topology_st +from lib389.password_plugins import PBKDF2Plugin +from lib389.utils import ds_is_older + +pytestmark = pytest.mark.tier1 + +DATADIR = os.path.join(os.path.dirname(__file__), '../../data/openldap_2_389') + +@pytest.mark.skipif(ds_is_older('1.4.3'), reason="Not implemented") +def test_parse_openldap_slapdd(): + """Test parsing an example openldap configuration. We should be able to + at least determine the backends, what overlays they have, and some other + minimal amount. + + :id: b0061ab0-fff4-45c6-b6c6-171ca3d2dfbc + :setup: Data directory with an openldap config directory. + :steps: + 1. + :expectedresults: + 1. + """ + + with open(os.path.join(DATADIR, 'test.ldif')) as f: + print(f.readlines()) + + +@pytest.mark.skipif(ds_is_older('1.4.3'), reason="Not implemented") +def test_migrate_openldap_slapdd(topology_st): + """ + + :id: e9748040-90a0-4d69-bdde-007104f75cc5 + :setup: + :steps: + 1. + :expectedresults: + 1. + """ + # p1 = PBKDF2Plugin(topology_st.standalone) + pass + From bfcf92cb527b6e3d3bb8d9e91af382086c614804 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 2/20] example data --- diff --git a/dirsrvtests/tests/data/openldap_2_389/example_com.slapcat.ldif b/dirsrvtests/tests/data/openldap_2_389/example_com.slapcat.ldif new file mode 100644 index 0000000..c7a5089 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/example_com.slapcat.ldif @@ -0,0 +1,241 @@ +dn: dc=example,dc=com +objectClass: dcObject +objectClass: organization +o: Example Company +dc: example +structuralObjectClass: organization +entryUUID: 67c6a9b8-eafa-1039-882d-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.130368Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: cn=Manager,dc=example,dc=com +objectClass: organizationalRole +cn: Manager +structuralObjectClass: organizationalRole +entryUUID: 67c8c932-eafa-1039-882e-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.144283Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: ou=People,dc=example,dc=com +objectClass: organizationalUnit +ou: People +structuralObjectClass: organizationalUnit +entryUUID: 67ca92a8-eafa-1039-882f-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.155994Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: ou=Groups,dc=example,dc=com +objectClass: organizationalUnit +ou: Groups +structuralObjectClass: organizationalUnit +entryUUID: 67cc2212-eafa-1039-8830-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.166219Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: cn=user0,ou=People,dc=example,dc=com +objectClass: account +objectClass: posixAccount +cn: user0 +uid: user0 +uidNumber: 80000 +gidNumber: 80000 +homeDirectory: /home/user0 +structuralObjectClass: account +entryUUID: 67cdfcea-eafa-1039-8831-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.178373Z#000000#000#000000 +modifyTimestamp: 20200224023755Z +memberOf: cn=group0,ou=groups,dc=example,dc=com +memberOf: cn=group1,ou=groups,dc=example,dc=com +memberOf: cn=group2,ou=groups,dc=example,dc=com +memberOf: cn=group3,ou=groups,dc=example,dc=com +memberOf: cn=group4,ou=groups,dc=example,dc=com +modifiersName: cn=Manager,dc=example,dc=com + +dn: cn=user1,ou=People,dc=example,dc=com +objectClass: account +objectClass: posixAccount +cn: user1 +uid: user1 +uidNumber: 80001 +gidNumber: 80001 +homeDirectory: /home/user1 +structuralObjectClass: account +entryUUID: 67d05080-eafa-1039-8832-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.193620Z#000000#000#000000 +modifyTimestamp: 20200224023755Z +memberOf: cn=group0,ou=groups,dc=example,dc=com +memberOf: cn=group1,ou=groups,dc=example,dc=com +memberOf: cn=group2,ou=groups,dc=example,dc=com +memberOf: cn=group3,ou=groups,dc=example,dc=com +memberOf: cn=group4,ou=groups,dc=example,dc=com +modifiersName: cn=Manager,dc=example,dc=com + +dn: cn=user2,ou=People,dc=example,dc=com +objectClass: account +objectClass: posixAccount +cn: user2 +uid: user2 +uidNumber: 80002 +gidNumber: 80002 +homeDirectory: /home/user2 +structuralObjectClass: account +entryUUID: 67d26172-eafa-1039-8833-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.207161Z#000000#000#000000 +modifyTimestamp: 20200224023755Z +memberOf: cn=group0,ou=groups,dc=example,dc=com +memberOf: cn=group1,ou=groups,dc=example,dc=com +memberOf: cn=group2,ou=groups,dc=example,dc=com +memberOf: cn=group3,ou=groups,dc=example,dc=com +memberOf: cn=group4,ou=groups,dc=example,dc=com +modifiersName: cn=Manager,dc=example,dc=com + +dn: cn=user3,ou=People,dc=example,dc=com +objectClass: account +objectClass: posixAccount +cn: user3 +uid: user3 +uidNumber: 80003 +gidNumber: 80003 +homeDirectory: /home/user3 +structuralObjectClass: account +entryUUID: 67d460bc-eafa-1039-8834-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.220249Z#000000#000#000000 +modifyTimestamp: 20200224023755Z +memberOf: cn=group0,ou=groups,dc=example,dc=com +memberOf: cn=group1,ou=groups,dc=example,dc=com +memberOf: cn=group2,ou=groups,dc=example,dc=com +memberOf: cn=group3,ou=groups,dc=example,dc=com +memberOf: cn=group4,ou=groups,dc=example,dc=com +modifiersName: cn=Manager,dc=example,dc=com + +dn: cn=user4,ou=People,dc=example,dc=com +objectClass: account +objectClass: posixAccount +cn: user4 +uid: user4 +uidNumber: 80004 +gidNumber: 80004 +homeDirectory: /home/user4 +structuralObjectClass: account +entryUUID: 67d5d2a8-eafa-1039-8835-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.229723Z#000000#000#000000 +modifyTimestamp: 20200224023755Z +memberOf: cn=group0,ou=groups,dc=example,dc=com +memberOf: cn=group1,ou=groups,dc=example,dc=com +memberOf: cn=group2,ou=groups,dc=example,dc=com +memberOf: cn=group3,ou=groups,dc=example,dc=com +memberOf: cn=group4,ou=groups,dc=example,dc=com +modifiersName: cn=Manager,dc=example,dc=com + +dn: cn=group0,ou=Groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group0 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90000 +structuralObjectClass: groupOfNames +entryUUID: 67d6f796-eafa-1039-8836-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.237225Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: cn=group1,ou=Groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group1 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90001 +structuralObjectClass: groupOfNames +entryUUID: 67da9d2e-eafa-1039-8837-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.261127Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: cn=group2,ou=Groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group2 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90002 +structuralObjectClass: groupOfNames +entryUUID: 67de2822-eafa-1039-8838-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.284346Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: cn=group3,ou=Groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group3 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90003 +structuralObjectClass: groupOfNames +entryUUID: 67e1a6aa-eafa-1039-8839-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.307244Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: cn=group4,ou=Groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group4 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90004 +structuralObjectClass: groupOfNames +entryUUID: 67e5a50c-eafa-1039-883a-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.333416Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + diff --git a/dirsrvtests/tests/data/openldap_2_389/example_net.slapcat.ldif b/dirsrvtests/tests/data/openldap_2_389/example_net.slapcat.ldif new file mode 100644 index 0000000..e7a34a6 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/example_net.slapcat.ldif @@ -0,0 +1,241 @@ +dn: dc=example,dc=net +objectClass: dcObject +objectClass: organization +o: Example Company +dc: example +structuralObjectClass: organization +entryUUID: 5df457fe-eafb-1039-8857-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.149265Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: cn=Manager,dc=example,dc=net +objectClass: organizationalRole +cn: Manager +structuralObjectClass: organizationalRole +entryUUID: 5df55cf8-eafb-1039-8858-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.155945Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: ou=People,dc=example,dc=net +objectClass: organizationalUnit +ou: People +structuralObjectClass: organizationalUnit +entryUUID: 5df60342-eafb-1039-8859-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.160202Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: ou=Groups,dc=example,dc=net +objectClass: organizationalUnit +ou: Groups +structuralObjectClass: organizationalUnit +entryUUID: 5df6a57c-eafb-1039-885a-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.164355Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: cn=user0,ou=People,dc=example,dc=net +objectClass: account +objectClass: posixAccount +cn: user0 +uid: user0 +uidNumber: 80000 +gidNumber: 80000 +homeDirectory: /home/user0 +structuralObjectClass: account +entryUUID: 5df7521a-eafb-1039-885b-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.168774Z#000000#000#000000 +modifyTimestamp: 20200224024448Z +memberOf: cn=group0,ou=groups,dc=example,dc=net +memberOf: cn=group1,ou=groups,dc=example,dc=net +memberOf: cn=group2,ou=groups,dc=example,dc=net +memberOf: cn=group3,ou=groups,dc=example,dc=net +memberOf: cn=group4,ou=groups,dc=example,dc=net +modifiersName: cn=Manager,dc=example,dc=net + +dn: cn=user1,ou=People,dc=example,dc=net +objectClass: account +objectClass: posixAccount +cn: user1 +uid: user1 +uidNumber: 80001 +gidNumber: 80001 +homeDirectory: /home/user1 +structuralObjectClass: account +entryUUID: 5df80f66-eafb-1039-885c-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.173619Z#000000#000#000000 +modifyTimestamp: 20200224024448Z +memberOf: cn=group0,ou=groups,dc=example,dc=net +memberOf: cn=group1,ou=groups,dc=example,dc=net +memberOf: cn=group2,ou=groups,dc=example,dc=net +memberOf: cn=group3,ou=groups,dc=example,dc=net +memberOf: cn=group4,ou=groups,dc=example,dc=net +modifiersName: cn=Manager,dc=example,dc=net + +dn: cn=user2,ou=People,dc=example,dc=net +objectClass: account +objectClass: posixAccount +cn: user2 +uid: user2 +uidNumber: 80002 +gidNumber: 80002 +homeDirectory: /home/user2 +structuralObjectClass: account +entryUUID: 5df8e710-eafb-1039-885d-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.179140Z#000000#000#000000 +modifyTimestamp: 20200224024448Z +memberOf: cn=group0,ou=groups,dc=example,dc=net +memberOf: cn=group1,ou=groups,dc=example,dc=net +memberOf: cn=group2,ou=groups,dc=example,dc=net +memberOf: cn=group3,ou=groups,dc=example,dc=net +memberOf: cn=group4,ou=groups,dc=example,dc=net +modifiersName: cn=Manager,dc=example,dc=net + +dn: cn=user3,ou=People,dc=example,dc=net +objectClass: account +objectClass: posixAccount +cn: user3 +uid: user3 +uidNumber: 80003 +gidNumber: 80003 +homeDirectory: /home/user3 +structuralObjectClass: account +entryUUID: 5df9c356-eafb-1039-885e-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.184778Z#000000#000#000000 +modifyTimestamp: 20200224024448Z +memberOf: cn=group0,ou=groups,dc=example,dc=net +memberOf: cn=group1,ou=groups,dc=example,dc=net +memberOf: cn=group2,ou=groups,dc=example,dc=net +memberOf: cn=group3,ou=groups,dc=example,dc=net +memberOf: cn=group4,ou=groups,dc=example,dc=net +modifiersName: cn=Manager,dc=example,dc=net + +dn: cn=user4,ou=People,dc=example,dc=net +objectClass: account +objectClass: posixAccount +cn: user4 +uid: user4 +uidNumber: 80004 +gidNumber: 80004 +homeDirectory: /home/user4 +structuralObjectClass: account +entryUUID: 5dfaecc2-eafb-1039-885f-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.192376Z#000000#000#000000 +modifyTimestamp: 20200224024448Z +memberOf: cn=group0,ou=groups,dc=example,dc=net +memberOf: cn=group1,ou=groups,dc=example,dc=net +memberOf: cn=group2,ou=groups,dc=example,dc=net +memberOf: cn=group3,ou=groups,dc=example,dc=net +memberOf: cn=group4,ou=groups,dc=example,dc=net +modifiersName: cn=Manager,dc=example,dc=net + +dn: cn=group0,ou=Groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group0 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90000 +structuralObjectClass: groupOfNames +entryUUID: 5dfc02c4-eafb-1039-8860-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.199510Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: cn=group1,ou=Groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group1 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90001 +structuralObjectClass: groupOfNames +entryUUID: 5e01038c-eafb-1039-8861-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.232297Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: cn=group2,ou=Groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group2 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90002 +structuralObjectClass: groupOfNames +entryUUID: 5e06b610-eafb-1039-8862-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.269635Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: cn=group3,ou=Groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group3 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90003 +structuralObjectClass: groupOfNames +entryUUID: 5e0aec76-eafb-1039-8863-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.297242Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: cn=group4,ou=Groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group4 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90004 +structuralObjectClass: groupOfNames +entryUUID: 5e0f0900-eafb-1039-8864-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.324187Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + diff --git a/dirsrvtests/tests/data/openldap_2_389/setup/example_com.ldif b/dirsrvtests/tests/data/openldap_2_389/setup/example_com.ldif new file mode 100644 index 0000000..4e6330c --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/setup/example_com.ldif @@ -0,0 +1,117 @@ +dn: dc=example,dc=com +objectclass: dcObject +objectclass: organization +o: Example Company +dc: example + +dn: cn=Manager,dc=example,dc=com +objectclass: organizationalRole +cn: Manager + +dn: ou=People,dc=example,dc=com +objectClass: organizationalUnit +ou: People + +dn: ou=Groups,dc=example,dc=com +objectClass: organizationalUnit +ou: Groups + +dn: cn=user0,ou=people,dc=example,dc=com +objectClass: Account +objectClass: posixAccount +cn: user0 +uid: user0 +uidnumber: 80000 +gidnumber: 80000 +homeDirectory: /home/user0 + +dn: cn=user1,ou=people,dc=example,dc=com +objectClass: Account +objectClass: posixAccount +cn: user1 +uid: user1 +uidnumber: 80001 +gidnumber: 80001 +homeDirectory: /home/user1 + +dn: cn=user2,ou=people,dc=example,dc=com +objectClass: Account +objectClass: posixAccount +cn: user2 +uid: user2 +uidnumber: 80002 +gidnumber: 80002 +homeDirectory: /home/user2 + +dn: cn=user3,ou=people,dc=example,dc=com +objectClass: Account +objectClass: posixAccount +cn: user3 +uid: user3 +uidnumber: 80003 +gidnumber: 80003 +homeDirectory: /home/user3 + +dn: cn=user4,ou=people,dc=example,dc=com +objectClass: Account +objectClass: posixAccount +cn: user4 +uid: user4 +uidnumber: 80004 +gidnumber: 80004 +homeDirectory: /home/user4 + +dn: cn=group0,ou=groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group0 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90000 + +dn: cn=group1,ou=groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group1 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90001 + +dn: cn=group2,ou=groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group2 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90002 + +dn: cn=group3,ou=groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group3 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90003 + +dn: cn=group4,ou=groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group4 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90004 diff --git a/dirsrvtests/tests/data/openldap_2_389/setup/example_net.ldif b/dirsrvtests/tests/data/openldap_2_389/setup/example_net.ldif new file mode 100644 index 0000000..a4b70cc --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/setup/example_net.ldif @@ -0,0 +1,117 @@ +dn: dc=example,dc=net +objectclass: dcObject +objectclass: organization +o: Example Company +dc: example + +dn: cn=Manager,dc=example,dc=net +objectclass: organizationalRole +cn: Manager + +dn: ou=People,dc=example,dc=net +objectClass: organizationalUnit +ou: People + +dn: ou=Groups,dc=example,dc=net +objectClass: organizationalUnit +ou: Groups + +dn: cn=user0,ou=people,dc=example,dc=net +objectClass: Account +objectClass: posixAccount +cn: user0 +uid: user0 +uidnumber: 80000 +gidnumber: 80000 +homeDirectory: /home/user0 + +dn: cn=user1,ou=people,dc=example,dc=net +objectClass: Account +objectClass: posixAccount +cn: user1 +uid: user1 +uidnumber: 80001 +gidnumber: 80001 +homeDirectory: /home/user1 + +dn: cn=user2,ou=people,dc=example,dc=net +objectClass: Account +objectClass: posixAccount +cn: user2 +uid: user2 +uidnumber: 80002 +gidnumber: 80002 +homeDirectory: /home/user2 + +dn: cn=user3,ou=people,dc=example,dc=net +objectClass: Account +objectClass: posixAccount +cn: user3 +uid: user3 +uidnumber: 80003 +gidnumber: 80003 +homeDirectory: /home/user3 + +dn: cn=user4,ou=people,dc=example,dc=net +objectClass: Account +objectClass: posixAccount +cn: user4 +uid: user4 +uidnumber: 80004 +gidnumber: 80004 +homeDirectory: /home/user4 + +dn: cn=group0,ou=groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group0 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90000 + +dn: cn=group1,ou=groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group1 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90001 + +dn: cn=group2,ou=groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group2 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90002 + +dn: cn=group3,ou=groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group3 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90003 + +dn: cn=group4,ou=groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group4 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90004 diff --git a/dirsrvtests/tests/data/openldap_2_389/setup/slapd.ldif b/dirsrvtests/tests/data/openldap_2_389/setup/slapd.ldif new file mode 100644 index 0000000..45a7b08 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/setup/slapd.ldif @@ -0,0 +1,146 @@ +# +# See slapd-config(5) for details on configuration options. +# This file should NOT be world readable. +# +dn: cn=config +objectClass: olcGlobal +cn: config +# +# +# Define global ACLs to disable default read access. +# +olcArgsFile: /var/run/slapd.args +olcPidFile: /var/run/slapd.pid +# +# Do not enable referrals until AFTER you have a working directory +# service AND an understanding of referrals. +#olcReferral: ldap://root.openldap.org +# +# Sample security restrictions +# Require integrity protection (prevent hijacking) +# Require 112-bit (3DES or better) encryption for updates +# Require 64-bit encryption for simple bind +#olcSecurity: ssf=1 update_ssf=112 simple_bind=64 + + +# +# Load dynamic backend modules: +# +dn: cn=module,cn=config +objectClass: olcModuleList +cn: module +#olcModulepath: %MODULEDIR% +olcModuleload: back_mdb.la +olcModuleload: memberof.la +olcModuleload: refint.la +olcModuleload: unique.la +#olcModuleload: back_ldap.la +#olcModuleload: back_passwd.la +#olcModuleload: back_shell.la + + +dn: cn=schema,cn=config +objectClass: olcSchemaConfig +cn: schema + +include: file:///etc/openldap/schema/core.ldif +include: file:///etc/openldap/schema/cosine.ldif +include: file:///etc/openldap/schema/inetorgperson.ldif +include: file:///etc/openldap/schema/rfc2307bis.ldif +include: file:///etc/openldap/schema/yast.ldif + + +# Frontend settings +# +dn: olcDatabase=frontend,cn=config +objectClass: olcDatabaseConfig +objectClass: olcFrontendConfig +olcDatabase: frontend +# +# Sample global access control policy: +# Root DSE: allow anyone to read it +# Subschema (sub)entry DSE: allow anyone to read it +# Other DSEs: +# Allow self write access +# Allow authenticated users read access +# Allow anonymous users to authenticate +# +olcAccess: to dn.base="" by * read +olcAccess: to dn.base="cn=Subschema" by * read +#olcAccess: to * +# by self write +# by users read +# by anonymous auth +# +# if no access controls are present, the default policy +# allows anyone and everyone to read anything but restricts +# updates to rootdn. (e.g., "access to * by * read") +# +# rootdn can always read and write EVERYTHING! +# + + +####################################################################### +# LMDB database definitions +####################################################################### +# +dn: olcDatabase={1}mdb,cn=config +objectClass: olcDatabaseConfig +objectClass: olcMdbConfig +olcDatabase: mdb +olcSuffix: dc=example,dc=com +olcRootDN: cn=Manager,dc=example,dc=com +# Cleartext passwords, especially for the rootdn, should +# be avoided. See slappasswd(8) and slapd-config(5) for details. +# Use of strong authentication encouraged. +olcRootPW: secret +# The database directory MUST exist prior to running slapd AND +# should only be accessible by the slapd and slap tools. +# Mode 700 recommended. +olcDbDirectory: /var/lib/ldap/example_com +# Indices to maintain +olcDbIndex: objectClass eq + +dn: olcOverlay=memberof,olcDatabase={1}mdb,cn=config +objectClass: olcOverlayConfig +objectClass: olcMemberOf +olcOverlay: memberof +olcMemberOfRefint: TRUE + +dn: olcOverlay=refint,olcDatabase={1}mdb,cn=config +objectClass: olcOverlayConfig +objectClass: olcRefintConfig +olcOverlay: refint +olcRefintAttribute: member +olcRefintAttribute: memberOf + +dn: olcOverlay=unique,olcDatabase={1}mdb,cn=config +objectClass: olcOverlayConfig +objectClass: olcUniqueConfig +olcOverlay: unique +olcUniqueURI: ldap:///?mail?sub +olcUniqueURI: ldap:///?uid?sub + +dn: olcDatabase={2}mdb,cn=config +objectClass: olcDatabaseConfig +objectClass: olcMdbConfig +olcDatabase: mdb +olcSuffix: dc=example,dc=net +olcRootDN: cn=Manager,dc=example,dc=net +olcRootPW: secret +olcDbDirectory: /var/lib/ldap/example_net +olcDbIndex: objectClass eq + +dn: olcOverlay=memberof,olcDatabase={2}mdb,cn=config +objectClass: olcOverlayConfig +objectClass: olcMemberOf +olcOverlay: memberof +olcMemberOfRefint: TRUE + +dn: olcOverlay=unique,olcDatabase={2}mdb,cn=config +objectClass: olcOverlayConfig +objectClass: olcUniqueConfig +olcOverlay: unique +olcUniqueURI: ldap:///?mail?sub +olcUniqueURI: ldap:///?uid?sub + diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config.ldif new file mode 100644 index 0000000..1ff7282 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config.ldif @@ -0,0 +1,14 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 6905879f +dn: cn=config +objectClass: olcGlobal +cn: config +olcArgsFile: /var/run/slapd.args +olcPidFile: /var/run/slapd.pid +structuralObjectClass: olcGlobal +entryUUID: 4019c5a8-eaf5-1039-865e-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.082506Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=module{0}.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=module{0}.ldif new file mode 100644 index 0000000..0e635ff --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=module{0}.ldif @@ -0,0 +1,16 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 9b38b059 +dn: cn=module{0} +objectClass: olcModuleList +cn: module{0} +olcModuleLoad: {0}back_mdb.la +olcModuleLoad: {1}memberof.la +olcModuleLoad: {2}refint.la +olcModuleLoad: {3}unique.la +structuralObjectClass: olcModuleList +entryUUID: 4019cc88-eaf5-1039-865f-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.082706Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema.ldif new file mode 100644 index 0000000..7840625 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema.ldif @@ -0,0 +1,12 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 095fcaec +dn: cn=schema +objectClass: olcSchemaConfig +cn: schema +structuralObjectClass: olcSchemaConfig +entryUUID: 4019e6aa-eaf5-1039-8660-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.083375Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={0}core.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={0}core.ldif new file mode 100644 index 0000000..abdfaa7 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={0}core.ldif @@ -0,0 +1,249 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 31e6d4be +dn: cn={0}core +objectClass: olcSchemaConfig +cn: {0}core +olcAttributeTypes: {0}( 2.5.4.2 NAME 'knowledgeInformation' DESC 'RFC2256: k + nowledge information' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115. + 121.1.15{32768} ) +olcAttributeTypes: {1}( 2.5.4.4 NAME ( 'sn' 'surname' ) DESC 'RFC2256: last + (family) name(s) for which the entity is known by' SUP name ) +olcAttributeTypes: {2}( 2.5.4.5 NAME 'serialNumber' DESC 'RFC2256: serial nu + mber of the entity' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMat + ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{64} ) +olcAttributeTypes: {3}( 2.5.4.6 NAME ( 'c' 'countryName' ) DESC 'RFC4519: tw + o-letter ISO-3166 country code' SUP name SYNTAX 1.3.6.1.4.1.1466.115.121.1. + 11 SINGLE-VALUE ) +olcAttributeTypes: {4}( 2.5.4.7 NAME ( 'l' 'localityName' ) DESC 'RFC2256: l + ocality which this object resides in' SUP name ) +olcAttributeTypes: {5}( 2.5.4.8 NAME ( 'st' 'stateOrProvinceName' ) DESC 'RF + C2256: state or province which this object resides in' SUP name ) +olcAttributeTypes: {6}( 2.5.4.9 NAME ( 'street' 'streetAddress' ) DESC 'RFC2 + 256: street address of this object' EQUALITY caseIgnoreMatch SUBSTR caseIgn + oreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) +olcAttributeTypes: {7}( 2.5.4.10 NAME ( 'o' 'organizationName' ) DESC 'RFC22 + 56: organization this object belongs to' SUP name ) +olcAttributeTypes: {8}( 2.5.4.11 NAME ( 'ou' 'organizationalUnitName' ) DESC + 'RFC2256: organizational unit this object belongs to' SUP name ) +olcAttributeTypes: {9}( 2.5.4.12 NAME 'title' DESC 'RFC2256: title associate + d with the entity' SUP name ) +olcAttributeTypes: {10}( 2.5.4.14 NAME 'searchGuide' DESC 'RFC2256: search g + uide, deprecated by enhancedSearchGuide' SYNTAX 1.3.6.1.4.1.1466.115.121.1. + 25 ) +olcAttributeTypes: {11}( 2.5.4.15 NAME 'businessCategory' DESC 'RFC2256: bus + iness category' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch S + YNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) +olcAttributeTypes: {12}( 2.5.4.16 NAME 'postalAddress' DESC 'RFC2256: postal + address' EQUALITY caseIgnoreListMatch SUBSTR caseIgnoreListSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 ) +olcAttributeTypes: {13}( 2.5.4.17 NAME 'postalCode' DESC 'RFC2256: postal co + de' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6. + 1.4.1.1466.115.121.1.15{40} ) +olcAttributeTypes: {14}( 2.5.4.18 NAME 'postOfficeBox' DESC 'RFC2256: Post O + ffice Box' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX + 1.3.6.1.4.1.1466.115.121.1.15{40} ) +olcAttributeTypes: {15}( 2.5.4.19 NAME 'physicalDeliveryOfficeName' DESC 'RF + C2256: Physical Delivery Office Name' EQUALITY caseIgnoreMatch SUBSTR caseI + gnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) +olcAttributeTypes: {16}( 2.5.4.20 NAME 'telephoneNumber' DESC 'RFC2256: Tele + phone Number' EQUALITY telephoneNumberMatch SUBSTR telephoneNumberSubstring + sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50{32} ) +olcAttributeTypes: {17}( 2.5.4.21 NAME 'telexNumber' DESC 'RFC2256: Telex Nu + mber' SYNTAX 1.3.6.1.4.1.1466.115.121.1.52 ) +olcAttributeTypes: {18}( 2.5.4.22 NAME 'teletexTerminalIdentifier' DESC 'RFC + 2256: Teletex Terminal Identifier' SYNTAX 1.3.6.1.4.1.1466.115.121.1.51 ) +olcAttributeTypes: {19}( 2.5.4.23 NAME ( 'facsimileTelephoneNumber' 'fax' ) + DESC 'RFC2256: Facsimile (Fax) Telephone Number' SYNTAX 1.3.6.1.4.1.1466.11 + 5.121.1.22 ) +olcAttributeTypes: {20}( 2.5.4.24 NAME 'x121Address' DESC 'RFC2256: X.121 Ad + dress' EQUALITY numericStringMatch SUBSTR numericStringSubstringsMatch SYNT + AX 1.3.6.1.4.1.1466.115.121.1.36{15} ) +olcAttributeTypes: {21}( 2.5.4.25 NAME 'internationaliSDNNumber' DESC 'RFC22 + 56: international ISDN number' EQUALITY numericStringMatch SUBSTR numericSt + ringSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{16} ) +olcAttributeTypes: {22}( 2.5.4.26 NAME 'registeredAddress' DESC 'RFC2256: re + gistered postal address' SUP postalAddress SYNTAX 1.3.6.1.4.1.1466.115.121. + 1.41 ) +olcAttributeTypes: {23}( 2.5.4.27 NAME 'destinationIndicator' DESC 'RFC2256: + destination indicator' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstring + sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{128} ) +olcAttributeTypes: {24}( 2.5.4.28 NAME 'preferredDeliveryMethod' DESC 'RFC22 + 56: preferred delivery method' SYNTAX 1.3.6.1.4.1.1466.115.121.1.14 SINGLE- + VALUE ) +olcAttributeTypes: {25}( 2.5.4.29 NAME 'presentationAddress' DESC 'RFC2256: + presentation address' EQUALITY presentationAddressMatch SYNTAX 1.3.6.1.4.1. + 1466.115.121.1.43 SINGLE-VALUE ) +olcAttributeTypes: {26}( 2.5.4.30 NAME 'supportedApplicationContext' DESC 'R + FC2256: supported application context' EQUALITY objectIdentifierMatch SYNTA + X 1.3.6.1.4.1.1466.115.121.1.38 ) +olcAttributeTypes: {27}( 2.5.4.31 NAME 'member' DESC 'RFC2256: member of a g + roup' SUP distinguishedName ) +olcAttributeTypes: {28}( 2.5.4.32 NAME 'owner' DESC 'RFC2256: owner (of the + object)' SUP distinguishedName ) +olcAttributeTypes: {29}( 2.5.4.33 NAME 'roleOccupant' DESC 'RFC2256: occupan + t of role' SUP distinguishedName ) +olcAttributeTypes: {30}( 2.5.4.36 NAME 'userCertificate' DESC 'RFC2256: X.50 + 9 user certificate, use ;binary' EQUALITY certificateExactMatch SYNTAX 1.3. + 6.1.4.1.1466.115.121.1.8 ) +olcAttributeTypes: {31}( 2.5.4.37 NAME 'cACertificate' DESC 'RFC2256: X.509 + CA certificate, use ;binary' EQUALITY certificateExactMatch SYNTAX 1.3.6.1. + 4.1.1466.115.121.1.8 ) +olcAttributeTypes: {32}( 2.5.4.38 NAME 'authorityRevocationList' DESC 'RFC22 + 56: X.509 authority revocation list, use ;binary' SYNTAX 1.3.6.1.4.1.1466.1 + 15.121.1.9 ) +olcAttributeTypes: {33}( 2.5.4.39 NAME 'certificateRevocationList' DESC 'RFC + 2256: X.509 certificate revocation list, use ;binary' SYNTAX 1.3.6.1.4.1.14 + 66.115.121.1.9 ) +olcAttributeTypes: {34}( 2.5.4.40 NAME 'crossCertificatePair' DESC 'RFC2256: + X.509 cross certificate pair, use ;binary' SYNTAX 1.3.6.1.4.1.1466.115.121 + .1.10 ) +olcAttributeTypes: {35}( 2.5.4.42 NAME ( 'givenName' 'gn' ) DESC 'RFC2256: f + irst name(s) for which the entity is known by' SUP name ) +olcAttributeTypes: {36}( 2.5.4.43 NAME 'initials' DESC 'RFC2256: initials of + some or all of names, but not the surname(s).' SUP name ) +olcAttributeTypes: {37}( 2.5.4.44 NAME 'generationQualifier' DESC 'RFC2256: + name qualifier indicating a generation' SUP name ) +olcAttributeTypes: {38}( 2.5.4.45 NAME 'x500UniqueIdentifier' DESC 'RFC2256: + X.500 unique identifier' EQUALITY bitStringMatch SYNTAX 1.3.6.1.4.1.1466.1 + 15.121.1.6 ) +olcAttributeTypes: {39}( 2.5.4.46 NAME 'dnQualifier' DESC 'RFC2256: DN quali + fier' EQUALITY caseIgnoreMatch ORDERING caseIgnoreOrderingMatch SUBSTR case + IgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 ) +olcAttributeTypes: {40}( 2.5.4.47 NAME 'enhancedSearchGuide' DESC 'RFC2256: + enhanced search guide' SYNTAX 1.3.6.1.4.1.1466.115.121.1.21 ) +olcAttributeTypes: {41}( 2.5.4.48 NAME 'protocolInformation' DESC 'RFC2256: + protocol information' EQUALITY protocolInformationMatch SYNTAX 1.3.6.1.4.1. + 1466.115.121.1.42 ) +olcAttributeTypes: {42}( 2.5.4.50 NAME 'uniqueMember' DESC 'RFC2256: unique + member of a group' EQUALITY uniqueMemberMatch SYNTAX 1.3.6.1.4.1.1466.115.1 + 21.1.34 ) +olcAttributeTypes: {43}( 2.5.4.51 NAME 'houseIdentifier' DESC 'RFC2256: hous + e identifier' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYN + TAX 1.3.6.1.4.1.1466.115.121.1.15{32768} ) +olcAttributeTypes: {44}( 2.5.4.52 NAME 'supportedAlgorithms' DESC 'RFC2256: + supported algorithms' SYNTAX 1.3.6.1.4.1.1466.115.121.1.49 ) +olcAttributeTypes: {45}( 2.5.4.53 NAME 'deltaRevocationList' DESC 'RFC2256: + delta revocation list; use ;binary' SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 ) +olcAttributeTypes: {46}( 2.5.4.54 NAME 'dmdName' DESC 'RFC2256: name of DMD' + SUP name ) +olcAttributeTypes: {47}( 2.5.4.65 NAME 'pseudonym' DESC 'X.520(4th): pseudon + ym for the object' SUP name ) +olcAttributeTypes: {48}( 0.9.2342.19200300.100.1.3 NAME ( 'mail' 'rfc822Mail + box' ) DESC 'RFC1274: RFC822 Mailbox' EQUALITY caseIgnoreIA5Match SUBST + R caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} + ) +olcAttributeTypes: {49}( 0.9.2342.19200300.100.1.25 NAME ( 'dc' 'domainCompo + nent' ) DESC 'RFC1274/2247: domain component' EQUALITY caseIgnoreIA5Match S + UBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SIN + GLE-VALUE ) +olcAttributeTypes: {50}( 0.9.2342.19200300.100.1.37 NAME 'associatedDomain' + DESC 'RFC1274: domain associated with object' EQUALITY caseIgnoreIA5Match S + UBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {51}( 1.2.840.113549.1.9.1 NAME ( 'email' 'emailAddress' + 'pkcs9email' ) DESC 'RFC3280: legacy attribute for email addresses in DNs' + EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3. + 6.1.4.1.1466.115.121.1.26{128} ) +olcObjectClasses: {0}( 2.5.6.2 NAME 'country' DESC 'RFC2256: a country' SUP + top STRUCTURAL MUST c MAY ( searchGuide $ description ) ) +olcObjectClasses: {1}( 2.5.6.3 NAME 'locality' DESC 'RFC2256: a locality' SU + P top STRUCTURAL MAY ( street $ seeAlso $ searchGuide $ st $ l $ descriptio + n ) ) +olcObjectClasses: {2}( 2.5.6.4 NAME 'organization' DESC 'RFC2256: an organiz + ation' SUP top STRUCTURAL MUST o MAY ( userPassword $ searchGuide $ seeAlso + $ businessCategory $ x121Address $ registeredAddress $ destinationIndicato + r $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ tel + ephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street + $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName + $ st $ l $ description ) ) +olcObjectClasses: {3}( 2.5.6.5 NAME 'organizationalUnit' DESC 'RFC2256: an o + rganizational unit' SUP top STRUCTURAL MUST ou MAY ( userPassword $ searchG + uide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ desti + nationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalId + entifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNu + mber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDelive + ryOfficeName $ st $ l $ description ) ) +olcObjectClasses: {4}( 2.5.6.6 NAME 'person' DESC 'RFC2256: a person' SUP to + p STRUCTURAL MUST ( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAls + o $ description ) ) +olcObjectClasses: {5}( 2.5.6.7 NAME 'organizationalPerson' DESC 'RFC2256: an + organizational person' SUP person STRUCTURAL MAY ( title $ x121Address $ r + egisteredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNu + mber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumbe + r $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ posta + lAddress $ physicalDeliveryOfficeName $ ou $ st $ l ) ) +olcObjectClasses: {6}( 2.5.6.8 NAME 'organizationalRole' DESC 'RFC2256: an o + rganizational role' SUP top STRUCTURAL MUST cn MAY ( x121Address $ register + edAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ + teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ fac + simileTelephoneNumber $ seeAlso $ roleOccupant $ preferredDeliveryMethod $ + street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOffic + eName $ ou $ st $ l $ description ) ) +olcObjectClasses: {7}( 2.5.6.9 NAME 'groupOfNames' DESC 'RFC2256: a group of + names (DNs)' SUP top STRUCTURAL MUST ( member $ cn ) MAY ( businessCategor + y $ seeAlso $ owner $ ou $ o $ description ) ) +olcObjectClasses: {8}( 2.5.6.10 NAME 'residentialPerson' DESC 'RFC2256: an r + esidential person' SUP person STRUCTURAL MUST l MAY ( businessCategory $ x1 + 21Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMet + hod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internati + onaliSDNNumber $ facsimileTelephoneNumber $ preferredDeliveryMethod $ stree + t $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName + $ st $ l ) ) +olcObjectClasses: {9}( 2.5.6.11 NAME 'applicationProcess' DESC 'RFC2256: an + application process' SUP top STRUCTURAL MUST cn MAY ( seeAlso $ ou $ l $ de + scription ) ) +olcObjectClasses: {10}( 2.5.6.12 NAME 'applicationEntity' DESC 'RFC2256: an + application entity' SUP top STRUCTURAL MUST ( presentationAddress $ cn ) MA + Y ( supportedApplicationContext $ seeAlso $ ou $ o $ l $ description ) ) +olcObjectClasses: {11}( 2.5.6.13 NAME 'dSA' DESC 'RFC2256: a directory syste + m agent (a server)' SUP applicationEntity STRUCTURAL MAY knowledgeInformati + on ) +olcObjectClasses: {12}( 2.5.6.14 NAME 'device' DESC 'RFC2256: a device' SUP + top STRUCTURAL MUST cn MAY ( serialNumber $ seeAlso $ owner $ ou $ o $ l $ + description ) ) +olcObjectClasses: {13}( 2.5.6.15 NAME 'strongAuthenticationUser' DESC 'RFC22 + 56: a strong authentication user' SUP top AUXILIARY MUST userCertificate ) +olcObjectClasses: {14}( 2.5.6.16 NAME 'certificationAuthority' DESC 'RFC2256 + : a certificate authority' SUP top AUXILIARY MUST ( authorityRevocationList + $ certificateRevocationList $ cACertificate ) MAY crossCertificatePair ) +olcObjectClasses: {15}( 2.5.6.17 NAME 'groupOfUniqueNames' DESC 'RFC2256: a + group of unique names (DN and Unique Identifier)' SUP top STRUCTURAL MUST ( + uniqueMember $ cn ) MAY ( businessCategory $ seeAlso $ owner $ ou $ o $ de + scription ) ) +olcObjectClasses: {16}( 2.5.6.18 NAME 'userSecurityInformation' DESC 'RFC225 + 6: a user security information' SUP top AUXILIARY MAY ( supportedAlgorithms + ) ) +olcObjectClasses: {17}( 2.5.6.16.2 NAME 'certificationAuthority-V2' SUP cert + ificationAuthority AUXILIARY MAY ( deltaRevocationList ) ) +olcObjectClasses: {18}( 2.5.6.19 NAME 'cRLDistributionPoint' SUP top STRUCTU + RAL MUST ( cn ) MAY ( certificateRevocationList $ authorityRevocationList $ + deltaRevocationList ) ) +olcObjectClasses: {19}( 2.5.6.20 NAME 'dmd' SUP top STRUCTURAL MUST ( dmdNam + e ) MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Add + ress $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ + telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationali + SDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode + $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description ) ) +olcObjectClasses: {20}( 2.5.6.21 NAME 'pkiUser' DESC 'RFC2587: a PKI user' S + UP top AUXILIARY MAY userCertificate ) +olcObjectClasses: {21}( 2.5.6.22 NAME 'pkiCA' DESC 'RFC2587: PKI certificate + authority' SUP top AUXILIARY MAY ( authorityRevocationList $ certificateRe + vocationList $ cACertificate $ crossCertificatePair ) ) +olcObjectClasses: {22}( 2.5.6.23 NAME 'deltaCRL' DESC 'RFC2587: PKI user' SU + P top AUXILIARY MAY deltaRevocationList ) +olcObjectClasses: {23}( 1.3.6.1.4.1.250.3.15 NAME 'labeledURIObject' DESC 'R + FC2079: object that contains the URI attribute type' MAY ( labeledURI ) SUP + top AUXILIARY ) +olcObjectClasses: {24}( 0.9.2342.19200300.100.4.19 NAME 'simpleSecurityObjec + t' DESC 'RFC1274: simple security object' SUP top AUXILIARY MUST userPasswo + rd ) +olcObjectClasses: {25}( 1.3.6.1.4.1.1466.344 NAME 'dcObject' DESC 'RFC2247: + domain component object' SUP top AUXILIARY MUST dc ) +olcObjectClasses: {26}( 1.3.6.1.1.3.1 NAME 'uidObject' DESC 'RFC2377: uid ob + ject' SUP top AUXILIARY MUST uid ) +structuralObjectClass: olcSchemaConfig +entryUUID: 4019f348-eaf5-1039-8661-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.083690Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif new file mode 100644 index 0000000..bc17164 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif @@ -0,0 +1,178 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 4e3862ab +dn: cn={1}cosine +objectClass: olcSchemaConfig +cn: {1}cosine +olcAttributeTypes: {0}( 0.9.2342.19200300.100.1.2 NAME 'textEncodedORAddress + ' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1. + 4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {1}( 0.9.2342.19200300.100.1.4 NAME 'info' DESC 'RFC1274: + general information' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsM + atch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{2048} ) +olcAttributeTypes: {2}( 0.9.2342.19200300.100.1.5 NAME ( 'drink' 'favouriteD + rink' ) DESC 'RFC1274: favorite drink' EQUALITY caseIgnoreMatch SUBSTR case + IgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {3}( 0.9.2342.19200300.100.1.6 NAME 'roomNumber' DESC 'RF + C1274: room number' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMat + ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {4}( 0.9.2342.19200300.100.1.7 NAME 'photo' DESC 'RFC1274 + : photo (G3 fax)' SYNTAX 1.3.6.1.4.1.1466.115.121.1.23{25000} ) +olcAttributeTypes: {5}( 0.9.2342.19200300.100.1.8 NAME 'userClass' DESC 'RFC + 1274: category of user' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstring + sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {6}( 0.9.2342.19200300.100.1.9 NAME 'host' DESC 'RFC1274: + host computer' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch S + YNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {7}( 0.9.2342.19200300.100.1.10 NAME 'manager' DESC 'RFC1 + 274: DN of manager' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466 + .115.121.1.12 ) +olcAttributeTypes: {8}( 0.9.2342.19200300.100.1.11 NAME 'documentIdentifier' + DESC 'RFC1274: unique identifier of document' EQUALITY caseIgnoreMatch SUB + STR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {9}( 0.9.2342.19200300.100.1.12 NAME 'documentTitle' DESC + 'RFC1274: title of document' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSub + stringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {10}( 0.9.2342.19200300.100.1.13 NAME 'documentVersion' D + ESC 'RFC1274: version of document' EQUALITY caseIgnoreMatch SUBSTR caseIgno + reSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {11}( 0.9.2342.19200300.100.1.14 NAME 'documentAuthor' DE + SC 'RFC1274: DN of author of document' EQUALITY distinguishedNameMatch SYNT + AX 1.3.6.1.4.1.1466.115.121.1.12 ) +olcAttributeTypes: {12}( 0.9.2342.19200300.100.1.15 NAME 'documentLocation' + DESC 'RFC1274: location of document original' EQUALITY caseIgnoreMatch SUBS + TR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {13}( 0.9.2342.19200300.100.1.20 NAME ( 'homePhone' 'home + TelephoneNumber' ) DESC 'RFC1274: home telephone number' EQUALITY telephone + NumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.1 + 15.121.1.50 ) +olcAttributeTypes: {14}( 0.9.2342.19200300.100.1.21 NAME 'secretary' DESC 'R + FC1274: DN of secretary' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1 + .1466.115.121.1.12 ) +olcAttributeTypes: {15}( 0.9.2342.19200300.100.1.22 NAME 'otherMailbox' SYNT + AX 1.3.6.1.4.1.1466.115.121.1.39 ) +olcAttributeTypes: {16}( 0.9.2342.19200300.100.1.26 NAME 'aRecord' EQUALITY + caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {17}( 0.9.2342.19200300.100.1.27 NAME 'mDRecord' EQUALITY + caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {18}( 0.9.2342.19200300.100.1.28 NAME 'mXRecord' EQUALITY + caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {19}( 0.9.2342.19200300.100.1.29 NAME 'nSRecord' EQUALITY + caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {20}( 0.9.2342.19200300.100.1.30 NAME 'sOARecord' EQUALIT + Y caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {21}( 0.9.2342.19200300.100.1.31 NAME 'cNAMERecord' EQUAL + ITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {22}( 0.9.2342.19200300.100.1.38 NAME 'associatedName' DE + SC 'RFC1274: DN of entry associated with domain' EQUALITY distinguishedName + Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) +olcAttributeTypes: {23}( 0.9.2342.19200300.100.1.39 NAME 'homePostalAddress' + DESC 'RFC1274: home postal address' EQUALITY caseIgnoreListMatch SUBSTR ca + seIgnoreListSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 ) +olcAttributeTypes: {24}( 0.9.2342.19200300.100.1.40 NAME 'personalTitle' DES + C 'RFC1274: personal title' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubst + ringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {25}( 0.9.2342.19200300.100.1.41 NAME ( 'mobile' 'mobileT + elephoneNumber' ) DESC 'RFC1274: mobile telephone number' EQUALITY telephon + eNumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466. + 115.121.1.50 ) +olcAttributeTypes: {26}( 0.9.2342.19200300.100.1.42 NAME ( 'pager' 'pagerTel + ephoneNumber' ) DESC 'RFC1274: pager telephone number' EQUALITY telephoneNu + mberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115 + .121.1.50 ) +olcAttributeTypes: {27}( 0.9.2342.19200300.100.1.43 NAME ( 'co' 'friendlyCou + ntryName' ) DESC 'RFC1274: friendly country name' EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +olcAttributeTypes: {28}( 0.9.2342.19200300.100.1.44 NAME 'uniqueIdentifier' + DESC 'RFC1274: unique identifer' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4. + 1.1466.115.121.1.15{256} ) +olcAttributeTypes: {29}( 0.9.2342.19200300.100.1.45 NAME 'organizationalStat + us' DESC 'RFC1274: organizational status' EQUALITY caseIgnoreMatch SUBSTR c + aseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {30}( 0.9.2342.19200300.100.1.46 NAME 'janetMailbox' DESC + 'RFC1274: Janet mailbox' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5S + ubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) +olcAttributeTypes: {31}( 0.9.2342.19200300.100.1.47 NAME 'mailPreferenceOpti + on' DESC 'RFC1274: mail preference option' SYNTAX 1.3.6.1.4.1.1466.115.121. + 1.27 ) +olcAttributeTypes: {32}( 0.9.2342.19200300.100.1.48 NAME 'buildingName' DESC + 'RFC1274: name of building' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubs + tringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {33}( 0.9.2342.19200300.100.1.49 NAME 'dSAQuality' DESC ' + RFC1274: DSA Quality' SYNTAX 1.3.6.1.4.1.1466.115.121.1.19 SINGLE-VALUE ) +olcAttributeTypes: {34}( 0.9.2342.19200300.100.1.50 NAME 'singleLevelQuality + ' DESC 'RFC1274: Single Level Quality' SYNTAX 1.3.6.1.4.1.1466.115.121.1.13 + SINGLE-VALUE ) +olcAttributeTypes: {35}( 0.9.2342.19200300.100.1.51 NAME 'subtreeMinimumQual + ity' DESC 'RFC1274: Subtree Mininum Quality' SYNTAX 1.3.6.1.4.1.1466.115.12 + 1.1.13 SINGLE-VALUE ) +olcAttributeTypes: {36}( 0.9.2342.19200300.100.1.52 NAME 'subtreeMaximumQual + ity' DESC 'RFC1274: Subtree Maximun Quality' SYNTAX 1.3.6.1.4.1.1466.115.12 + 1.1.13 SINGLE-VALUE ) +olcAttributeTypes: {37}( 0.9.2342.19200300.100.1.53 NAME 'personalSignature' + DESC 'RFC1274: Personal Signature (G3 fax)' SYNTAX 1.3.6.1.4.1.1466.115.12 + 1.1.23 ) +olcAttributeTypes: {38}( 0.9.2342.19200300.100.1.54 NAME 'dITRedirect' DESC + 'RFC1274: DIT Redirect' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1. + 1466.115.121.1.12 ) +olcAttributeTypes: {39}( 0.9.2342.19200300.100.1.55 NAME 'audio' DESC 'RFC12 + 74: audio (u-law)' SYNTAX 1.3.6.1.4.1.1466.115.121.1.4{25000} ) +olcAttributeTypes: {40}( 0.9.2342.19200300.100.1.56 NAME 'documentPublisher' + DESC 'RFC1274: publisher of document' EQUALITY caseIgnoreMatch SUBSTR case + IgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +olcObjectClasses: {0}( 0.9.2342.19200300.100.4.4 NAME ( 'pilotPerson' 'newPi + lotPerson' ) SUP person STRUCTURAL MAY ( userid $ textEncodedORAddress $ rf + c822Mailbox $ favouriteDrink $ roomNumber $ userClass $ homeTelephoneNumber + $ homePostalAddress $ secretary $ personalTitle $ preferredDeliveryMethod + $ businessCategory $ janetMailbox $ otherMailbox $ mobileTelephoneNumber $ + pagerTelephoneNumber $ organizationalStatus $ mailPreferenceOption $ person + alSignature ) ) +olcObjectClasses: {1}( 0.9.2342.19200300.100.4.5 NAME 'account' SUP top STRU + CTURAL MUST userid MAY ( description $ seeAlso $ localityName $ organizatio + nName $ organizationalUnitName $ host ) ) +olcObjectClasses: {2}( 0.9.2342.19200300.100.4.6 NAME 'document' SUP top STR + UCTURAL MUST documentIdentifier MAY ( commonName $ description $ seeAlso $ + localityName $ organizationName $ organizationalUnitName $ documentTitle $ + documentVersion $ documentAuthor $ documentLocation $ documentPublisher ) ) +olcObjectClasses: {3}( 0.9.2342.19200300.100.4.7 NAME 'room' SUP top STRUCTU + RAL MUST commonName MAY ( roomNumber $ description $ seeAlso $ telephoneNum + ber ) ) +olcObjectClasses: {4}( 0.9.2342.19200300.100.4.9 NAME 'documentSeries' SUP t + op STRUCTURAL MUST commonName MAY ( description $ seeAlso $ telephonenumber + $ localityName $ organizationName $ organizationalUnitName ) ) +olcObjectClasses: {5}( 0.9.2342.19200300.100.4.13 NAME 'domain' SUP top STRU + CTURAL MUST domainComponent MAY ( associatedName $ organizationName $ descr + iption $ businessCategory $ seeAlso $ searchGuide $ userPassword $ locality + Name $ stateOrProvinceName $ streetAddress $ physicalDeliveryOfficeName $ p + ostalAddress $ postalCode $ postOfficeBox $ streetAddress $ facsimileTeleph + oneNumber $ internationalISDNNumber $ telephoneNumber $ teletexTerminalIden + tifier $ telexNumber $ preferredDeliveryMethod $ destinationIndicator $ reg + isteredAddress $ x121Address ) ) +olcObjectClasses: {6}( 0.9.2342.19200300.100.4.14 NAME 'RFC822localPart' SUP + domain STRUCTURAL MAY ( commonName $ surname $ description $ seeAlso $ tel + ephoneNumber $ physicalDeliveryOfficeName $ postalAddress $ postalCode $ po + stOfficeBox $ streetAddress $ facsimileTelephoneNumber $ internationalISDNN + umber $ telephoneNumber $ teletexTerminalIdentifier $ telexNumber $ preferr + edDeliveryMethod $ destinationIndicator $ registeredAddress $ x121Address ) + ) +olcObjectClasses: {7}( 0.9.2342.19200300.100.4.15 NAME 'dNSDomain' SUP domai + n STRUCTURAL MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ C + NAMERecord ) ) +olcObjectClasses: {8}( 0.9.2342.19200300.100.4.17 NAME 'domainRelatedObject' + DESC 'RFC1274: an object related to an domain' SUP top AUXILIARY MUST asso + ciatedDomain ) +olcObjectClasses: {9}( 0.9.2342.19200300.100.4.18 NAME 'friendlyCountry' SUP + country STRUCTURAL MUST friendlyCountryName ) +olcObjectClasses: {10}( 0.9.2342.19200300.100.4.20 NAME 'pilotOrganization' + SUP ( organization $ organizationalUnit ) STRUCTURAL MAY buildingName ) +olcObjectClasses: {11}( 0.9.2342.19200300.100.4.21 NAME 'pilotDSA' SUP dsa S + TRUCTURAL MAY dSAQuality ) +olcObjectClasses: {12}( 0.9.2342.19200300.100.4.22 NAME 'qualityLabelledData + ' SUP top AUXILIARY MUST dsaQuality MAY ( subtreeMinimumQuality $ subtreeMa + ximumQuality ) ) +structuralObjectClass: olcSchemaConfig +entryUUID: 401a0f9a-eaf5-1039-8662-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.084423Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={2}inetorgperson.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={2}inetorgperson.ldif new file mode 100644 index 0000000..ecc4a56 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={2}inetorgperson.ldif @@ -0,0 +1,49 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 2dfdddb6 +dn: cn={2}inetorgperson +objectClass: olcSchemaConfig +cn: {2}inetorgperson +olcAttributeTypes: {0}( 2.16.840.1.113730.3.1.1 NAME 'carLicense' DESC 'RFC2 + 798: vehicle license or registration plate' EQUALITY caseIgnoreMatch SUBSTR + caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +olcAttributeTypes: {1}( 2.16.840.1.113730.3.1.2 NAME 'departmentNumber' DESC + 'RFC2798: identifies a department within an organization' EQUALITY caseIgn + oreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1 + .15 ) +olcAttributeTypes: {2}( 2.16.840.1.113730.3.1.241 NAME 'displayName' DESC 'R + FC2798: preferred name to be used when displaying entries' EQUALITY caseIgn + oreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1 + .15 SINGLE-VALUE ) +olcAttributeTypes: {3}( 2.16.840.1.113730.3.1.3 NAME 'employeeNumber' DESC ' + RFC2798: numerically identifies an employee within an organization' EQUALIT + Y caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466. + 115.121.1.15 SINGLE-VALUE ) +olcAttributeTypes: {4}( 2.16.840.1.113730.3.1.4 NAME 'employeeType' DESC 'RF + C2798: type of employment for a person' EQUALITY caseIgnoreMatch SUBSTR cas + eIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +olcAttributeTypes: {5}( 0.9.2342.19200300.100.1.60 NAME 'jpegPhoto' DESC 'RF + C2798: a JPEG image' SYNTAX 1.3.6.1.4.1.1466.115.121.1.28 ) +olcAttributeTypes: {6}( 2.16.840.1.113730.3.1.39 NAME 'preferredLanguage' DE + SC 'RFC2798: preferred written or spoken language for a person' EQUALITY ca + seIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115. + 121.1.15 SINGLE-VALUE ) +olcAttributeTypes: {7}( 2.16.840.1.113730.3.1.40 NAME 'userSMIMECertificate' + DESC 'RFC2798: PKCS#7 SignedData used to support S/MIME' SYNTAX 1.3.6.1.4. + 1.1466.115.121.1.5 ) +olcAttributeTypes: {8}( 2.16.840.1.113730.3.1.216 NAME 'userPKCS12' DESC 'RF + C2798: personal identity information, a PKCS #12 PFX' SYNTAX 1.3.6.1.4.1.14 + 66.115.121.1.5 ) +olcObjectClasses: {0}( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' DESC 'RF + C2798: Internet Organizational Person' SUP organizationalPerson STRUCTURAL + MAY ( audio $ businessCategory $ carLicense $ departmentNumber $ displayNam + e $ employeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddre + ss $ initials $ jpegPhoto $ labeledURI $ mail $ manager $ mobile $ o $ page + r $ photo $ roomNumber $ secretary $ uid $ userCertificate $ x500uniqueIden + tifier $ preferredLanguage $ userSMIMECertificate $ userPKCS12 ) ) +structuralObjectClass: olcSchemaConfig +entryUUID: 401a225a-eaf5-1039-8663-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.084903Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={3}rfc2307bis.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={3}rfc2307bis.ldif new file mode 100644 index 0000000..57c8246 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={3}rfc2307bis.ldif @@ -0,0 +1,155 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 dd0a742e +dn: cn={3}rfc2307bis +objectClass: olcSchemaConfig +cn: {3}rfc2307bis +olcAttributeTypes: {0}( 1.3.6.1.1.1.1.2 NAME 'gecos' DESC 'The GECOS field; + the common name' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5Substrings + Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {1}( 1.3.6.1.1.1.1.3 NAME 'homeDirectory' DESC 'The absol + ute path to the home directory' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4 + .1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {2}( 1.3.6.1.1.1.1.4 NAME 'loginShell' DESC 'The path to + the login shell' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121 + .1.26 SINGLE-VALUE ) +olcAttributeTypes: {3}( 1.3.6.1.1.1.1.5 NAME 'shadowLastChange' EQUALITY int + egerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {4}( 1.3.6.1.1.1.1.6 NAME 'shadowMin' EQUALITY integerMat + ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {5}( 1.3.6.1.1.1.1.7 NAME 'shadowMax' EQUALITY integerMat + ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {6}( 1.3.6.1.1.1.1.8 NAME 'shadowWarning' EQUALITY intege + rMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {7}( 1.3.6.1.1.1.1.9 NAME 'shadowInactive' EQUALITY integ + erMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {8}( 1.3.6.1.1.1.1.10 NAME 'shadowExpire' EQUALITY intege + rMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {9}( 1.3.6.1.1.1.1.11 NAME 'shadowFlag' EQUALITY integerM + atch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {10}( 1.3.6.1.1.1.1.12 NAME 'memberUid' EQUALITY caseExac + tIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {11}( 1.3.6.1.1.1.1.13 NAME 'memberNisNetgroup' EQUALITY + caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.146 + 6.115.121.1.26 ) +olcAttributeTypes: {12}( 1.3.6.1.1.1.1.14 NAME 'nisNetgroupTriple' DESC 'Net + group triple' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1 + .26 ) +olcAttributeTypes: {13}( 1.3.6.1.1.1.1.15 NAME 'ipServicePort' DESC 'Service + port number' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SI + NGLE-VALUE ) +olcAttributeTypes: {14}( 1.3.6.1.1.1.1.16 NAME 'ipServiceProtocol' DESC 'Ser + vice protocol name' SUP name ) +olcAttributeTypes: {15}( 1.3.6.1.1.1.1.17 NAME 'ipProtocolNumber' DESC 'IP p + rotocol number' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 + SINGLE-VALUE ) +olcAttributeTypes: {16}( 1.3.6.1.1.1.1.18 NAME 'oncRpcNumber' DESC 'ONC RPC + number' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-V + ALUE ) +olcAttributeTypes: {17}( 1.3.6.1.1.1.1.19 NAME 'ipHostNumber' DESC 'IPv4 add + resses as a dotted decimal omitting leading zeros or IPv6 addresses + as defined in RFC2373' SUP name ) +olcAttributeTypes: {18}( 1.3.6.1.1.1.1.20 NAME 'ipNetworkNumber' DESC 'IP ne + twork as a dotted decimal, eg. 192.168, omitting leading zeros' SUP + name SINGLE-VALUE ) +olcAttributeTypes: {19}( 1.3.6.1.1.1.1.21 NAME 'ipNetmaskNumber' DESC 'IP ne + tmask as a dotted decimal, eg. 255.255.255.0, omitting leading zeros + ' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-V + ALUE ) +olcAttributeTypes: {20}( 1.3.6.1.1.1.1.22 NAME 'macAddress' DESC 'MAC addres + s in maximal, colon separated hex notation, eg. 00:00:92:90:ee:e2' E + QUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {21}( 1.3.6.1.1.1.1.23 NAME 'bootParameter' DESC 'rpc.boo + tparamd parameter' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.1 + 21.1.26 ) +olcAttributeTypes: {22}( 1.3.6.1.1.1.1.24 NAME 'bootFile' DESC 'Boot image n + ame' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {23}( 1.3.6.1.1.1.1.26 NAME 'nisMapName' DESC 'Name of a + A generic NIS map' SUP name ) +olcAttributeTypes: {24}( 1.3.6.1.1.1.1.27 NAME 'nisMapEntry' DESC 'A generic + NIS entry' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch S + YNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {25}( 1.3.6.1.1.1.1.28 NAME 'nisPublicKey' DESC 'NIS publ + ic key' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SING + LE-VALUE ) +olcAttributeTypes: {26}( 1.3.6.1.1.1.1.29 NAME 'nisSecretKey' DESC 'NIS secr + et key' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SING + LE-VALUE ) +olcAttributeTypes: {27}( 1.3.6.1.1.1.1.30 NAME 'nisDomain' DESC 'NIS domain' + EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {28}( 1.3.6.1.1.1.1.31 NAME 'automountMapName' DESC 'auto + mount Map Name' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMat + ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {29}( 1.3.6.1.1.1.1.32 NAME 'automountKey' DESC 'Automoun + t Key value' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {30}( 1.3.6.1.1.1.1.33 NAME 'automountInformation' DESC ' + Automount information' EQUALITY caseExactIA5Match SUBSTR caseExactIA5Substr + ingsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcObjectClasses: {0}( 1.3.6.1.1.1.2.0 NAME 'posixAccount' DESC 'Abstraction + of an account with POSIX attributes' SUP top AUXILIARY MUST ( cn $ uid $ u + idNumber $ gidNumber $ homeDirectory ) MAY ( userPassword $ loginShell $ ge + cos $ description ) ) +olcObjectClasses: {1}( 1.3.6.1.1.1.2.1 NAME 'shadowAccount' DESC 'Additional + attributes for shadow passwords' SUP top AUXILIARY MUST uid MAY ( userPass + word $ description $ shadowLastChange $ shadowMin $ shadowMax $ shadowWarni + ng $ shadowInactive $ shadowExpire $ shadowFlag ) ) +olcObjectClasses: {2}( 1.3.6.1.1.1.2.2 NAME 'posixGroup' DESC 'Abstraction o + f a group of accounts' SUP top AUXILIARY MUST gidNumber MAY ( userPassword + $ memberUid $ description ) ) +olcObjectClasses: {3}( 1.3.6.1.1.1.2.3 NAME 'ipService' DESC 'Abstraction an + Internet Protocol service. Maps an IP port and protocol (such as tc + p or udp) to one or more names; the distinguished value of th + e cn attribute denotes the services canonical name' SUP top STRUCTUR + AL MUST ( cn $ ipServicePort $ ipServiceProtocol ) MAY description ) +olcObjectClasses: {4}( 1.3.6.1.1.1.2.4 NAME 'ipProtocol' DESC 'Abstraction o + f an IP protocol. Maps a protocol number to one or more names. The d + istinguished value of the cn attribute denotes the protocols canonic + al name' SUP top STRUCTURAL MUST ( cn $ ipProtocolNumber ) MAY description + ) +olcObjectClasses: {5}( 1.3.6.1.1.1.2.5 NAME 'oncRpc' DESC 'Abstraction of an + Open Network Computing (ONC) [RFC1057] Remote Procedure Call (RPC) b + inding. This class maps an ONC RPC number to a name. The distin + guished value of the cn attribute denotes the RPC services canonical + name' SUP top STRUCTURAL MUST ( cn $ oncRpcNumber ) MAY description ) +olcObjectClasses: {6}( 1.3.6.1.1.1.2.6 NAME 'ipHost' DESC 'Abstraction of a + host, an IP device. The distinguished value of the cn attribute deno + tes the hosts canonical name. Device SHOULD be used as a structural + class' SUP top AUXILIARY MUST ( cn $ ipHostNumber ) MAY ( userPassword $ l + $ description $ manager ) ) +olcObjectClasses: {7}( 1.3.6.1.1.1.2.7 NAME 'ipNetwork' DESC 'Abstraction of + a network. The distinguished value of the cn attribute denotes the + networks canonical name' SUP top STRUCTURAL MUST ipNetworkNumber MAY ( cn $ + ipNetmaskNumber $ l $ description $ manager ) ) +olcObjectClasses: {8}( 1.3.6.1.1.1.2.8 NAME 'nisNetgroup' DESC 'Abstraction + of a netgroup. May refer to other netgroups' SUP top STRUCTURAL MUST cn MAY + ( nisNetgroupTriple $ memberNisNetgroup $ description ) ) +olcObjectClasses: {9}( 1.3.6.1.1.1.2.9 NAME 'nisMap' DESC 'A generic abstrac + tion of a NIS map' SUP top STRUCTURAL MUST nisMapName MAY description ) +olcObjectClasses: {10}( 1.3.6.1.1.1.2.10 NAME 'nisObject' DESC 'An entry in + a NIS map' SUP top STRUCTURAL MUST ( cn $ nisMapEntry $ nisMapName ) MAY de + scription ) +olcObjectClasses: {11}( 1.3.6.1.1.1.2.11 NAME 'ieee802Device' DESC 'A device + with a MAC address; device SHOULD be used as a structural class' SU + P top AUXILIARY MAY macAddress ) +olcObjectClasses: {12}( 1.3.6.1.1.1.2.12 NAME 'bootableDevice' DESC 'A devic + e with boot parameters; device SHOULD be used as a structural class' + SUP top AUXILIARY MAY ( bootFile $ bootParameter ) ) +olcObjectClasses: {13}( 1.3.6.1.1.1.2.14 NAME 'nisKeyObject' DESC 'An object + with a public and secret key' SUP top AUXILIARY MUST ( cn $ nisPublicKey $ + nisSecretKey ) MAY ( uidNumber $ description ) ) +olcObjectClasses: {14}( 1.3.6.1.1.1.2.15 NAME 'nisDomainObject' DESC 'Associ + ates a NIS domain with a naming context' SUP top AUXILIARY MUST nisDomain ) +olcObjectClasses: {15}( 1.3.6.1.1.1.2.16 NAME 'automountMap' SUP top STRUCTU + RAL MUST automountMapName MAY description ) +olcObjectClasses: {16}( 1.3.6.1.1.1.2.17 NAME 'automount' DESC 'Automount in + formation' SUP top STRUCTURAL MUST ( automountKey $ automountInformation ) + MAY description ) +olcObjectClasses: {17}( 1.3.6.1.4.1.5322.13.1.1 NAME 'namedObject' SUP top S + TRUCTURAL MAY cn ) +structuralObjectClass: olcSchemaConfig +entryUUID: 401a2e6c-eaf5-1039-8664-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.085186Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={4}yast.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={4}yast.ldif new file mode 100644 index 0000000..0fe0f06 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={4}yast.ldif @@ -0,0 +1,108 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 442e4b40 +dn: cn={4}yast +objectClass: olcSchemaConfig +cn: {4}yast +olcObjectIdentifier: {0}SUSE 1.3.6.1.4.1.7057 +olcObjectIdentifier: {1}SUSE.YaST SUSE:10.1 +olcObjectIdentifier: {2}SUSE.YaST.ModuleConfig SUSE:10.1.2 +olcObjectIdentifier: {3}SUSE.YaST.ModuleConfig.OC SUSE.YaST.ModuleConfig:1 +olcObjectIdentifier: {4}SUSE.YaST.ModuleConfig.Attr SUSE.YaST.ModuleConfig:2 +olcAttributeTypes: {0}( SUSE.YaST.ModuleConfig.Attr:2 NAME 'suseDefaultBase' + DESC 'Base DN where new Objects should be created by default' EQUALITY dis + tinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) +olcAttributeTypes: {1}( SUSE.YaST.ModuleConfig.Attr:3 NAME 'suseNextUniqueId + ' DESC 'Next unused unique ID, can be used to generate directory wide uniqe + IDs' EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4. + 1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {2}( SUSE.YaST.ModuleConfig.Attr:4 NAME 'suseMinUniqueId' + DESC 'lower Border for Unique IDs' EQUALITY integerMatch ORDERING integerO + rderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {3}( SUSE.YaST.ModuleConfig.Attr:5 NAME 'suseMaxUniqueId' + DESC 'upper Border for Unique IDs' EQUALITY integerMatch ORDERING integerO + rderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {4}( SUSE.YaST.ModuleConfig.Attr:6 NAME 'suseDefaultTempl + ate' DESC 'The DN of a template that should be used by default' EQUALITY di + stinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) +olcAttributeTypes: {5}( SUSE.YaST.ModuleConfig.Attr:7 NAME 'suseSearchFilter + ' DESC 'Search filter to localize Objects' SYNTAX 1.3.6.1.4.1.1466.115.121. + 1.15 SINGLE-VALUE ) +olcAttributeTypes: {6}( SUSE.YaST.ModuleConfig.Attr:11 NAME 'suseDefaultValu + e' DESC 'an Attribute-Value-Assertions to define defaults for specific Attr + ibutes' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +olcAttributeTypes: {7}( SUSE.YaST.ModuleConfig.Attr:12 NAME 'suseNamingAttri + bute' DESC 'AttributeType that should be used as the RDN' EQUALITY caseIgno + reIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {8}( SUSE.YaST.ModuleConfig.Attr:15 NAME 'suseSecondaryGr + oup' DESC 'seconday group DN' EQUALITY distinguishedNameMatch SYNTAX 1.3.6. + 1.4.1.1466.115.121.1.12 ) +olcAttributeTypes: {9}( SUSE.YaST.ModuleConfig.Attr:16 NAME 'suseMinPassword + Length' DESC 'minimum Password length for new users' EQUALITY integerMatch + ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-V + ALUE ) +olcAttributeTypes: {10}( SUSE.YaST.ModuleConfig.Attr:17 NAME 'suseMaxPasswor + dLength' DESC 'maximum Password length for new users' EQUALITY integerMatch + ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE- + VALUE ) +olcAttributeTypes: {11}( SUSE.YaST.ModuleConfig.Attr:18 NAME 'susePasswordHa + sh' DESC 'Hash method to use for new users' EQUALITY caseIgnoreIA5Match SYN + TAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {12}( SUSE.YaST.ModuleConfig.Attr:19 NAME 'suseSkelDir' D + ESC '' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {13}( SUSE.YaST.ModuleConfig.Attr:20 NAME 'susePlugin' DE + SC 'plugin to use upon user/ group creation' EQUALITY caseIgnoreMatch SYNTA + X 1.3.6.1.4.1.1466.115.121.1.15 ) +olcAttributeTypes: {14}( SUSE.YaST.ModuleConfig.Attr:21 NAME 'suseMapAttribu + te' DESC '' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +olcAttributeTypes: {15}( SUSE.YaST.ModuleConfig.Attr:22 NAME 'suseImapServer + ' DESC '' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SIN + GLE-VALUE ) +olcAttributeTypes: {16}( SUSE.YaST.ModuleConfig.Attr:23 NAME 'suseImapAdmin' + DESC '' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SING + LE-VALUE ) +olcAttributeTypes: {17}( SUSE.YaST.ModuleConfig.Attr:24 NAME 'suseImapDefaul + tQuota' DESC '' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 + SINGLE-VALUE ) +olcAttributeTypes: {18}( SUSE.YaST.ModuleConfig.Attr:25 NAME 'suseImapUseSsl + ' DESC '' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE- + VALUE ) +olcObjectClasses: {0}( SUSE.YaST.ModuleConfig.OC:2 NAME 'suseModuleConfigura + tion' DESC 'Contains configuration of Management Modules' SUP top STRUCTURA + L MUST cn MAY suseDefaultBase ) +olcObjectClasses: {1}( SUSE.YaST.ModuleConfig.OC:3 NAME 'suseUserConfigurati + on' DESC 'Configuration of user management tools' SUP suseModuleConfigurati + on STRUCTURAL MAY ( suseMinPasswordLength $ suseMaxPasswordLength $ susePas + swordHash $ suseSkelDir $ suseNextUniqueId $ suseMinUniqueId $ suseMaxUniqu + eId $ suseDefaultTemplate $ suseSearchFilter $ suseMapAttribute ) ) +olcObjectClasses: {2}( SUSE.YaST.ModuleConfig.OC:4 NAME 'suseObjectTemplate' + DESC 'Base Class for Object-Templates' SUP top STRUCTURAL MUST cn MAY ( su + sePlugin $ suseDefaultValue $ suseNamingAttribute ) ) +olcObjectClasses: {3}( SUSE.YaST.ModuleConfig.OC:5 NAME 'suseUserTemplate' D + ESC 'User object template' SUP suseObjectTemplate STRUCTURAL MUST cn MAY su + seSecondaryGroup ) +olcObjectClasses: {4}( SUSE.YaST.ModuleConfig.OC:6 NAME 'suseGroupTemplate' + DESC 'Group object template' SUP suseObjectTemplate STRUCTURAL MUST cn ) +olcObjectClasses: {5}( SUSE.YaST.ModuleConfig.OC:7 NAME 'suseGroupConfigurat + ion' DESC 'Configuration of user management tools' SUP suseModuleConfigurat + ion STRUCTURAL MAY ( suseNextUniqueId $ suseMinUniqueId $ suseMaxUniqueId $ + suseDefaultTemplate $ suseSearchFilter $ suseMapAttribute ) ) +olcObjectClasses: {6}( SUSE.YaST.ModuleConfig.OC:8 NAME 'suseCaConfiguration + ' DESC 'Configuration of CA management tools' SUP suseModuleConfiguration S + TRUCTURAL ) +olcObjectClasses: {7}( SUSE.YaST.ModuleConfig.OC:9 NAME 'suseDnsConfiguratio + n' DESC 'Configuration of mail server management tools' SUP suseModuleConfi + guration STRUCTURAL ) +olcObjectClasses: {8}( SUSE.YaST.ModuleConfig.OC:10 NAME 'suseDhcpConfigurat + ion' DESC 'Configuration of DHCP server management tools' SUP suseModuleCon + figuration STRUCTURAL ) +olcObjectClasses: {9}( SUSE.YaST.ModuleConfig.OC:11 NAME 'suseMailConfigurat + ion' DESC 'Configuration of IMAP user management tools' SUP suseModuleConfi + guration STRUCTURAL MUST ( suseImapServer $ suseImapAdmin $ suseImapDefault + Quota $ suseImapUseSsl ) ) +structuralObjectClass: olcSchemaConfig +entryUUID: 401a3f38-eaf5-1039-8665-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.085642Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={-1}frontend.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={-1}frontend.ldif new file mode 100644 index 0000000..87336b5 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={-1}frontend.ldif @@ -0,0 +1,15 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 ebfceba5 +dn: olcDatabase={-1}frontend +objectClass: olcDatabaseConfig +objectClass: olcFrontendConfig +olcDatabase: {-1}frontend +olcAccess: {0}to dn.base="" by * read +olcAccess: {1}to dn.base="cn=Subschema" by * read +structuralObjectClass: olcDatabaseConfig +entryUUID: 401a4c6c-eaf5-1039-8666-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.085980Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={0}config.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={0}config.ldif new file mode 100644 index 0000000..fa4e56c --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={0}config.ldif @@ -0,0 +1,20 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 e112c647 +dn: olcDatabase={0}config +objectClass: olcDatabaseConfig +olcDatabase: {0}config +olcAccess: {0}to * by * none +olcAddContentAcl: TRUE +olcLastMod: TRUE +olcMaxDerefDepth: 15 +olcReadOnly: FALSE +olcRootDN: cn=config +olcSyncUseSubentry: FALSE +olcMonitoring: FALSE +structuralObjectClass: olcDatabaseConfig +entryUUID: 401a534c-eaf5-1039-8668-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.086158Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb.ldif new file mode 100644 index 0000000..a4701b5 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb.ldif @@ -0,0 +1,18 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 c1d2cbb7 +dn: olcDatabase={1}mdb +objectClass: olcDatabaseConfig +objectClass: olcMdbConfig +olcDatabase: mdb +olcDbDirectory: /var/lib/ldap/example_com +olcSuffix: dc=example,dc=com +olcRootDN: cn=Manager,dc=example,dc=com +olcRootPW:: c2VjcmV0 +olcDbIndex: objectClass eq +structuralObjectClass: olcMdbConfig +entryUUID: 401a528e-eaf5-1039-8667-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.086134Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={0}memberof.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={0}memberof.ldif new file mode 100644 index 0000000..9053f5b --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={0}memberof.ldif @@ -0,0 +1,14 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 82bb3fb3 +dn: olcOverlay={0}memberof +objectClass: olcOverlayConfig +objectClass: olcMemberOf +olcOverlay: {0}memberof +olcMemberOfRefInt: TRUE +structuralObjectClass: olcMemberOf +entryUUID: 401a5f7c-eaf5-1039-8669-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.086468Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={1}refint.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={1}refint.ldif new file mode 100644 index 0000000..f990632 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={1}refint.ldif @@ -0,0 +1,15 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 28d25ae6 +dn: olcOverlay={1}refint +objectClass: olcOverlayConfig +objectClass: olcRefintConfig +olcOverlay: {1}refint +olcRefintAttribute: member +olcRefintAttribute: memberOf +structuralObjectClass: olcRefintConfig +entryUUID: 401a66fc-eaf5-1039-866a-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.086660Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={2}unique.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={2}unique.ldif new file mode 100644 index 0000000..2a0e6b3 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={2}unique.ldif @@ -0,0 +1,15 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 e3a2aeac +dn: olcOverlay={2}unique +objectClass: olcOverlayConfig +objectClass: olcUniqueConfig +olcOverlay: {2}unique +olcUniqueURI: ldap:///?mail?sub +olcUniqueURI: ldap:///?uid?sub +structuralObjectClass: olcUniqueConfig +entryUUID: 401a6b02-eaf5-1039-866b-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.086763Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb.ldif new file mode 100644 index 0000000..27a21d1 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb.ldif @@ -0,0 +1,18 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 1bb1ab28 +dn: olcDatabase={2}mdb +objectClass: olcDatabaseConfig +objectClass: olcMdbConfig +olcDatabase: mdb +olcDbDirectory: /var/lib/ldap/example_net +olcSuffix: dc=example,dc=net +olcRootDN: cn=Manager,dc=example,dc=net +olcRootPW:: c2VjcmV0 +olcDbIndex: objectClass eq +structuralObjectClass: olcMdbConfig +entryUUID: 401a7084-eaf5-1039-866c-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.086905Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={0}memberof.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={0}memberof.ldif new file mode 100644 index 0000000..d04bb79 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={0}memberof.ldif @@ -0,0 +1,14 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 6b48531c +dn: olcOverlay={0}memberof +objectClass: olcOverlayConfig +objectClass: olcMemberOf +olcOverlay: {0}memberof +olcMemberOfRefInt: TRUE +structuralObjectClass: olcMemberOf +entryUUID: 401a7890-eaf5-1039-866d-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.087110Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={1}unique.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={1}unique.ldif new file mode 100644 index 0000000..4ff7720 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={1}unique.ldif @@ -0,0 +1,15 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 027478a0 +dn: olcOverlay={1}unique +objectClass: olcOverlayConfig +objectClass: olcUniqueConfig +olcOverlay: {1}unique +olcUniqueURI: ldap:///?mail?sub +olcUniqueURI: ldap:///?uid?sub +structuralObjectClass: olcUniqueConfig +entryUUID: 401a7f20-eaf5-1039-866e-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.087278Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/test.ldif b/dirsrvtests/tests/data/openldap_2_389/test.ldif new file mode 100644 index 0000000..b1b552b --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/test.ldif @@ -0,0 +1,3 @@ + +hello + From 1a0a52b024c80e32b646a3c85475b2ab66598556 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 3/20] Move data --- diff --git a/dirsrvtests/tests/data/openldap_2_389/1/example_com.slapcat.ldif b/dirsrvtests/tests/data/openldap_2_389/1/example_com.slapcat.ldif new file mode 100644 index 0000000..c7a5089 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/example_com.slapcat.ldif @@ -0,0 +1,241 @@ +dn: dc=example,dc=com +objectClass: dcObject +objectClass: organization +o: Example Company +dc: example +structuralObjectClass: organization +entryUUID: 67c6a9b8-eafa-1039-882d-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.130368Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: cn=Manager,dc=example,dc=com +objectClass: organizationalRole +cn: Manager +structuralObjectClass: organizationalRole +entryUUID: 67c8c932-eafa-1039-882e-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.144283Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: ou=People,dc=example,dc=com +objectClass: organizationalUnit +ou: People +structuralObjectClass: organizationalUnit +entryUUID: 67ca92a8-eafa-1039-882f-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.155994Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: ou=Groups,dc=example,dc=com +objectClass: organizationalUnit +ou: Groups +structuralObjectClass: organizationalUnit +entryUUID: 67cc2212-eafa-1039-8830-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.166219Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: cn=user0,ou=People,dc=example,dc=com +objectClass: account +objectClass: posixAccount +cn: user0 +uid: user0 +uidNumber: 80000 +gidNumber: 80000 +homeDirectory: /home/user0 +structuralObjectClass: account +entryUUID: 67cdfcea-eafa-1039-8831-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.178373Z#000000#000#000000 +modifyTimestamp: 20200224023755Z +memberOf: cn=group0,ou=groups,dc=example,dc=com +memberOf: cn=group1,ou=groups,dc=example,dc=com +memberOf: cn=group2,ou=groups,dc=example,dc=com +memberOf: cn=group3,ou=groups,dc=example,dc=com +memberOf: cn=group4,ou=groups,dc=example,dc=com +modifiersName: cn=Manager,dc=example,dc=com + +dn: cn=user1,ou=People,dc=example,dc=com +objectClass: account +objectClass: posixAccount +cn: user1 +uid: user1 +uidNumber: 80001 +gidNumber: 80001 +homeDirectory: /home/user1 +structuralObjectClass: account +entryUUID: 67d05080-eafa-1039-8832-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.193620Z#000000#000#000000 +modifyTimestamp: 20200224023755Z +memberOf: cn=group0,ou=groups,dc=example,dc=com +memberOf: cn=group1,ou=groups,dc=example,dc=com +memberOf: cn=group2,ou=groups,dc=example,dc=com +memberOf: cn=group3,ou=groups,dc=example,dc=com +memberOf: cn=group4,ou=groups,dc=example,dc=com +modifiersName: cn=Manager,dc=example,dc=com + +dn: cn=user2,ou=People,dc=example,dc=com +objectClass: account +objectClass: posixAccount +cn: user2 +uid: user2 +uidNumber: 80002 +gidNumber: 80002 +homeDirectory: /home/user2 +structuralObjectClass: account +entryUUID: 67d26172-eafa-1039-8833-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.207161Z#000000#000#000000 +modifyTimestamp: 20200224023755Z +memberOf: cn=group0,ou=groups,dc=example,dc=com +memberOf: cn=group1,ou=groups,dc=example,dc=com +memberOf: cn=group2,ou=groups,dc=example,dc=com +memberOf: cn=group3,ou=groups,dc=example,dc=com +memberOf: cn=group4,ou=groups,dc=example,dc=com +modifiersName: cn=Manager,dc=example,dc=com + +dn: cn=user3,ou=People,dc=example,dc=com +objectClass: account +objectClass: posixAccount +cn: user3 +uid: user3 +uidNumber: 80003 +gidNumber: 80003 +homeDirectory: /home/user3 +structuralObjectClass: account +entryUUID: 67d460bc-eafa-1039-8834-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.220249Z#000000#000#000000 +modifyTimestamp: 20200224023755Z +memberOf: cn=group0,ou=groups,dc=example,dc=com +memberOf: cn=group1,ou=groups,dc=example,dc=com +memberOf: cn=group2,ou=groups,dc=example,dc=com +memberOf: cn=group3,ou=groups,dc=example,dc=com +memberOf: cn=group4,ou=groups,dc=example,dc=com +modifiersName: cn=Manager,dc=example,dc=com + +dn: cn=user4,ou=People,dc=example,dc=com +objectClass: account +objectClass: posixAccount +cn: user4 +uid: user4 +uidNumber: 80004 +gidNumber: 80004 +homeDirectory: /home/user4 +structuralObjectClass: account +entryUUID: 67d5d2a8-eafa-1039-8835-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.229723Z#000000#000#000000 +modifyTimestamp: 20200224023755Z +memberOf: cn=group0,ou=groups,dc=example,dc=com +memberOf: cn=group1,ou=groups,dc=example,dc=com +memberOf: cn=group2,ou=groups,dc=example,dc=com +memberOf: cn=group3,ou=groups,dc=example,dc=com +memberOf: cn=group4,ou=groups,dc=example,dc=com +modifiersName: cn=Manager,dc=example,dc=com + +dn: cn=group0,ou=Groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group0 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90000 +structuralObjectClass: groupOfNames +entryUUID: 67d6f796-eafa-1039-8836-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.237225Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: cn=group1,ou=Groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group1 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90001 +structuralObjectClass: groupOfNames +entryUUID: 67da9d2e-eafa-1039-8837-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.261127Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: cn=group2,ou=Groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group2 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90002 +structuralObjectClass: groupOfNames +entryUUID: 67de2822-eafa-1039-8838-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.284346Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: cn=group3,ou=Groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group3 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90003 +structuralObjectClass: groupOfNames +entryUUID: 67e1a6aa-eafa-1039-8839-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.307244Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + +dn: cn=group4,ou=Groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group4 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90004 +structuralObjectClass: groupOfNames +entryUUID: 67e5a50c-eafa-1039-883a-152569770969 +creatorsName: cn=Manager,dc=example,dc=com +createTimestamp: 20200224023755Z +entryCSN: 20200224023755.333416Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=com +modifyTimestamp: 20200224023755Z + diff --git a/dirsrvtests/tests/data/openldap_2_389/1/example_net.slapcat.ldif b/dirsrvtests/tests/data/openldap_2_389/1/example_net.slapcat.ldif new file mode 100644 index 0000000..e7a34a6 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/example_net.slapcat.ldif @@ -0,0 +1,241 @@ +dn: dc=example,dc=net +objectClass: dcObject +objectClass: organization +o: Example Company +dc: example +structuralObjectClass: organization +entryUUID: 5df457fe-eafb-1039-8857-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.149265Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: cn=Manager,dc=example,dc=net +objectClass: organizationalRole +cn: Manager +structuralObjectClass: organizationalRole +entryUUID: 5df55cf8-eafb-1039-8858-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.155945Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: ou=People,dc=example,dc=net +objectClass: organizationalUnit +ou: People +structuralObjectClass: organizationalUnit +entryUUID: 5df60342-eafb-1039-8859-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.160202Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: ou=Groups,dc=example,dc=net +objectClass: organizationalUnit +ou: Groups +structuralObjectClass: organizationalUnit +entryUUID: 5df6a57c-eafb-1039-885a-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.164355Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: cn=user0,ou=People,dc=example,dc=net +objectClass: account +objectClass: posixAccount +cn: user0 +uid: user0 +uidNumber: 80000 +gidNumber: 80000 +homeDirectory: /home/user0 +structuralObjectClass: account +entryUUID: 5df7521a-eafb-1039-885b-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.168774Z#000000#000#000000 +modifyTimestamp: 20200224024448Z +memberOf: cn=group0,ou=groups,dc=example,dc=net +memberOf: cn=group1,ou=groups,dc=example,dc=net +memberOf: cn=group2,ou=groups,dc=example,dc=net +memberOf: cn=group3,ou=groups,dc=example,dc=net +memberOf: cn=group4,ou=groups,dc=example,dc=net +modifiersName: cn=Manager,dc=example,dc=net + +dn: cn=user1,ou=People,dc=example,dc=net +objectClass: account +objectClass: posixAccount +cn: user1 +uid: user1 +uidNumber: 80001 +gidNumber: 80001 +homeDirectory: /home/user1 +structuralObjectClass: account +entryUUID: 5df80f66-eafb-1039-885c-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.173619Z#000000#000#000000 +modifyTimestamp: 20200224024448Z +memberOf: cn=group0,ou=groups,dc=example,dc=net +memberOf: cn=group1,ou=groups,dc=example,dc=net +memberOf: cn=group2,ou=groups,dc=example,dc=net +memberOf: cn=group3,ou=groups,dc=example,dc=net +memberOf: cn=group4,ou=groups,dc=example,dc=net +modifiersName: cn=Manager,dc=example,dc=net + +dn: cn=user2,ou=People,dc=example,dc=net +objectClass: account +objectClass: posixAccount +cn: user2 +uid: user2 +uidNumber: 80002 +gidNumber: 80002 +homeDirectory: /home/user2 +structuralObjectClass: account +entryUUID: 5df8e710-eafb-1039-885d-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.179140Z#000000#000#000000 +modifyTimestamp: 20200224024448Z +memberOf: cn=group0,ou=groups,dc=example,dc=net +memberOf: cn=group1,ou=groups,dc=example,dc=net +memberOf: cn=group2,ou=groups,dc=example,dc=net +memberOf: cn=group3,ou=groups,dc=example,dc=net +memberOf: cn=group4,ou=groups,dc=example,dc=net +modifiersName: cn=Manager,dc=example,dc=net + +dn: cn=user3,ou=People,dc=example,dc=net +objectClass: account +objectClass: posixAccount +cn: user3 +uid: user3 +uidNumber: 80003 +gidNumber: 80003 +homeDirectory: /home/user3 +structuralObjectClass: account +entryUUID: 5df9c356-eafb-1039-885e-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.184778Z#000000#000#000000 +modifyTimestamp: 20200224024448Z +memberOf: cn=group0,ou=groups,dc=example,dc=net +memberOf: cn=group1,ou=groups,dc=example,dc=net +memberOf: cn=group2,ou=groups,dc=example,dc=net +memberOf: cn=group3,ou=groups,dc=example,dc=net +memberOf: cn=group4,ou=groups,dc=example,dc=net +modifiersName: cn=Manager,dc=example,dc=net + +dn: cn=user4,ou=People,dc=example,dc=net +objectClass: account +objectClass: posixAccount +cn: user4 +uid: user4 +uidNumber: 80004 +gidNumber: 80004 +homeDirectory: /home/user4 +structuralObjectClass: account +entryUUID: 5dfaecc2-eafb-1039-885f-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.192376Z#000000#000#000000 +modifyTimestamp: 20200224024448Z +memberOf: cn=group0,ou=groups,dc=example,dc=net +memberOf: cn=group1,ou=groups,dc=example,dc=net +memberOf: cn=group2,ou=groups,dc=example,dc=net +memberOf: cn=group3,ou=groups,dc=example,dc=net +memberOf: cn=group4,ou=groups,dc=example,dc=net +modifiersName: cn=Manager,dc=example,dc=net + +dn: cn=group0,ou=Groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group0 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90000 +structuralObjectClass: groupOfNames +entryUUID: 5dfc02c4-eafb-1039-8860-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.199510Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: cn=group1,ou=Groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group1 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90001 +structuralObjectClass: groupOfNames +entryUUID: 5e01038c-eafb-1039-8861-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.232297Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: cn=group2,ou=Groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group2 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90002 +structuralObjectClass: groupOfNames +entryUUID: 5e06b610-eafb-1039-8862-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.269635Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: cn=group3,ou=Groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group3 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90003 +structuralObjectClass: groupOfNames +entryUUID: 5e0aec76-eafb-1039-8863-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.297242Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + +dn: cn=group4,ou=Groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group4 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90004 +structuralObjectClass: groupOfNames +entryUUID: 5e0f0900-eafb-1039-8864-152569770969 +creatorsName: cn=Manager,dc=example,dc=net +createTimestamp: 20200224024448Z +entryCSN: 20200224024448.324187Z#000000#000#000000 +modifiersName: cn=Manager,dc=example,dc=net +modifyTimestamp: 20200224024448Z + diff --git a/dirsrvtests/tests/data/openldap_2_389/1/setup/example_com.ldif b/dirsrvtests/tests/data/openldap_2_389/1/setup/example_com.ldif new file mode 100644 index 0000000..4e6330c --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/setup/example_com.ldif @@ -0,0 +1,117 @@ +dn: dc=example,dc=com +objectclass: dcObject +objectclass: organization +o: Example Company +dc: example + +dn: cn=Manager,dc=example,dc=com +objectclass: organizationalRole +cn: Manager + +dn: ou=People,dc=example,dc=com +objectClass: organizationalUnit +ou: People + +dn: ou=Groups,dc=example,dc=com +objectClass: organizationalUnit +ou: Groups + +dn: cn=user0,ou=people,dc=example,dc=com +objectClass: Account +objectClass: posixAccount +cn: user0 +uid: user0 +uidnumber: 80000 +gidnumber: 80000 +homeDirectory: /home/user0 + +dn: cn=user1,ou=people,dc=example,dc=com +objectClass: Account +objectClass: posixAccount +cn: user1 +uid: user1 +uidnumber: 80001 +gidnumber: 80001 +homeDirectory: /home/user1 + +dn: cn=user2,ou=people,dc=example,dc=com +objectClass: Account +objectClass: posixAccount +cn: user2 +uid: user2 +uidnumber: 80002 +gidnumber: 80002 +homeDirectory: /home/user2 + +dn: cn=user3,ou=people,dc=example,dc=com +objectClass: Account +objectClass: posixAccount +cn: user3 +uid: user3 +uidnumber: 80003 +gidnumber: 80003 +homeDirectory: /home/user3 + +dn: cn=user4,ou=people,dc=example,dc=com +objectClass: Account +objectClass: posixAccount +cn: user4 +uid: user4 +uidnumber: 80004 +gidnumber: 80004 +homeDirectory: /home/user4 + +dn: cn=group0,ou=groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group0 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90000 + +dn: cn=group1,ou=groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group1 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90001 + +dn: cn=group2,ou=groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group2 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90002 + +dn: cn=group3,ou=groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group3 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90003 + +dn: cn=group4,ou=groups,dc=example,dc=com +objectClass: groupOfNames +objectClass: posixGroup +cn: group4 +member: cn=user0,ou=people,dc=example,dc=com +member: cn=user1,ou=people,dc=example,dc=com +member: cn=user2,ou=people,dc=example,dc=com +member: cn=user3,ou=people,dc=example,dc=com +member: cn=user4,ou=people,dc=example,dc=com +gidNumber: 90004 diff --git a/dirsrvtests/tests/data/openldap_2_389/1/setup/example_net.ldif b/dirsrvtests/tests/data/openldap_2_389/1/setup/example_net.ldif new file mode 100644 index 0000000..a4b70cc --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/setup/example_net.ldif @@ -0,0 +1,117 @@ +dn: dc=example,dc=net +objectclass: dcObject +objectclass: organization +o: Example Company +dc: example + +dn: cn=Manager,dc=example,dc=net +objectclass: organizationalRole +cn: Manager + +dn: ou=People,dc=example,dc=net +objectClass: organizationalUnit +ou: People + +dn: ou=Groups,dc=example,dc=net +objectClass: organizationalUnit +ou: Groups + +dn: cn=user0,ou=people,dc=example,dc=net +objectClass: Account +objectClass: posixAccount +cn: user0 +uid: user0 +uidnumber: 80000 +gidnumber: 80000 +homeDirectory: /home/user0 + +dn: cn=user1,ou=people,dc=example,dc=net +objectClass: Account +objectClass: posixAccount +cn: user1 +uid: user1 +uidnumber: 80001 +gidnumber: 80001 +homeDirectory: /home/user1 + +dn: cn=user2,ou=people,dc=example,dc=net +objectClass: Account +objectClass: posixAccount +cn: user2 +uid: user2 +uidnumber: 80002 +gidnumber: 80002 +homeDirectory: /home/user2 + +dn: cn=user3,ou=people,dc=example,dc=net +objectClass: Account +objectClass: posixAccount +cn: user3 +uid: user3 +uidnumber: 80003 +gidnumber: 80003 +homeDirectory: /home/user3 + +dn: cn=user4,ou=people,dc=example,dc=net +objectClass: Account +objectClass: posixAccount +cn: user4 +uid: user4 +uidnumber: 80004 +gidnumber: 80004 +homeDirectory: /home/user4 + +dn: cn=group0,ou=groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group0 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90000 + +dn: cn=group1,ou=groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group1 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90001 + +dn: cn=group2,ou=groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group2 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90002 + +dn: cn=group3,ou=groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group3 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90003 + +dn: cn=group4,ou=groups,dc=example,dc=net +objectClass: groupOfNames +objectClass: posixGroup +cn: group4 +member: cn=user0,ou=people,dc=example,dc=net +member: cn=user1,ou=people,dc=example,dc=net +member: cn=user2,ou=people,dc=example,dc=net +member: cn=user3,ou=people,dc=example,dc=net +member: cn=user4,ou=people,dc=example,dc=net +gidNumber: 90004 diff --git a/dirsrvtests/tests/data/openldap_2_389/1/setup/slapd.ldif b/dirsrvtests/tests/data/openldap_2_389/1/setup/slapd.ldif new file mode 100644 index 0000000..45a7b08 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/setup/slapd.ldif @@ -0,0 +1,146 @@ +# +# See slapd-config(5) for details on configuration options. +# This file should NOT be world readable. +# +dn: cn=config +objectClass: olcGlobal +cn: config +# +# +# Define global ACLs to disable default read access. +# +olcArgsFile: /var/run/slapd.args +olcPidFile: /var/run/slapd.pid +# +# Do not enable referrals until AFTER you have a working directory +# service AND an understanding of referrals. +#olcReferral: ldap://root.openldap.org +# +# Sample security restrictions +# Require integrity protection (prevent hijacking) +# Require 112-bit (3DES or better) encryption for updates +# Require 64-bit encryption for simple bind +#olcSecurity: ssf=1 update_ssf=112 simple_bind=64 + + +# +# Load dynamic backend modules: +# +dn: cn=module,cn=config +objectClass: olcModuleList +cn: module +#olcModulepath: %MODULEDIR% +olcModuleload: back_mdb.la +olcModuleload: memberof.la +olcModuleload: refint.la +olcModuleload: unique.la +#olcModuleload: back_ldap.la +#olcModuleload: back_passwd.la +#olcModuleload: back_shell.la + + +dn: cn=schema,cn=config +objectClass: olcSchemaConfig +cn: schema + +include: file:///etc/openldap/schema/core.ldif +include: file:///etc/openldap/schema/cosine.ldif +include: file:///etc/openldap/schema/inetorgperson.ldif +include: file:///etc/openldap/schema/rfc2307bis.ldif +include: file:///etc/openldap/schema/yast.ldif + + +# Frontend settings +# +dn: olcDatabase=frontend,cn=config +objectClass: olcDatabaseConfig +objectClass: olcFrontendConfig +olcDatabase: frontend +# +# Sample global access control policy: +# Root DSE: allow anyone to read it +# Subschema (sub)entry DSE: allow anyone to read it +# Other DSEs: +# Allow self write access +# Allow authenticated users read access +# Allow anonymous users to authenticate +# +olcAccess: to dn.base="" by * read +olcAccess: to dn.base="cn=Subschema" by * read +#olcAccess: to * +# by self write +# by users read +# by anonymous auth +# +# if no access controls are present, the default policy +# allows anyone and everyone to read anything but restricts +# updates to rootdn. (e.g., "access to * by * read") +# +# rootdn can always read and write EVERYTHING! +# + + +####################################################################### +# LMDB database definitions +####################################################################### +# +dn: olcDatabase={1}mdb,cn=config +objectClass: olcDatabaseConfig +objectClass: olcMdbConfig +olcDatabase: mdb +olcSuffix: dc=example,dc=com +olcRootDN: cn=Manager,dc=example,dc=com +# Cleartext passwords, especially for the rootdn, should +# be avoided. See slappasswd(8) and slapd-config(5) for details. +# Use of strong authentication encouraged. +olcRootPW: secret +# The database directory MUST exist prior to running slapd AND +# should only be accessible by the slapd and slap tools. +# Mode 700 recommended. +olcDbDirectory: /var/lib/ldap/example_com +# Indices to maintain +olcDbIndex: objectClass eq + +dn: olcOverlay=memberof,olcDatabase={1}mdb,cn=config +objectClass: olcOverlayConfig +objectClass: olcMemberOf +olcOverlay: memberof +olcMemberOfRefint: TRUE + +dn: olcOverlay=refint,olcDatabase={1}mdb,cn=config +objectClass: olcOverlayConfig +objectClass: olcRefintConfig +olcOverlay: refint +olcRefintAttribute: member +olcRefintAttribute: memberOf + +dn: olcOverlay=unique,olcDatabase={1}mdb,cn=config +objectClass: olcOverlayConfig +objectClass: olcUniqueConfig +olcOverlay: unique +olcUniqueURI: ldap:///?mail?sub +olcUniqueURI: ldap:///?uid?sub + +dn: olcDatabase={2}mdb,cn=config +objectClass: olcDatabaseConfig +objectClass: olcMdbConfig +olcDatabase: mdb +olcSuffix: dc=example,dc=net +olcRootDN: cn=Manager,dc=example,dc=net +olcRootPW: secret +olcDbDirectory: /var/lib/ldap/example_net +olcDbIndex: objectClass eq + +dn: olcOverlay=memberof,olcDatabase={2}mdb,cn=config +objectClass: olcOverlayConfig +objectClass: olcMemberOf +olcOverlay: memberof +olcMemberOfRefint: TRUE + +dn: olcOverlay=unique,olcDatabase={2}mdb,cn=config +objectClass: olcOverlayConfig +objectClass: olcUniqueConfig +olcOverlay: unique +olcUniqueURI: ldap:///?mail?sub +olcUniqueURI: ldap:///?uid?sub + diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config.ldif new file mode 100644 index 0000000..1ff7282 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config.ldif @@ -0,0 +1,14 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 6905879f +dn: cn=config +objectClass: olcGlobal +cn: config +olcArgsFile: /var/run/slapd.args +olcPidFile: /var/run/slapd.pid +structuralObjectClass: olcGlobal +entryUUID: 4019c5a8-eaf5-1039-865e-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.082506Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=module{0}.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=module{0}.ldif new file mode 100644 index 0000000..0e635ff --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=module{0}.ldif @@ -0,0 +1,16 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 9b38b059 +dn: cn=module{0} +objectClass: olcModuleList +cn: module{0} +olcModuleLoad: {0}back_mdb.la +olcModuleLoad: {1}memberof.la +olcModuleLoad: {2}refint.la +olcModuleLoad: {3}unique.la +structuralObjectClass: olcModuleList +entryUUID: 4019cc88-eaf5-1039-865f-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.082706Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema.ldif new file mode 100644 index 0000000..7840625 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema.ldif @@ -0,0 +1,12 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 095fcaec +dn: cn=schema +objectClass: olcSchemaConfig +cn: schema +structuralObjectClass: olcSchemaConfig +entryUUID: 4019e6aa-eaf5-1039-8660-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.083375Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={0}core.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={0}core.ldif new file mode 100644 index 0000000..abdfaa7 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={0}core.ldif @@ -0,0 +1,249 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 31e6d4be +dn: cn={0}core +objectClass: olcSchemaConfig +cn: {0}core +olcAttributeTypes: {0}( 2.5.4.2 NAME 'knowledgeInformation' DESC 'RFC2256: k + nowledge information' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115. + 121.1.15{32768} ) +olcAttributeTypes: {1}( 2.5.4.4 NAME ( 'sn' 'surname' ) DESC 'RFC2256: last + (family) name(s) for which the entity is known by' SUP name ) +olcAttributeTypes: {2}( 2.5.4.5 NAME 'serialNumber' DESC 'RFC2256: serial nu + mber of the entity' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMat + ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{64} ) +olcAttributeTypes: {3}( 2.5.4.6 NAME ( 'c' 'countryName' ) DESC 'RFC4519: tw + o-letter ISO-3166 country code' SUP name SYNTAX 1.3.6.1.4.1.1466.115.121.1. + 11 SINGLE-VALUE ) +olcAttributeTypes: {4}( 2.5.4.7 NAME ( 'l' 'localityName' ) DESC 'RFC2256: l + ocality which this object resides in' SUP name ) +olcAttributeTypes: {5}( 2.5.4.8 NAME ( 'st' 'stateOrProvinceName' ) DESC 'RF + C2256: state or province which this object resides in' SUP name ) +olcAttributeTypes: {6}( 2.5.4.9 NAME ( 'street' 'streetAddress' ) DESC 'RFC2 + 256: street address of this object' EQUALITY caseIgnoreMatch SUBSTR caseIgn + oreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) +olcAttributeTypes: {7}( 2.5.4.10 NAME ( 'o' 'organizationName' ) DESC 'RFC22 + 56: organization this object belongs to' SUP name ) +olcAttributeTypes: {8}( 2.5.4.11 NAME ( 'ou' 'organizationalUnitName' ) DESC + 'RFC2256: organizational unit this object belongs to' SUP name ) +olcAttributeTypes: {9}( 2.5.4.12 NAME 'title' DESC 'RFC2256: title associate + d with the entity' SUP name ) +olcAttributeTypes: {10}( 2.5.4.14 NAME 'searchGuide' DESC 'RFC2256: search g + uide, deprecated by enhancedSearchGuide' SYNTAX 1.3.6.1.4.1.1466.115.121.1. + 25 ) +olcAttributeTypes: {11}( 2.5.4.15 NAME 'businessCategory' DESC 'RFC2256: bus + iness category' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch S + YNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) +olcAttributeTypes: {12}( 2.5.4.16 NAME 'postalAddress' DESC 'RFC2256: postal + address' EQUALITY caseIgnoreListMatch SUBSTR caseIgnoreListSubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 ) +olcAttributeTypes: {13}( 2.5.4.17 NAME 'postalCode' DESC 'RFC2256: postal co + de' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6. + 1.4.1.1466.115.121.1.15{40} ) +olcAttributeTypes: {14}( 2.5.4.18 NAME 'postOfficeBox' DESC 'RFC2256: Post O + ffice Box' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX + 1.3.6.1.4.1.1466.115.121.1.15{40} ) +olcAttributeTypes: {15}( 2.5.4.19 NAME 'physicalDeliveryOfficeName' DESC 'RF + C2256: Physical Delivery Office Name' EQUALITY caseIgnoreMatch SUBSTR caseI + gnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) +olcAttributeTypes: {16}( 2.5.4.20 NAME 'telephoneNumber' DESC 'RFC2256: Tele + phone Number' EQUALITY telephoneNumberMatch SUBSTR telephoneNumberSubstring + sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50{32} ) +olcAttributeTypes: {17}( 2.5.4.21 NAME 'telexNumber' DESC 'RFC2256: Telex Nu + mber' SYNTAX 1.3.6.1.4.1.1466.115.121.1.52 ) +olcAttributeTypes: {18}( 2.5.4.22 NAME 'teletexTerminalIdentifier' DESC 'RFC + 2256: Teletex Terminal Identifier' SYNTAX 1.3.6.1.4.1.1466.115.121.1.51 ) +olcAttributeTypes: {19}( 2.5.4.23 NAME ( 'facsimileTelephoneNumber' 'fax' ) + DESC 'RFC2256: Facsimile (Fax) Telephone Number' SYNTAX 1.3.6.1.4.1.1466.11 + 5.121.1.22 ) +olcAttributeTypes: {20}( 2.5.4.24 NAME 'x121Address' DESC 'RFC2256: X.121 Ad + dress' EQUALITY numericStringMatch SUBSTR numericStringSubstringsMatch SYNT + AX 1.3.6.1.4.1.1466.115.121.1.36{15} ) +olcAttributeTypes: {21}( 2.5.4.25 NAME 'internationaliSDNNumber' DESC 'RFC22 + 56: international ISDN number' EQUALITY numericStringMatch SUBSTR numericSt + ringSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{16} ) +olcAttributeTypes: {22}( 2.5.4.26 NAME 'registeredAddress' DESC 'RFC2256: re + gistered postal address' SUP postalAddress SYNTAX 1.3.6.1.4.1.1466.115.121. + 1.41 ) +olcAttributeTypes: {23}( 2.5.4.27 NAME 'destinationIndicator' DESC 'RFC2256: + destination indicator' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstring + sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{128} ) +olcAttributeTypes: {24}( 2.5.4.28 NAME 'preferredDeliveryMethod' DESC 'RFC22 + 56: preferred delivery method' SYNTAX 1.3.6.1.4.1.1466.115.121.1.14 SINGLE- + VALUE ) +olcAttributeTypes: {25}( 2.5.4.29 NAME 'presentationAddress' DESC 'RFC2256: + presentation address' EQUALITY presentationAddressMatch SYNTAX 1.3.6.1.4.1. + 1466.115.121.1.43 SINGLE-VALUE ) +olcAttributeTypes: {26}( 2.5.4.30 NAME 'supportedApplicationContext' DESC 'R + FC2256: supported application context' EQUALITY objectIdentifierMatch SYNTA + X 1.3.6.1.4.1.1466.115.121.1.38 ) +olcAttributeTypes: {27}( 2.5.4.31 NAME 'member' DESC 'RFC2256: member of a g + roup' SUP distinguishedName ) +olcAttributeTypes: {28}( 2.5.4.32 NAME 'owner' DESC 'RFC2256: owner (of the + object)' SUP distinguishedName ) +olcAttributeTypes: {29}( 2.5.4.33 NAME 'roleOccupant' DESC 'RFC2256: occupan + t of role' SUP distinguishedName ) +olcAttributeTypes: {30}( 2.5.4.36 NAME 'userCertificate' DESC 'RFC2256: X.50 + 9 user certificate, use ;binary' EQUALITY certificateExactMatch SYNTAX 1.3. + 6.1.4.1.1466.115.121.1.8 ) +olcAttributeTypes: {31}( 2.5.4.37 NAME 'cACertificate' DESC 'RFC2256: X.509 + CA certificate, use ;binary' EQUALITY certificateExactMatch SYNTAX 1.3.6.1. + 4.1.1466.115.121.1.8 ) +olcAttributeTypes: {32}( 2.5.4.38 NAME 'authorityRevocationList' DESC 'RFC22 + 56: X.509 authority revocation list, use ;binary' SYNTAX 1.3.6.1.4.1.1466.1 + 15.121.1.9 ) +olcAttributeTypes: {33}( 2.5.4.39 NAME 'certificateRevocationList' DESC 'RFC + 2256: X.509 certificate revocation list, use ;binary' SYNTAX 1.3.6.1.4.1.14 + 66.115.121.1.9 ) +olcAttributeTypes: {34}( 2.5.4.40 NAME 'crossCertificatePair' DESC 'RFC2256: + X.509 cross certificate pair, use ;binary' SYNTAX 1.3.6.1.4.1.1466.115.121 + .1.10 ) +olcAttributeTypes: {35}( 2.5.4.42 NAME ( 'givenName' 'gn' ) DESC 'RFC2256: f + irst name(s) for which the entity is known by' SUP name ) +olcAttributeTypes: {36}( 2.5.4.43 NAME 'initials' DESC 'RFC2256: initials of + some or all of names, but not the surname(s).' SUP name ) +olcAttributeTypes: {37}( 2.5.4.44 NAME 'generationQualifier' DESC 'RFC2256: + name qualifier indicating a generation' SUP name ) +olcAttributeTypes: {38}( 2.5.4.45 NAME 'x500UniqueIdentifier' DESC 'RFC2256: + X.500 unique identifier' EQUALITY bitStringMatch SYNTAX 1.3.6.1.4.1.1466.1 + 15.121.1.6 ) +olcAttributeTypes: {39}( 2.5.4.46 NAME 'dnQualifier' DESC 'RFC2256: DN quali + fier' EQUALITY caseIgnoreMatch ORDERING caseIgnoreOrderingMatch SUBSTR case + IgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 ) +olcAttributeTypes: {40}( 2.5.4.47 NAME 'enhancedSearchGuide' DESC 'RFC2256: + enhanced search guide' SYNTAX 1.3.6.1.4.1.1466.115.121.1.21 ) +olcAttributeTypes: {41}( 2.5.4.48 NAME 'protocolInformation' DESC 'RFC2256: + protocol information' EQUALITY protocolInformationMatch SYNTAX 1.3.6.1.4.1. + 1466.115.121.1.42 ) +olcAttributeTypes: {42}( 2.5.4.50 NAME 'uniqueMember' DESC 'RFC2256: unique + member of a group' EQUALITY uniqueMemberMatch SYNTAX 1.3.6.1.4.1.1466.115.1 + 21.1.34 ) +olcAttributeTypes: {43}( 2.5.4.51 NAME 'houseIdentifier' DESC 'RFC2256: hous + e identifier' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYN + TAX 1.3.6.1.4.1.1466.115.121.1.15{32768} ) +olcAttributeTypes: {44}( 2.5.4.52 NAME 'supportedAlgorithms' DESC 'RFC2256: + supported algorithms' SYNTAX 1.3.6.1.4.1.1466.115.121.1.49 ) +olcAttributeTypes: {45}( 2.5.4.53 NAME 'deltaRevocationList' DESC 'RFC2256: + delta revocation list; use ;binary' SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 ) +olcAttributeTypes: {46}( 2.5.4.54 NAME 'dmdName' DESC 'RFC2256: name of DMD' + SUP name ) +olcAttributeTypes: {47}( 2.5.4.65 NAME 'pseudonym' DESC 'X.520(4th): pseudon + ym for the object' SUP name ) +olcAttributeTypes: {48}( 0.9.2342.19200300.100.1.3 NAME ( 'mail' 'rfc822Mail + box' ) DESC 'RFC1274: RFC822 Mailbox' EQUALITY caseIgnoreIA5Match SUBST + R caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} + ) +olcAttributeTypes: {49}( 0.9.2342.19200300.100.1.25 NAME ( 'dc' 'domainCompo + nent' ) DESC 'RFC1274/2247: domain component' EQUALITY caseIgnoreIA5Match S + UBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SIN + GLE-VALUE ) +olcAttributeTypes: {50}( 0.9.2342.19200300.100.1.37 NAME 'associatedDomain' + DESC 'RFC1274: domain associated with object' EQUALITY caseIgnoreIA5Match S + UBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {51}( 1.2.840.113549.1.9.1 NAME ( 'email' 'emailAddress' + 'pkcs9email' ) DESC 'RFC3280: legacy attribute for email addresses in DNs' + EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3. + 6.1.4.1.1466.115.121.1.26{128} ) +olcObjectClasses: {0}( 2.5.6.2 NAME 'country' DESC 'RFC2256: a country' SUP + top STRUCTURAL MUST c MAY ( searchGuide $ description ) ) +olcObjectClasses: {1}( 2.5.6.3 NAME 'locality' DESC 'RFC2256: a locality' SU + P top STRUCTURAL MAY ( street $ seeAlso $ searchGuide $ st $ l $ descriptio + n ) ) +olcObjectClasses: {2}( 2.5.6.4 NAME 'organization' DESC 'RFC2256: an organiz + ation' SUP top STRUCTURAL MUST o MAY ( userPassword $ searchGuide $ seeAlso + $ businessCategory $ x121Address $ registeredAddress $ destinationIndicato + r $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ tel + ephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street + $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName + $ st $ l $ description ) ) +olcObjectClasses: {3}( 2.5.6.5 NAME 'organizationalUnit' DESC 'RFC2256: an o + rganizational unit' SUP top STRUCTURAL MUST ou MAY ( userPassword $ searchG + uide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ desti + nationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalId + entifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNu + mber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDelive + ryOfficeName $ st $ l $ description ) ) +olcObjectClasses: {4}( 2.5.6.6 NAME 'person' DESC 'RFC2256: a person' SUP to + p STRUCTURAL MUST ( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAls + o $ description ) ) +olcObjectClasses: {5}( 2.5.6.7 NAME 'organizationalPerson' DESC 'RFC2256: an + organizational person' SUP person STRUCTURAL MAY ( title $ x121Address $ r + egisteredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNu + mber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumbe + r $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ posta + lAddress $ physicalDeliveryOfficeName $ ou $ st $ l ) ) +olcObjectClasses: {6}( 2.5.6.8 NAME 'organizationalRole' DESC 'RFC2256: an o + rganizational role' SUP top STRUCTURAL MUST cn MAY ( x121Address $ register + edAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ + teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ fac + simileTelephoneNumber $ seeAlso $ roleOccupant $ preferredDeliveryMethod $ + street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOffic + eName $ ou $ st $ l $ description ) ) +olcObjectClasses: {7}( 2.5.6.9 NAME 'groupOfNames' DESC 'RFC2256: a group of + names (DNs)' SUP top STRUCTURAL MUST ( member $ cn ) MAY ( businessCategor + y $ seeAlso $ owner $ ou $ o $ description ) ) +olcObjectClasses: {8}( 2.5.6.10 NAME 'residentialPerson' DESC 'RFC2256: an r + esidential person' SUP person STRUCTURAL MUST l MAY ( businessCategory $ x1 + 21Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMet + hod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internati + onaliSDNNumber $ facsimileTelephoneNumber $ preferredDeliveryMethod $ stree + t $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName + $ st $ l ) ) +olcObjectClasses: {9}( 2.5.6.11 NAME 'applicationProcess' DESC 'RFC2256: an + application process' SUP top STRUCTURAL MUST cn MAY ( seeAlso $ ou $ l $ de + scription ) ) +olcObjectClasses: {10}( 2.5.6.12 NAME 'applicationEntity' DESC 'RFC2256: an + application entity' SUP top STRUCTURAL MUST ( presentationAddress $ cn ) MA + Y ( supportedApplicationContext $ seeAlso $ ou $ o $ l $ description ) ) +olcObjectClasses: {11}( 2.5.6.13 NAME 'dSA' DESC 'RFC2256: a directory syste + m agent (a server)' SUP applicationEntity STRUCTURAL MAY knowledgeInformati + on ) +olcObjectClasses: {12}( 2.5.6.14 NAME 'device' DESC 'RFC2256: a device' SUP + top STRUCTURAL MUST cn MAY ( serialNumber $ seeAlso $ owner $ ou $ o $ l $ + description ) ) +olcObjectClasses: {13}( 2.5.6.15 NAME 'strongAuthenticationUser' DESC 'RFC22 + 56: a strong authentication user' SUP top AUXILIARY MUST userCertificate ) +olcObjectClasses: {14}( 2.5.6.16 NAME 'certificationAuthority' DESC 'RFC2256 + : a certificate authority' SUP top AUXILIARY MUST ( authorityRevocationList + $ certificateRevocationList $ cACertificate ) MAY crossCertificatePair ) +olcObjectClasses: {15}( 2.5.6.17 NAME 'groupOfUniqueNames' DESC 'RFC2256: a + group of unique names (DN and Unique Identifier)' SUP top STRUCTURAL MUST ( + uniqueMember $ cn ) MAY ( businessCategory $ seeAlso $ owner $ ou $ o $ de + scription ) ) +olcObjectClasses: {16}( 2.5.6.18 NAME 'userSecurityInformation' DESC 'RFC225 + 6: a user security information' SUP top AUXILIARY MAY ( supportedAlgorithms + ) ) +olcObjectClasses: {17}( 2.5.6.16.2 NAME 'certificationAuthority-V2' SUP cert + ificationAuthority AUXILIARY MAY ( deltaRevocationList ) ) +olcObjectClasses: {18}( 2.5.6.19 NAME 'cRLDistributionPoint' SUP top STRUCTU + RAL MUST ( cn ) MAY ( certificateRevocationList $ authorityRevocationList $ + deltaRevocationList ) ) +olcObjectClasses: {19}( 2.5.6.20 NAME 'dmd' SUP top STRUCTURAL MUST ( dmdNam + e ) MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Add + ress $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ + telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationali + SDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode + $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description ) ) +olcObjectClasses: {20}( 2.5.6.21 NAME 'pkiUser' DESC 'RFC2587: a PKI user' S + UP top AUXILIARY MAY userCertificate ) +olcObjectClasses: {21}( 2.5.6.22 NAME 'pkiCA' DESC 'RFC2587: PKI certificate + authority' SUP top AUXILIARY MAY ( authorityRevocationList $ certificateRe + vocationList $ cACertificate $ crossCertificatePair ) ) +olcObjectClasses: {22}( 2.5.6.23 NAME 'deltaCRL' DESC 'RFC2587: PKI user' SU + P top AUXILIARY MAY deltaRevocationList ) +olcObjectClasses: {23}( 1.3.6.1.4.1.250.3.15 NAME 'labeledURIObject' DESC 'R + FC2079: object that contains the URI attribute type' MAY ( labeledURI ) SUP + top AUXILIARY ) +olcObjectClasses: {24}( 0.9.2342.19200300.100.4.19 NAME 'simpleSecurityObjec + t' DESC 'RFC1274: simple security object' SUP top AUXILIARY MUST userPasswo + rd ) +olcObjectClasses: {25}( 1.3.6.1.4.1.1466.344 NAME 'dcObject' DESC 'RFC2247: + domain component object' SUP top AUXILIARY MUST dc ) +olcObjectClasses: {26}( 1.3.6.1.1.3.1 NAME 'uidObject' DESC 'RFC2377: uid ob + ject' SUP top AUXILIARY MUST uid ) +structuralObjectClass: olcSchemaConfig +entryUUID: 4019f348-eaf5-1039-8661-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.083690Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif new file mode 100644 index 0000000..bc17164 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif @@ -0,0 +1,178 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 4e3862ab +dn: cn={1}cosine +objectClass: olcSchemaConfig +cn: {1}cosine +olcAttributeTypes: {0}( 0.9.2342.19200300.100.1.2 NAME 'textEncodedORAddress + ' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1. + 4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {1}( 0.9.2342.19200300.100.1.4 NAME 'info' DESC 'RFC1274: + general information' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsM + atch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{2048} ) +olcAttributeTypes: {2}( 0.9.2342.19200300.100.1.5 NAME ( 'drink' 'favouriteD + rink' ) DESC 'RFC1274: favorite drink' EQUALITY caseIgnoreMatch SUBSTR case + IgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {3}( 0.9.2342.19200300.100.1.6 NAME 'roomNumber' DESC 'RF + C1274: room number' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMat + ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {4}( 0.9.2342.19200300.100.1.7 NAME 'photo' DESC 'RFC1274 + : photo (G3 fax)' SYNTAX 1.3.6.1.4.1.1466.115.121.1.23{25000} ) +olcAttributeTypes: {5}( 0.9.2342.19200300.100.1.8 NAME 'userClass' DESC 'RFC + 1274: category of user' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstring + sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {6}( 0.9.2342.19200300.100.1.9 NAME 'host' DESC 'RFC1274: + host computer' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch S + YNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {7}( 0.9.2342.19200300.100.1.10 NAME 'manager' DESC 'RFC1 + 274: DN of manager' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466 + .115.121.1.12 ) +olcAttributeTypes: {8}( 0.9.2342.19200300.100.1.11 NAME 'documentIdentifier' + DESC 'RFC1274: unique identifier of document' EQUALITY caseIgnoreMatch SUB + STR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {9}( 0.9.2342.19200300.100.1.12 NAME 'documentTitle' DESC + 'RFC1274: title of document' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSub + stringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {10}( 0.9.2342.19200300.100.1.13 NAME 'documentVersion' D + ESC 'RFC1274: version of document' EQUALITY caseIgnoreMatch SUBSTR caseIgno + reSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {11}( 0.9.2342.19200300.100.1.14 NAME 'documentAuthor' DE + SC 'RFC1274: DN of author of document' EQUALITY distinguishedNameMatch SYNT + AX 1.3.6.1.4.1.1466.115.121.1.12 ) +olcAttributeTypes: {12}( 0.9.2342.19200300.100.1.15 NAME 'documentLocation' + DESC 'RFC1274: location of document original' EQUALITY caseIgnoreMatch SUBS + TR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {13}( 0.9.2342.19200300.100.1.20 NAME ( 'homePhone' 'home + TelephoneNumber' ) DESC 'RFC1274: home telephone number' EQUALITY telephone + NumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.1 + 15.121.1.50 ) +olcAttributeTypes: {14}( 0.9.2342.19200300.100.1.21 NAME 'secretary' DESC 'R + FC1274: DN of secretary' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1 + .1466.115.121.1.12 ) +olcAttributeTypes: {15}( 0.9.2342.19200300.100.1.22 NAME 'otherMailbox' SYNT + AX 1.3.6.1.4.1.1466.115.121.1.39 ) +olcAttributeTypes: {16}( 0.9.2342.19200300.100.1.26 NAME 'aRecord' EQUALITY + caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {17}( 0.9.2342.19200300.100.1.27 NAME 'mDRecord' EQUALITY + caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {18}( 0.9.2342.19200300.100.1.28 NAME 'mXRecord' EQUALITY + caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {19}( 0.9.2342.19200300.100.1.29 NAME 'nSRecord' EQUALITY + caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {20}( 0.9.2342.19200300.100.1.30 NAME 'sOARecord' EQUALIT + Y caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {21}( 0.9.2342.19200300.100.1.31 NAME 'cNAMERecord' EQUAL + ITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {22}( 0.9.2342.19200300.100.1.38 NAME 'associatedName' DE + SC 'RFC1274: DN of entry associated with domain' EQUALITY distinguishedName + Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) +olcAttributeTypes: {23}( 0.9.2342.19200300.100.1.39 NAME 'homePostalAddress' + DESC 'RFC1274: home postal address' EQUALITY caseIgnoreListMatch SUBSTR ca + seIgnoreListSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 ) +olcAttributeTypes: {24}( 0.9.2342.19200300.100.1.40 NAME 'personalTitle' DES + C 'RFC1274: personal title' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubst + ringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {25}( 0.9.2342.19200300.100.1.41 NAME ( 'mobile' 'mobileT + elephoneNumber' ) DESC 'RFC1274: mobile telephone number' EQUALITY telephon + eNumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466. + 115.121.1.50 ) +olcAttributeTypes: {26}( 0.9.2342.19200300.100.1.42 NAME ( 'pager' 'pagerTel + ephoneNumber' ) DESC 'RFC1274: pager telephone number' EQUALITY telephoneNu + mberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115 + .121.1.50 ) +olcAttributeTypes: {27}( 0.9.2342.19200300.100.1.43 NAME ( 'co' 'friendlyCou + ntryName' ) DESC 'RFC1274: friendly country name' EQUALITY caseIgnoreMatch + SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +olcAttributeTypes: {28}( 0.9.2342.19200300.100.1.44 NAME 'uniqueIdentifier' + DESC 'RFC1274: unique identifer' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4. + 1.1466.115.121.1.15{256} ) +olcAttributeTypes: {29}( 0.9.2342.19200300.100.1.45 NAME 'organizationalStat + us' DESC 'RFC1274: organizational status' EQUALITY caseIgnoreMatch SUBSTR c + aseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {30}( 0.9.2342.19200300.100.1.46 NAME 'janetMailbox' DESC + 'RFC1274: Janet mailbox' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5S + ubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) +olcAttributeTypes: {31}( 0.9.2342.19200300.100.1.47 NAME 'mailPreferenceOpti + on' DESC 'RFC1274: mail preference option' SYNTAX 1.3.6.1.4.1.1466.115.121. + 1.27 ) +olcAttributeTypes: {32}( 0.9.2342.19200300.100.1.48 NAME 'buildingName' DESC + 'RFC1274: name of building' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubs + tringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) +olcAttributeTypes: {33}( 0.9.2342.19200300.100.1.49 NAME 'dSAQuality' DESC ' + RFC1274: DSA Quality' SYNTAX 1.3.6.1.4.1.1466.115.121.1.19 SINGLE-VALUE ) +olcAttributeTypes: {34}( 0.9.2342.19200300.100.1.50 NAME 'singleLevelQuality + ' DESC 'RFC1274: Single Level Quality' SYNTAX 1.3.6.1.4.1.1466.115.121.1.13 + SINGLE-VALUE ) +olcAttributeTypes: {35}( 0.9.2342.19200300.100.1.51 NAME 'subtreeMinimumQual + ity' DESC 'RFC1274: Subtree Mininum Quality' SYNTAX 1.3.6.1.4.1.1466.115.12 + 1.1.13 SINGLE-VALUE ) +olcAttributeTypes: {36}( 0.9.2342.19200300.100.1.52 NAME 'subtreeMaximumQual + ity' DESC 'RFC1274: Subtree Maximun Quality' SYNTAX 1.3.6.1.4.1.1466.115.12 + 1.1.13 SINGLE-VALUE ) +olcAttributeTypes: {37}( 0.9.2342.19200300.100.1.53 NAME 'personalSignature' + DESC 'RFC1274: Personal Signature (G3 fax)' SYNTAX 1.3.6.1.4.1.1466.115.12 + 1.1.23 ) +olcAttributeTypes: {38}( 0.9.2342.19200300.100.1.54 NAME 'dITRedirect' DESC + 'RFC1274: DIT Redirect' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1. + 1466.115.121.1.12 ) +olcAttributeTypes: {39}( 0.9.2342.19200300.100.1.55 NAME 'audio' DESC 'RFC12 + 74: audio (u-law)' SYNTAX 1.3.6.1.4.1.1466.115.121.1.4{25000} ) +olcAttributeTypes: {40}( 0.9.2342.19200300.100.1.56 NAME 'documentPublisher' + DESC 'RFC1274: publisher of document' EQUALITY caseIgnoreMatch SUBSTR case + IgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +olcObjectClasses: {0}( 0.9.2342.19200300.100.4.4 NAME ( 'pilotPerson' 'newPi + lotPerson' ) SUP person STRUCTURAL MAY ( userid $ textEncodedORAddress $ rf + c822Mailbox $ favouriteDrink $ roomNumber $ userClass $ homeTelephoneNumber + $ homePostalAddress $ secretary $ personalTitle $ preferredDeliveryMethod + $ businessCategory $ janetMailbox $ otherMailbox $ mobileTelephoneNumber $ + pagerTelephoneNumber $ organizationalStatus $ mailPreferenceOption $ person + alSignature ) ) +olcObjectClasses: {1}( 0.9.2342.19200300.100.4.5 NAME 'account' SUP top STRU + CTURAL MUST userid MAY ( description $ seeAlso $ localityName $ organizatio + nName $ organizationalUnitName $ host ) ) +olcObjectClasses: {2}( 0.9.2342.19200300.100.4.6 NAME 'document' SUP top STR + UCTURAL MUST documentIdentifier MAY ( commonName $ description $ seeAlso $ + localityName $ organizationName $ organizationalUnitName $ documentTitle $ + documentVersion $ documentAuthor $ documentLocation $ documentPublisher ) ) +olcObjectClasses: {3}( 0.9.2342.19200300.100.4.7 NAME 'room' SUP top STRUCTU + RAL MUST commonName MAY ( roomNumber $ description $ seeAlso $ telephoneNum + ber ) ) +olcObjectClasses: {4}( 0.9.2342.19200300.100.4.9 NAME 'documentSeries' SUP t + op STRUCTURAL MUST commonName MAY ( description $ seeAlso $ telephonenumber + $ localityName $ organizationName $ organizationalUnitName ) ) +olcObjectClasses: {5}( 0.9.2342.19200300.100.4.13 NAME 'domain' SUP top STRU + CTURAL MUST domainComponent MAY ( associatedName $ organizationName $ descr + iption $ businessCategory $ seeAlso $ searchGuide $ userPassword $ locality + Name $ stateOrProvinceName $ streetAddress $ physicalDeliveryOfficeName $ p + ostalAddress $ postalCode $ postOfficeBox $ streetAddress $ facsimileTeleph + oneNumber $ internationalISDNNumber $ telephoneNumber $ teletexTerminalIden + tifier $ telexNumber $ preferredDeliveryMethod $ destinationIndicator $ reg + isteredAddress $ x121Address ) ) +olcObjectClasses: {6}( 0.9.2342.19200300.100.4.14 NAME 'RFC822localPart' SUP + domain STRUCTURAL MAY ( commonName $ surname $ description $ seeAlso $ tel + ephoneNumber $ physicalDeliveryOfficeName $ postalAddress $ postalCode $ po + stOfficeBox $ streetAddress $ facsimileTelephoneNumber $ internationalISDNN + umber $ telephoneNumber $ teletexTerminalIdentifier $ telexNumber $ preferr + edDeliveryMethod $ destinationIndicator $ registeredAddress $ x121Address ) + ) +olcObjectClasses: {7}( 0.9.2342.19200300.100.4.15 NAME 'dNSDomain' SUP domai + n STRUCTURAL MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ C + NAMERecord ) ) +olcObjectClasses: {8}( 0.9.2342.19200300.100.4.17 NAME 'domainRelatedObject' + DESC 'RFC1274: an object related to an domain' SUP top AUXILIARY MUST asso + ciatedDomain ) +olcObjectClasses: {9}( 0.9.2342.19200300.100.4.18 NAME 'friendlyCountry' SUP + country STRUCTURAL MUST friendlyCountryName ) +olcObjectClasses: {10}( 0.9.2342.19200300.100.4.20 NAME 'pilotOrganization' + SUP ( organization $ organizationalUnit ) STRUCTURAL MAY buildingName ) +olcObjectClasses: {11}( 0.9.2342.19200300.100.4.21 NAME 'pilotDSA' SUP dsa S + TRUCTURAL MAY dSAQuality ) +olcObjectClasses: {12}( 0.9.2342.19200300.100.4.22 NAME 'qualityLabelledData + ' SUP top AUXILIARY MUST dsaQuality MAY ( subtreeMinimumQuality $ subtreeMa + ximumQuality ) ) +structuralObjectClass: olcSchemaConfig +entryUUID: 401a0f9a-eaf5-1039-8662-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.084423Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={2}inetorgperson.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={2}inetorgperson.ldif new file mode 100644 index 0000000..ecc4a56 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={2}inetorgperson.ldif @@ -0,0 +1,49 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 2dfdddb6 +dn: cn={2}inetorgperson +objectClass: olcSchemaConfig +cn: {2}inetorgperson +olcAttributeTypes: {0}( 2.16.840.1.113730.3.1.1 NAME 'carLicense' DESC 'RFC2 + 798: vehicle license or registration plate' EQUALITY caseIgnoreMatch SUBSTR + caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +olcAttributeTypes: {1}( 2.16.840.1.113730.3.1.2 NAME 'departmentNumber' DESC + 'RFC2798: identifies a department within an organization' EQUALITY caseIgn + oreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1 + .15 ) +olcAttributeTypes: {2}( 2.16.840.1.113730.3.1.241 NAME 'displayName' DESC 'R + FC2798: preferred name to be used when displaying entries' EQUALITY caseIgn + oreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1 + .15 SINGLE-VALUE ) +olcAttributeTypes: {3}( 2.16.840.1.113730.3.1.3 NAME 'employeeNumber' DESC ' + RFC2798: numerically identifies an employee within an organization' EQUALIT + Y caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466. + 115.121.1.15 SINGLE-VALUE ) +olcAttributeTypes: {4}( 2.16.840.1.113730.3.1.4 NAME 'employeeType' DESC 'RF + C2798: type of employment for a person' EQUALITY caseIgnoreMatch SUBSTR cas + eIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +olcAttributeTypes: {5}( 0.9.2342.19200300.100.1.60 NAME 'jpegPhoto' DESC 'RF + C2798: a JPEG image' SYNTAX 1.3.6.1.4.1.1466.115.121.1.28 ) +olcAttributeTypes: {6}( 2.16.840.1.113730.3.1.39 NAME 'preferredLanguage' DE + SC 'RFC2798: preferred written or spoken language for a person' EQUALITY ca + seIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115. + 121.1.15 SINGLE-VALUE ) +olcAttributeTypes: {7}( 2.16.840.1.113730.3.1.40 NAME 'userSMIMECertificate' + DESC 'RFC2798: PKCS#7 SignedData used to support S/MIME' SYNTAX 1.3.6.1.4. + 1.1466.115.121.1.5 ) +olcAttributeTypes: {8}( 2.16.840.1.113730.3.1.216 NAME 'userPKCS12' DESC 'RF + C2798: personal identity information, a PKCS #12 PFX' SYNTAX 1.3.6.1.4.1.14 + 66.115.121.1.5 ) +olcObjectClasses: {0}( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' DESC 'RF + C2798: Internet Organizational Person' SUP organizationalPerson STRUCTURAL + MAY ( audio $ businessCategory $ carLicense $ departmentNumber $ displayNam + e $ employeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddre + ss $ initials $ jpegPhoto $ labeledURI $ mail $ manager $ mobile $ o $ page + r $ photo $ roomNumber $ secretary $ uid $ userCertificate $ x500uniqueIden + tifier $ preferredLanguage $ userSMIMECertificate $ userPKCS12 ) ) +structuralObjectClass: olcSchemaConfig +entryUUID: 401a225a-eaf5-1039-8663-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.084903Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={3}rfc2307bis.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={3}rfc2307bis.ldif new file mode 100644 index 0000000..57c8246 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={3}rfc2307bis.ldif @@ -0,0 +1,155 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 dd0a742e +dn: cn={3}rfc2307bis +objectClass: olcSchemaConfig +cn: {3}rfc2307bis +olcAttributeTypes: {0}( 1.3.6.1.1.1.1.2 NAME 'gecos' DESC 'The GECOS field; + the common name' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5Substrings + Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {1}( 1.3.6.1.1.1.1.3 NAME 'homeDirectory' DESC 'The absol + ute path to the home directory' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4 + .1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {2}( 1.3.6.1.1.1.1.4 NAME 'loginShell' DESC 'The path to + the login shell' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121 + .1.26 SINGLE-VALUE ) +olcAttributeTypes: {3}( 1.3.6.1.1.1.1.5 NAME 'shadowLastChange' EQUALITY int + egerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {4}( 1.3.6.1.1.1.1.6 NAME 'shadowMin' EQUALITY integerMat + ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {5}( 1.3.6.1.1.1.1.7 NAME 'shadowMax' EQUALITY integerMat + ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {6}( 1.3.6.1.1.1.1.8 NAME 'shadowWarning' EQUALITY intege + rMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {7}( 1.3.6.1.1.1.1.9 NAME 'shadowInactive' EQUALITY integ + erMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {8}( 1.3.6.1.1.1.1.10 NAME 'shadowExpire' EQUALITY intege + rMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {9}( 1.3.6.1.1.1.1.11 NAME 'shadowFlag' EQUALITY integerM + atch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {10}( 1.3.6.1.1.1.1.12 NAME 'memberUid' EQUALITY caseExac + tIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {11}( 1.3.6.1.1.1.1.13 NAME 'memberNisNetgroup' EQUALITY + caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.146 + 6.115.121.1.26 ) +olcAttributeTypes: {12}( 1.3.6.1.1.1.1.14 NAME 'nisNetgroupTriple' DESC 'Net + group triple' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1 + .26 ) +olcAttributeTypes: {13}( 1.3.6.1.1.1.1.15 NAME 'ipServicePort' DESC 'Service + port number' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SI + NGLE-VALUE ) +olcAttributeTypes: {14}( 1.3.6.1.1.1.1.16 NAME 'ipServiceProtocol' DESC 'Ser + vice protocol name' SUP name ) +olcAttributeTypes: {15}( 1.3.6.1.1.1.1.17 NAME 'ipProtocolNumber' DESC 'IP p + rotocol number' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 + SINGLE-VALUE ) +olcAttributeTypes: {16}( 1.3.6.1.1.1.1.18 NAME 'oncRpcNumber' DESC 'ONC RPC + number' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-V + ALUE ) +olcAttributeTypes: {17}( 1.3.6.1.1.1.1.19 NAME 'ipHostNumber' DESC 'IPv4 add + resses as a dotted decimal omitting leading zeros or IPv6 addresses + as defined in RFC2373' SUP name ) +olcAttributeTypes: {18}( 1.3.6.1.1.1.1.20 NAME 'ipNetworkNumber' DESC 'IP ne + twork as a dotted decimal, eg. 192.168, omitting leading zeros' SUP + name SINGLE-VALUE ) +olcAttributeTypes: {19}( 1.3.6.1.1.1.1.21 NAME 'ipNetmaskNumber' DESC 'IP ne + tmask as a dotted decimal, eg. 255.255.255.0, omitting leading zeros + ' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-V + ALUE ) +olcAttributeTypes: {20}( 1.3.6.1.1.1.1.22 NAME 'macAddress' DESC 'MAC addres + s in maximal, colon separated hex notation, eg. 00:00:92:90:ee:e2' E + QUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {21}( 1.3.6.1.1.1.1.23 NAME 'bootParameter' DESC 'rpc.boo + tparamd parameter' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.1 + 21.1.26 ) +olcAttributeTypes: {22}( 1.3.6.1.1.1.1.24 NAME 'bootFile' DESC 'Boot image n + ame' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {23}( 1.3.6.1.1.1.1.26 NAME 'nisMapName' DESC 'Name of a + A generic NIS map' SUP name ) +olcAttributeTypes: {24}( 1.3.6.1.1.1.1.27 NAME 'nisMapEntry' DESC 'A generic + NIS entry' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch S + YNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {25}( 1.3.6.1.1.1.1.28 NAME 'nisPublicKey' DESC 'NIS publ + ic key' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SING + LE-VALUE ) +olcAttributeTypes: {26}( 1.3.6.1.1.1.1.29 NAME 'nisSecretKey' DESC 'NIS secr + et key' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SING + LE-VALUE ) +olcAttributeTypes: {27}( 1.3.6.1.1.1.1.30 NAME 'nisDomain' DESC 'NIS domain' + EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {28}( 1.3.6.1.1.1.1.31 NAME 'automountMapName' DESC 'auto + mount Map Name' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMat + ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {29}( 1.3.6.1.1.1.1.32 NAME 'automountKey' DESC 'Automoun + t Key value' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {30}( 1.3.6.1.1.1.1.33 NAME 'automountInformation' DESC ' + Automount information' EQUALITY caseExactIA5Match SUBSTR caseExactIA5Substr + ingsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcObjectClasses: {0}( 1.3.6.1.1.1.2.0 NAME 'posixAccount' DESC 'Abstraction + of an account with POSIX attributes' SUP top AUXILIARY MUST ( cn $ uid $ u + idNumber $ gidNumber $ homeDirectory ) MAY ( userPassword $ loginShell $ ge + cos $ description ) ) +olcObjectClasses: {1}( 1.3.6.1.1.1.2.1 NAME 'shadowAccount' DESC 'Additional + attributes for shadow passwords' SUP top AUXILIARY MUST uid MAY ( userPass + word $ description $ shadowLastChange $ shadowMin $ shadowMax $ shadowWarni + ng $ shadowInactive $ shadowExpire $ shadowFlag ) ) +olcObjectClasses: {2}( 1.3.6.1.1.1.2.2 NAME 'posixGroup' DESC 'Abstraction o + f a group of accounts' SUP top AUXILIARY MUST gidNumber MAY ( userPassword + $ memberUid $ description ) ) +olcObjectClasses: {3}( 1.3.6.1.1.1.2.3 NAME 'ipService' DESC 'Abstraction an + Internet Protocol service. Maps an IP port and protocol (such as tc + p or udp) to one or more names; the distinguished value of th + e cn attribute denotes the services canonical name' SUP top STRUCTUR + AL MUST ( cn $ ipServicePort $ ipServiceProtocol ) MAY description ) +olcObjectClasses: {4}( 1.3.6.1.1.1.2.4 NAME 'ipProtocol' DESC 'Abstraction o + f an IP protocol. Maps a protocol number to one or more names. The d + istinguished value of the cn attribute denotes the protocols canonic + al name' SUP top STRUCTURAL MUST ( cn $ ipProtocolNumber ) MAY description + ) +olcObjectClasses: {5}( 1.3.6.1.1.1.2.5 NAME 'oncRpc' DESC 'Abstraction of an + Open Network Computing (ONC) [RFC1057] Remote Procedure Call (RPC) b + inding. This class maps an ONC RPC number to a name. The distin + guished value of the cn attribute denotes the RPC services canonical + name' SUP top STRUCTURAL MUST ( cn $ oncRpcNumber ) MAY description ) +olcObjectClasses: {6}( 1.3.6.1.1.1.2.6 NAME 'ipHost' DESC 'Abstraction of a + host, an IP device. The distinguished value of the cn attribute deno + tes the hosts canonical name. Device SHOULD be used as a structural + class' SUP top AUXILIARY MUST ( cn $ ipHostNumber ) MAY ( userPassword $ l + $ description $ manager ) ) +olcObjectClasses: {7}( 1.3.6.1.1.1.2.7 NAME 'ipNetwork' DESC 'Abstraction of + a network. The distinguished value of the cn attribute denotes the + networks canonical name' SUP top STRUCTURAL MUST ipNetworkNumber MAY ( cn $ + ipNetmaskNumber $ l $ description $ manager ) ) +olcObjectClasses: {8}( 1.3.6.1.1.1.2.8 NAME 'nisNetgroup' DESC 'Abstraction + of a netgroup. May refer to other netgroups' SUP top STRUCTURAL MUST cn MAY + ( nisNetgroupTriple $ memberNisNetgroup $ description ) ) +olcObjectClasses: {9}( 1.3.6.1.1.1.2.9 NAME 'nisMap' DESC 'A generic abstrac + tion of a NIS map' SUP top STRUCTURAL MUST nisMapName MAY description ) +olcObjectClasses: {10}( 1.3.6.1.1.1.2.10 NAME 'nisObject' DESC 'An entry in + a NIS map' SUP top STRUCTURAL MUST ( cn $ nisMapEntry $ nisMapName ) MAY de + scription ) +olcObjectClasses: {11}( 1.3.6.1.1.1.2.11 NAME 'ieee802Device' DESC 'A device + with a MAC address; device SHOULD be used as a structural class' SU + P top AUXILIARY MAY macAddress ) +olcObjectClasses: {12}( 1.3.6.1.1.1.2.12 NAME 'bootableDevice' DESC 'A devic + e with boot parameters; device SHOULD be used as a structural class' + SUP top AUXILIARY MAY ( bootFile $ bootParameter ) ) +olcObjectClasses: {13}( 1.3.6.1.1.1.2.14 NAME 'nisKeyObject' DESC 'An object + with a public and secret key' SUP top AUXILIARY MUST ( cn $ nisPublicKey $ + nisSecretKey ) MAY ( uidNumber $ description ) ) +olcObjectClasses: {14}( 1.3.6.1.1.1.2.15 NAME 'nisDomainObject' DESC 'Associ + ates a NIS domain with a naming context' SUP top AUXILIARY MUST nisDomain ) +olcObjectClasses: {15}( 1.3.6.1.1.1.2.16 NAME 'automountMap' SUP top STRUCTU + RAL MUST automountMapName MAY description ) +olcObjectClasses: {16}( 1.3.6.1.1.1.2.17 NAME 'automount' DESC 'Automount in + formation' SUP top STRUCTURAL MUST ( automountKey $ automountInformation ) + MAY description ) +olcObjectClasses: {17}( 1.3.6.1.4.1.5322.13.1.1 NAME 'namedObject' SUP top S + TRUCTURAL MAY cn ) +structuralObjectClass: olcSchemaConfig +entryUUID: 401a2e6c-eaf5-1039-8664-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.085186Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={4}yast.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={4}yast.ldif new file mode 100644 index 0000000..0fe0f06 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/cn=schema/cn={4}yast.ldif @@ -0,0 +1,108 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 442e4b40 +dn: cn={4}yast +objectClass: olcSchemaConfig +cn: {4}yast +olcObjectIdentifier: {0}SUSE 1.3.6.1.4.1.7057 +olcObjectIdentifier: {1}SUSE.YaST SUSE:10.1 +olcObjectIdentifier: {2}SUSE.YaST.ModuleConfig SUSE:10.1.2 +olcObjectIdentifier: {3}SUSE.YaST.ModuleConfig.OC SUSE.YaST.ModuleConfig:1 +olcObjectIdentifier: {4}SUSE.YaST.ModuleConfig.Attr SUSE.YaST.ModuleConfig:2 +olcAttributeTypes: {0}( SUSE.YaST.ModuleConfig.Attr:2 NAME 'suseDefaultBase' + DESC 'Base DN where new Objects should be created by default' EQUALITY dis + tinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) +olcAttributeTypes: {1}( SUSE.YaST.ModuleConfig.Attr:3 NAME 'suseNextUniqueId + ' DESC 'Next unused unique ID, can be used to generate directory wide uniqe + IDs' EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4. + 1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {2}( SUSE.YaST.ModuleConfig.Attr:4 NAME 'suseMinUniqueId' + DESC 'lower Border for Unique IDs' EQUALITY integerMatch ORDERING integerO + rderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {3}( SUSE.YaST.ModuleConfig.Attr:5 NAME 'suseMaxUniqueId' + DESC 'upper Border for Unique IDs' EQUALITY integerMatch ORDERING integerO + rderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) +olcAttributeTypes: {4}( SUSE.YaST.ModuleConfig.Attr:6 NAME 'suseDefaultTempl + ate' DESC 'The DN of a template that should be used by default' EQUALITY di + stinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) +olcAttributeTypes: {5}( SUSE.YaST.ModuleConfig.Attr:7 NAME 'suseSearchFilter + ' DESC 'Search filter to localize Objects' SYNTAX 1.3.6.1.4.1.1466.115.121. + 1.15 SINGLE-VALUE ) +olcAttributeTypes: {6}( SUSE.YaST.ModuleConfig.Attr:11 NAME 'suseDefaultValu + e' DESC 'an Attribute-Value-Assertions to define defaults for specific Attr + ibutes' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +olcAttributeTypes: {7}( SUSE.YaST.ModuleConfig.Attr:12 NAME 'suseNamingAttri + bute' DESC 'AttributeType that should be used as the RDN' EQUALITY caseIgno + reIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {8}( SUSE.YaST.ModuleConfig.Attr:15 NAME 'suseSecondaryGr + oup' DESC 'seconday group DN' EQUALITY distinguishedNameMatch SYNTAX 1.3.6. + 1.4.1.1466.115.121.1.12 ) +olcAttributeTypes: {9}( SUSE.YaST.ModuleConfig.Attr:16 NAME 'suseMinPassword + Length' DESC 'minimum Password length for new users' EQUALITY integerMatch + ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-V + ALUE ) +olcAttributeTypes: {10}( SUSE.YaST.ModuleConfig.Attr:17 NAME 'suseMaxPasswor + dLength' DESC 'maximum Password length for new users' EQUALITY integerMatch + ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE- + VALUE ) +olcAttributeTypes: {11}( SUSE.YaST.ModuleConfig.Attr:18 NAME 'susePasswordHa + sh' DESC 'Hash method to use for new users' EQUALITY caseIgnoreIA5Match SYN + TAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) +olcAttributeTypes: {12}( SUSE.YaST.ModuleConfig.Attr:19 NAME 'suseSkelDir' D + ESC '' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) +olcAttributeTypes: {13}( SUSE.YaST.ModuleConfig.Attr:20 NAME 'susePlugin' DE + SC 'plugin to use upon user/ group creation' EQUALITY caseIgnoreMatch SYNTA + X 1.3.6.1.4.1.1466.115.121.1.15 ) +olcAttributeTypes: {14}( SUSE.YaST.ModuleConfig.Attr:21 NAME 'suseMapAttribu + te' DESC '' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) +olcAttributeTypes: {15}( SUSE.YaST.ModuleConfig.Attr:22 NAME 'suseImapServer + ' DESC '' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SIN + GLE-VALUE ) +olcAttributeTypes: {16}( SUSE.YaST.ModuleConfig.Attr:23 NAME 'suseImapAdmin' + DESC '' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SING + LE-VALUE ) +olcAttributeTypes: {17}( SUSE.YaST.ModuleConfig.Attr:24 NAME 'suseImapDefaul + tQuota' DESC '' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 + SINGLE-VALUE ) +olcAttributeTypes: {18}( SUSE.YaST.ModuleConfig.Attr:25 NAME 'suseImapUseSsl + ' DESC '' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE- + VALUE ) +olcObjectClasses: {0}( SUSE.YaST.ModuleConfig.OC:2 NAME 'suseModuleConfigura + tion' DESC 'Contains configuration of Management Modules' SUP top STRUCTURA + L MUST cn MAY suseDefaultBase ) +olcObjectClasses: {1}( SUSE.YaST.ModuleConfig.OC:3 NAME 'suseUserConfigurati + on' DESC 'Configuration of user management tools' SUP suseModuleConfigurati + on STRUCTURAL MAY ( suseMinPasswordLength $ suseMaxPasswordLength $ susePas + swordHash $ suseSkelDir $ suseNextUniqueId $ suseMinUniqueId $ suseMaxUniqu + eId $ suseDefaultTemplate $ suseSearchFilter $ suseMapAttribute ) ) +olcObjectClasses: {2}( SUSE.YaST.ModuleConfig.OC:4 NAME 'suseObjectTemplate' + DESC 'Base Class for Object-Templates' SUP top STRUCTURAL MUST cn MAY ( su + sePlugin $ suseDefaultValue $ suseNamingAttribute ) ) +olcObjectClasses: {3}( SUSE.YaST.ModuleConfig.OC:5 NAME 'suseUserTemplate' D + ESC 'User object template' SUP suseObjectTemplate STRUCTURAL MUST cn MAY su + seSecondaryGroup ) +olcObjectClasses: {4}( SUSE.YaST.ModuleConfig.OC:6 NAME 'suseGroupTemplate' + DESC 'Group object template' SUP suseObjectTemplate STRUCTURAL MUST cn ) +olcObjectClasses: {5}( SUSE.YaST.ModuleConfig.OC:7 NAME 'suseGroupConfigurat + ion' DESC 'Configuration of user management tools' SUP suseModuleConfigurat + ion STRUCTURAL MAY ( suseNextUniqueId $ suseMinUniqueId $ suseMaxUniqueId $ + suseDefaultTemplate $ suseSearchFilter $ suseMapAttribute ) ) +olcObjectClasses: {6}( SUSE.YaST.ModuleConfig.OC:8 NAME 'suseCaConfiguration + ' DESC 'Configuration of CA management tools' SUP suseModuleConfiguration S + TRUCTURAL ) +olcObjectClasses: {7}( SUSE.YaST.ModuleConfig.OC:9 NAME 'suseDnsConfiguratio + n' DESC 'Configuration of mail server management tools' SUP suseModuleConfi + guration STRUCTURAL ) +olcObjectClasses: {8}( SUSE.YaST.ModuleConfig.OC:10 NAME 'suseDhcpConfigurat + ion' DESC 'Configuration of DHCP server management tools' SUP suseModuleCon + figuration STRUCTURAL ) +olcObjectClasses: {9}( SUSE.YaST.ModuleConfig.OC:11 NAME 'suseMailConfigurat + ion' DESC 'Configuration of IMAP user management tools' SUP suseModuleConfi + guration STRUCTURAL MUST ( suseImapServer $ suseImapAdmin $ suseImapDefault + Quota $ suseImapUseSsl ) ) +structuralObjectClass: olcSchemaConfig +entryUUID: 401a3f38-eaf5-1039-8665-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.085642Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={-1}frontend.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={-1}frontend.ldif new file mode 100644 index 0000000..87336b5 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={-1}frontend.ldif @@ -0,0 +1,15 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 ebfceba5 +dn: olcDatabase={-1}frontend +objectClass: olcDatabaseConfig +objectClass: olcFrontendConfig +olcDatabase: {-1}frontend +olcAccess: {0}to dn.base="" by * read +olcAccess: {1}to dn.base="cn=Subschema" by * read +structuralObjectClass: olcDatabaseConfig +entryUUID: 401a4c6c-eaf5-1039-8666-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.085980Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={0}config.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={0}config.ldif new file mode 100644 index 0000000..fa4e56c --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={0}config.ldif @@ -0,0 +1,20 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 e112c647 +dn: olcDatabase={0}config +objectClass: olcDatabaseConfig +olcDatabase: {0}config +olcAccess: {0}to * by * none +olcAddContentAcl: TRUE +olcLastMod: TRUE +olcMaxDerefDepth: 15 +olcReadOnly: FALSE +olcRootDN: cn=config +olcSyncUseSubentry: FALSE +olcMonitoring: FALSE +structuralObjectClass: olcDatabaseConfig +entryUUID: 401a534c-eaf5-1039-8668-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.086158Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={1}mdb.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={1}mdb.ldif new file mode 100644 index 0000000..a4701b5 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={1}mdb.ldif @@ -0,0 +1,18 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 c1d2cbb7 +dn: olcDatabase={1}mdb +objectClass: olcDatabaseConfig +objectClass: olcMdbConfig +olcDatabase: mdb +olcDbDirectory: /var/lib/ldap/example_com +olcSuffix: dc=example,dc=com +olcRootDN: cn=Manager,dc=example,dc=com +olcRootPW:: c2VjcmV0 +olcDbIndex: objectClass eq +structuralObjectClass: olcMdbConfig +entryUUID: 401a528e-eaf5-1039-8667-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.086134Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={0}memberof.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={0}memberof.ldif new file mode 100644 index 0000000..9053f5b --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={0}memberof.ldif @@ -0,0 +1,14 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 82bb3fb3 +dn: olcOverlay={0}memberof +objectClass: olcOverlayConfig +objectClass: olcMemberOf +olcOverlay: {0}memberof +olcMemberOfRefInt: TRUE +structuralObjectClass: olcMemberOf +entryUUID: 401a5f7c-eaf5-1039-8669-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.086468Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={1}refint.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={1}refint.ldif new file mode 100644 index 0000000..f990632 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={1}refint.ldif @@ -0,0 +1,15 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 28d25ae6 +dn: olcOverlay={1}refint +objectClass: olcOverlayConfig +objectClass: olcRefintConfig +olcOverlay: {1}refint +olcRefintAttribute: member +olcRefintAttribute: memberOf +structuralObjectClass: olcRefintConfig +entryUUID: 401a66fc-eaf5-1039-866a-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.086660Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={2}unique.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={2}unique.ldif new file mode 100644 index 0000000..2a0e6b3 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={2}unique.ldif @@ -0,0 +1,15 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 e3a2aeac +dn: olcOverlay={2}unique +objectClass: olcOverlayConfig +objectClass: olcUniqueConfig +olcOverlay: {2}unique +olcUniqueURI: ldap:///?mail?sub +olcUniqueURI: ldap:///?uid?sub +structuralObjectClass: olcUniqueConfig +entryUUID: 401a6b02-eaf5-1039-866b-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.086763Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={2}mdb.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={2}mdb.ldif new file mode 100644 index 0000000..27a21d1 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={2}mdb.ldif @@ -0,0 +1,18 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 1bb1ab28 +dn: olcDatabase={2}mdb +objectClass: olcDatabaseConfig +objectClass: olcMdbConfig +olcDatabase: mdb +olcDbDirectory: /var/lib/ldap/example_net +olcSuffix: dc=example,dc=net +olcRootDN: cn=Manager,dc=example,dc=net +olcRootPW:: c2VjcmV0 +olcDbIndex: objectClass eq +structuralObjectClass: olcMdbConfig +entryUUID: 401a7084-eaf5-1039-866c-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.086905Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={0}memberof.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={0}memberof.ldif new file mode 100644 index 0000000..d04bb79 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={0}memberof.ldif @@ -0,0 +1,14 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 6b48531c +dn: olcOverlay={0}memberof +objectClass: olcOverlayConfig +objectClass: olcMemberOf +olcOverlay: {0}memberof +olcMemberOfRefInt: TRUE +structuralObjectClass: olcMemberOf +entryUUID: 401a7890-eaf5-1039-866d-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.087110Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={1}unique.ldif b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={1}unique.ldif new file mode 100644 index 0000000..4ff7720 --- /dev/null +++ b/dirsrvtests/tests/data/openldap_2_389/1/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={1}unique.ldif @@ -0,0 +1,15 @@ +# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. +# CRC32 027478a0 +dn: olcOverlay={1}unique +objectClass: olcOverlayConfig +objectClass: olcUniqueConfig +olcOverlay: {1}unique +olcUniqueURI: ldap:///?mail?sub +olcUniqueURI: ldap:///?uid?sub +structuralObjectClass: olcUniqueConfig +entryUUID: 401a7f20-eaf5-1039-866e-dbfbf2f5e6dd +creatorsName: cn=config +createTimestamp: 20200224020101Z +entryCSN: 20200224020101.087278Z#000000#000#000000 +modifiersName: cn=config +modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/example_com.slapcat.ldif b/dirsrvtests/tests/data/openldap_2_389/example_com.slapcat.ldif deleted file mode 100644 index c7a5089..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/example_com.slapcat.ldif +++ /dev/null @@ -1,241 +0,0 @@ -dn: dc=example,dc=com -objectClass: dcObject -objectClass: organization -o: Example Company -dc: example -structuralObjectClass: organization -entryUUID: 67c6a9b8-eafa-1039-882d-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.130368Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=com -modifyTimestamp: 20200224023755Z - -dn: cn=Manager,dc=example,dc=com -objectClass: organizationalRole -cn: Manager -structuralObjectClass: organizationalRole -entryUUID: 67c8c932-eafa-1039-882e-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.144283Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=com -modifyTimestamp: 20200224023755Z - -dn: ou=People,dc=example,dc=com -objectClass: organizationalUnit -ou: People -structuralObjectClass: organizationalUnit -entryUUID: 67ca92a8-eafa-1039-882f-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.155994Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=com -modifyTimestamp: 20200224023755Z - -dn: ou=Groups,dc=example,dc=com -objectClass: organizationalUnit -ou: Groups -structuralObjectClass: organizationalUnit -entryUUID: 67cc2212-eafa-1039-8830-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.166219Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=com -modifyTimestamp: 20200224023755Z - -dn: cn=user0,ou=People,dc=example,dc=com -objectClass: account -objectClass: posixAccount -cn: user0 -uid: user0 -uidNumber: 80000 -gidNumber: 80000 -homeDirectory: /home/user0 -structuralObjectClass: account -entryUUID: 67cdfcea-eafa-1039-8831-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.178373Z#000000#000#000000 -modifyTimestamp: 20200224023755Z -memberOf: cn=group0,ou=groups,dc=example,dc=com -memberOf: cn=group1,ou=groups,dc=example,dc=com -memberOf: cn=group2,ou=groups,dc=example,dc=com -memberOf: cn=group3,ou=groups,dc=example,dc=com -memberOf: cn=group4,ou=groups,dc=example,dc=com -modifiersName: cn=Manager,dc=example,dc=com - -dn: cn=user1,ou=People,dc=example,dc=com -objectClass: account -objectClass: posixAccount -cn: user1 -uid: user1 -uidNumber: 80001 -gidNumber: 80001 -homeDirectory: /home/user1 -structuralObjectClass: account -entryUUID: 67d05080-eafa-1039-8832-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.193620Z#000000#000#000000 -modifyTimestamp: 20200224023755Z -memberOf: cn=group0,ou=groups,dc=example,dc=com -memberOf: cn=group1,ou=groups,dc=example,dc=com -memberOf: cn=group2,ou=groups,dc=example,dc=com -memberOf: cn=group3,ou=groups,dc=example,dc=com -memberOf: cn=group4,ou=groups,dc=example,dc=com -modifiersName: cn=Manager,dc=example,dc=com - -dn: cn=user2,ou=People,dc=example,dc=com -objectClass: account -objectClass: posixAccount -cn: user2 -uid: user2 -uidNumber: 80002 -gidNumber: 80002 -homeDirectory: /home/user2 -structuralObjectClass: account -entryUUID: 67d26172-eafa-1039-8833-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.207161Z#000000#000#000000 -modifyTimestamp: 20200224023755Z -memberOf: cn=group0,ou=groups,dc=example,dc=com -memberOf: cn=group1,ou=groups,dc=example,dc=com -memberOf: cn=group2,ou=groups,dc=example,dc=com -memberOf: cn=group3,ou=groups,dc=example,dc=com -memberOf: cn=group4,ou=groups,dc=example,dc=com -modifiersName: cn=Manager,dc=example,dc=com - -dn: cn=user3,ou=People,dc=example,dc=com -objectClass: account -objectClass: posixAccount -cn: user3 -uid: user3 -uidNumber: 80003 -gidNumber: 80003 -homeDirectory: /home/user3 -structuralObjectClass: account -entryUUID: 67d460bc-eafa-1039-8834-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.220249Z#000000#000#000000 -modifyTimestamp: 20200224023755Z -memberOf: cn=group0,ou=groups,dc=example,dc=com -memberOf: cn=group1,ou=groups,dc=example,dc=com -memberOf: cn=group2,ou=groups,dc=example,dc=com -memberOf: cn=group3,ou=groups,dc=example,dc=com -memberOf: cn=group4,ou=groups,dc=example,dc=com -modifiersName: cn=Manager,dc=example,dc=com - -dn: cn=user4,ou=People,dc=example,dc=com -objectClass: account -objectClass: posixAccount -cn: user4 -uid: user4 -uidNumber: 80004 -gidNumber: 80004 -homeDirectory: /home/user4 -structuralObjectClass: account -entryUUID: 67d5d2a8-eafa-1039-8835-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.229723Z#000000#000#000000 -modifyTimestamp: 20200224023755Z -memberOf: cn=group0,ou=groups,dc=example,dc=com -memberOf: cn=group1,ou=groups,dc=example,dc=com -memberOf: cn=group2,ou=groups,dc=example,dc=com -memberOf: cn=group3,ou=groups,dc=example,dc=com -memberOf: cn=group4,ou=groups,dc=example,dc=com -modifiersName: cn=Manager,dc=example,dc=com - -dn: cn=group0,ou=Groups,dc=example,dc=com -objectClass: groupOfNames -objectClass: posixGroup -cn: group0 -member: cn=user0,ou=people,dc=example,dc=com -member: cn=user1,ou=people,dc=example,dc=com -member: cn=user2,ou=people,dc=example,dc=com -member: cn=user3,ou=people,dc=example,dc=com -member: cn=user4,ou=people,dc=example,dc=com -gidNumber: 90000 -structuralObjectClass: groupOfNames -entryUUID: 67d6f796-eafa-1039-8836-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.237225Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=com -modifyTimestamp: 20200224023755Z - -dn: cn=group1,ou=Groups,dc=example,dc=com -objectClass: groupOfNames -objectClass: posixGroup -cn: group1 -member: cn=user0,ou=people,dc=example,dc=com -member: cn=user1,ou=people,dc=example,dc=com -member: cn=user2,ou=people,dc=example,dc=com -member: cn=user3,ou=people,dc=example,dc=com -member: cn=user4,ou=people,dc=example,dc=com -gidNumber: 90001 -structuralObjectClass: groupOfNames -entryUUID: 67da9d2e-eafa-1039-8837-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.261127Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=com -modifyTimestamp: 20200224023755Z - -dn: cn=group2,ou=Groups,dc=example,dc=com -objectClass: groupOfNames -objectClass: posixGroup -cn: group2 -member: cn=user0,ou=people,dc=example,dc=com -member: cn=user1,ou=people,dc=example,dc=com -member: cn=user2,ou=people,dc=example,dc=com -member: cn=user3,ou=people,dc=example,dc=com -member: cn=user4,ou=people,dc=example,dc=com -gidNumber: 90002 -structuralObjectClass: groupOfNames -entryUUID: 67de2822-eafa-1039-8838-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.284346Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=com -modifyTimestamp: 20200224023755Z - -dn: cn=group3,ou=Groups,dc=example,dc=com -objectClass: groupOfNames -objectClass: posixGroup -cn: group3 -member: cn=user0,ou=people,dc=example,dc=com -member: cn=user1,ou=people,dc=example,dc=com -member: cn=user2,ou=people,dc=example,dc=com -member: cn=user3,ou=people,dc=example,dc=com -member: cn=user4,ou=people,dc=example,dc=com -gidNumber: 90003 -structuralObjectClass: groupOfNames -entryUUID: 67e1a6aa-eafa-1039-8839-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.307244Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=com -modifyTimestamp: 20200224023755Z - -dn: cn=group4,ou=Groups,dc=example,dc=com -objectClass: groupOfNames -objectClass: posixGroup -cn: group4 -member: cn=user0,ou=people,dc=example,dc=com -member: cn=user1,ou=people,dc=example,dc=com -member: cn=user2,ou=people,dc=example,dc=com -member: cn=user3,ou=people,dc=example,dc=com -member: cn=user4,ou=people,dc=example,dc=com -gidNumber: 90004 -structuralObjectClass: groupOfNames -entryUUID: 67e5a50c-eafa-1039-883a-152569770969 -creatorsName: cn=Manager,dc=example,dc=com -createTimestamp: 20200224023755Z -entryCSN: 20200224023755.333416Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=com -modifyTimestamp: 20200224023755Z - diff --git a/dirsrvtests/tests/data/openldap_2_389/example_net.slapcat.ldif b/dirsrvtests/tests/data/openldap_2_389/example_net.slapcat.ldif deleted file mode 100644 index e7a34a6..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/example_net.slapcat.ldif +++ /dev/null @@ -1,241 +0,0 @@ -dn: dc=example,dc=net -objectClass: dcObject -objectClass: organization -o: Example Company -dc: example -structuralObjectClass: organization -entryUUID: 5df457fe-eafb-1039-8857-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.149265Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=net -modifyTimestamp: 20200224024448Z - -dn: cn=Manager,dc=example,dc=net -objectClass: organizationalRole -cn: Manager -structuralObjectClass: organizationalRole -entryUUID: 5df55cf8-eafb-1039-8858-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.155945Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=net -modifyTimestamp: 20200224024448Z - -dn: ou=People,dc=example,dc=net -objectClass: organizationalUnit -ou: People -structuralObjectClass: organizationalUnit -entryUUID: 5df60342-eafb-1039-8859-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.160202Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=net -modifyTimestamp: 20200224024448Z - -dn: ou=Groups,dc=example,dc=net -objectClass: organizationalUnit -ou: Groups -structuralObjectClass: organizationalUnit -entryUUID: 5df6a57c-eafb-1039-885a-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.164355Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=net -modifyTimestamp: 20200224024448Z - -dn: cn=user0,ou=People,dc=example,dc=net -objectClass: account -objectClass: posixAccount -cn: user0 -uid: user0 -uidNumber: 80000 -gidNumber: 80000 -homeDirectory: /home/user0 -structuralObjectClass: account -entryUUID: 5df7521a-eafb-1039-885b-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.168774Z#000000#000#000000 -modifyTimestamp: 20200224024448Z -memberOf: cn=group0,ou=groups,dc=example,dc=net -memberOf: cn=group1,ou=groups,dc=example,dc=net -memberOf: cn=group2,ou=groups,dc=example,dc=net -memberOf: cn=group3,ou=groups,dc=example,dc=net -memberOf: cn=group4,ou=groups,dc=example,dc=net -modifiersName: cn=Manager,dc=example,dc=net - -dn: cn=user1,ou=People,dc=example,dc=net -objectClass: account -objectClass: posixAccount -cn: user1 -uid: user1 -uidNumber: 80001 -gidNumber: 80001 -homeDirectory: /home/user1 -structuralObjectClass: account -entryUUID: 5df80f66-eafb-1039-885c-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.173619Z#000000#000#000000 -modifyTimestamp: 20200224024448Z -memberOf: cn=group0,ou=groups,dc=example,dc=net -memberOf: cn=group1,ou=groups,dc=example,dc=net -memberOf: cn=group2,ou=groups,dc=example,dc=net -memberOf: cn=group3,ou=groups,dc=example,dc=net -memberOf: cn=group4,ou=groups,dc=example,dc=net -modifiersName: cn=Manager,dc=example,dc=net - -dn: cn=user2,ou=People,dc=example,dc=net -objectClass: account -objectClass: posixAccount -cn: user2 -uid: user2 -uidNumber: 80002 -gidNumber: 80002 -homeDirectory: /home/user2 -structuralObjectClass: account -entryUUID: 5df8e710-eafb-1039-885d-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.179140Z#000000#000#000000 -modifyTimestamp: 20200224024448Z -memberOf: cn=group0,ou=groups,dc=example,dc=net -memberOf: cn=group1,ou=groups,dc=example,dc=net -memberOf: cn=group2,ou=groups,dc=example,dc=net -memberOf: cn=group3,ou=groups,dc=example,dc=net -memberOf: cn=group4,ou=groups,dc=example,dc=net -modifiersName: cn=Manager,dc=example,dc=net - -dn: cn=user3,ou=People,dc=example,dc=net -objectClass: account -objectClass: posixAccount -cn: user3 -uid: user3 -uidNumber: 80003 -gidNumber: 80003 -homeDirectory: /home/user3 -structuralObjectClass: account -entryUUID: 5df9c356-eafb-1039-885e-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.184778Z#000000#000#000000 -modifyTimestamp: 20200224024448Z -memberOf: cn=group0,ou=groups,dc=example,dc=net -memberOf: cn=group1,ou=groups,dc=example,dc=net -memberOf: cn=group2,ou=groups,dc=example,dc=net -memberOf: cn=group3,ou=groups,dc=example,dc=net -memberOf: cn=group4,ou=groups,dc=example,dc=net -modifiersName: cn=Manager,dc=example,dc=net - -dn: cn=user4,ou=People,dc=example,dc=net -objectClass: account -objectClass: posixAccount -cn: user4 -uid: user4 -uidNumber: 80004 -gidNumber: 80004 -homeDirectory: /home/user4 -structuralObjectClass: account -entryUUID: 5dfaecc2-eafb-1039-885f-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.192376Z#000000#000#000000 -modifyTimestamp: 20200224024448Z -memberOf: cn=group0,ou=groups,dc=example,dc=net -memberOf: cn=group1,ou=groups,dc=example,dc=net -memberOf: cn=group2,ou=groups,dc=example,dc=net -memberOf: cn=group3,ou=groups,dc=example,dc=net -memberOf: cn=group4,ou=groups,dc=example,dc=net -modifiersName: cn=Manager,dc=example,dc=net - -dn: cn=group0,ou=Groups,dc=example,dc=net -objectClass: groupOfNames -objectClass: posixGroup -cn: group0 -member: cn=user0,ou=people,dc=example,dc=net -member: cn=user1,ou=people,dc=example,dc=net -member: cn=user2,ou=people,dc=example,dc=net -member: cn=user3,ou=people,dc=example,dc=net -member: cn=user4,ou=people,dc=example,dc=net -gidNumber: 90000 -structuralObjectClass: groupOfNames -entryUUID: 5dfc02c4-eafb-1039-8860-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.199510Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=net -modifyTimestamp: 20200224024448Z - -dn: cn=group1,ou=Groups,dc=example,dc=net -objectClass: groupOfNames -objectClass: posixGroup -cn: group1 -member: cn=user0,ou=people,dc=example,dc=net -member: cn=user1,ou=people,dc=example,dc=net -member: cn=user2,ou=people,dc=example,dc=net -member: cn=user3,ou=people,dc=example,dc=net -member: cn=user4,ou=people,dc=example,dc=net -gidNumber: 90001 -structuralObjectClass: groupOfNames -entryUUID: 5e01038c-eafb-1039-8861-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.232297Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=net -modifyTimestamp: 20200224024448Z - -dn: cn=group2,ou=Groups,dc=example,dc=net -objectClass: groupOfNames -objectClass: posixGroup -cn: group2 -member: cn=user0,ou=people,dc=example,dc=net -member: cn=user1,ou=people,dc=example,dc=net -member: cn=user2,ou=people,dc=example,dc=net -member: cn=user3,ou=people,dc=example,dc=net -member: cn=user4,ou=people,dc=example,dc=net -gidNumber: 90002 -structuralObjectClass: groupOfNames -entryUUID: 5e06b610-eafb-1039-8862-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.269635Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=net -modifyTimestamp: 20200224024448Z - -dn: cn=group3,ou=Groups,dc=example,dc=net -objectClass: groupOfNames -objectClass: posixGroup -cn: group3 -member: cn=user0,ou=people,dc=example,dc=net -member: cn=user1,ou=people,dc=example,dc=net -member: cn=user2,ou=people,dc=example,dc=net -member: cn=user3,ou=people,dc=example,dc=net -member: cn=user4,ou=people,dc=example,dc=net -gidNumber: 90003 -structuralObjectClass: groupOfNames -entryUUID: 5e0aec76-eafb-1039-8863-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.297242Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=net -modifyTimestamp: 20200224024448Z - -dn: cn=group4,ou=Groups,dc=example,dc=net -objectClass: groupOfNames -objectClass: posixGroup -cn: group4 -member: cn=user0,ou=people,dc=example,dc=net -member: cn=user1,ou=people,dc=example,dc=net -member: cn=user2,ou=people,dc=example,dc=net -member: cn=user3,ou=people,dc=example,dc=net -member: cn=user4,ou=people,dc=example,dc=net -gidNumber: 90004 -structuralObjectClass: groupOfNames -entryUUID: 5e0f0900-eafb-1039-8864-152569770969 -creatorsName: cn=Manager,dc=example,dc=net -createTimestamp: 20200224024448Z -entryCSN: 20200224024448.324187Z#000000#000#000000 -modifiersName: cn=Manager,dc=example,dc=net -modifyTimestamp: 20200224024448Z - diff --git a/dirsrvtests/tests/data/openldap_2_389/setup/example_com.ldif b/dirsrvtests/tests/data/openldap_2_389/setup/example_com.ldif deleted file mode 100644 index 4e6330c..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/setup/example_com.ldif +++ /dev/null @@ -1,117 +0,0 @@ -dn: dc=example,dc=com -objectclass: dcObject -objectclass: organization -o: Example Company -dc: example - -dn: cn=Manager,dc=example,dc=com -objectclass: organizationalRole -cn: Manager - -dn: ou=People,dc=example,dc=com -objectClass: organizationalUnit -ou: People - -dn: ou=Groups,dc=example,dc=com -objectClass: organizationalUnit -ou: Groups - -dn: cn=user0,ou=people,dc=example,dc=com -objectClass: Account -objectClass: posixAccount -cn: user0 -uid: user0 -uidnumber: 80000 -gidnumber: 80000 -homeDirectory: /home/user0 - -dn: cn=user1,ou=people,dc=example,dc=com -objectClass: Account -objectClass: posixAccount -cn: user1 -uid: user1 -uidnumber: 80001 -gidnumber: 80001 -homeDirectory: /home/user1 - -dn: cn=user2,ou=people,dc=example,dc=com -objectClass: Account -objectClass: posixAccount -cn: user2 -uid: user2 -uidnumber: 80002 -gidnumber: 80002 -homeDirectory: /home/user2 - -dn: cn=user3,ou=people,dc=example,dc=com -objectClass: Account -objectClass: posixAccount -cn: user3 -uid: user3 -uidnumber: 80003 -gidnumber: 80003 -homeDirectory: /home/user3 - -dn: cn=user4,ou=people,dc=example,dc=com -objectClass: Account -objectClass: posixAccount -cn: user4 -uid: user4 -uidnumber: 80004 -gidnumber: 80004 -homeDirectory: /home/user4 - -dn: cn=group0,ou=groups,dc=example,dc=com -objectClass: groupOfNames -objectClass: posixGroup -cn: group0 -member: cn=user0,ou=people,dc=example,dc=com -member: cn=user1,ou=people,dc=example,dc=com -member: cn=user2,ou=people,dc=example,dc=com -member: cn=user3,ou=people,dc=example,dc=com -member: cn=user4,ou=people,dc=example,dc=com -gidNumber: 90000 - -dn: cn=group1,ou=groups,dc=example,dc=com -objectClass: groupOfNames -objectClass: posixGroup -cn: group1 -member: cn=user0,ou=people,dc=example,dc=com -member: cn=user1,ou=people,dc=example,dc=com -member: cn=user2,ou=people,dc=example,dc=com -member: cn=user3,ou=people,dc=example,dc=com -member: cn=user4,ou=people,dc=example,dc=com -gidNumber: 90001 - -dn: cn=group2,ou=groups,dc=example,dc=com -objectClass: groupOfNames -objectClass: posixGroup -cn: group2 -member: cn=user0,ou=people,dc=example,dc=com -member: cn=user1,ou=people,dc=example,dc=com -member: cn=user2,ou=people,dc=example,dc=com -member: cn=user3,ou=people,dc=example,dc=com -member: cn=user4,ou=people,dc=example,dc=com -gidNumber: 90002 - -dn: cn=group3,ou=groups,dc=example,dc=com -objectClass: groupOfNames -objectClass: posixGroup -cn: group3 -member: cn=user0,ou=people,dc=example,dc=com -member: cn=user1,ou=people,dc=example,dc=com -member: cn=user2,ou=people,dc=example,dc=com -member: cn=user3,ou=people,dc=example,dc=com -member: cn=user4,ou=people,dc=example,dc=com -gidNumber: 90003 - -dn: cn=group4,ou=groups,dc=example,dc=com -objectClass: groupOfNames -objectClass: posixGroup -cn: group4 -member: cn=user0,ou=people,dc=example,dc=com -member: cn=user1,ou=people,dc=example,dc=com -member: cn=user2,ou=people,dc=example,dc=com -member: cn=user3,ou=people,dc=example,dc=com -member: cn=user4,ou=people,dc=example,dc=com -gidNumber: 90004 diff --git a/dirsrvtests/tests/data/openldap_2_389/setup/example_net.ldif b/dirsrvtests/tests/data/openldap_2_389/setup/example_net.ldif deleted file mode 100644 index a4b70cc..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/setup/example_net.ldif +++ /dev/null @@ -1,117 +0,0 @@ -dn: dc=example,dc=net -objectclass: dcObject -objectclass: organization -o: Example Company -dc: example - -dn: cn=Manager,dc=example,dc=net -objectclass: organizationalRole -cn: Manager - -dn: ou=People,dc=example,dc=net -objectClass: organizationalUnit -ou: People - -dn: ou=Groups,dc=example,dc=net -objectClass: organizationalUnit -ou: Groups - -dn: cn=user0,ou=people,dc=example,dc=net -objectClass: Account -objectClass: posixAccount -cn: user0 -uid: user0 -uidnumber: 80000 -gidnumber: 80000 -homeDirectory: /home/user0 - -dn: cn=user1,ou=people,dc=example,dc=net -objectClass: Account -objectClass: posixAccount -cn: user1 -uid: user1 -uidnumber: 80001 -gidnumber: 80001 -homeDirectory: /home/user1 - -dn: cn=user2,ou=people,dc=example,dc=net -objectClass: Account -objectClass: posixAccount -cn: user2 -uid: user2 -uidnumber: 80002 -gidnumber: 80002 -homeDirectory: /home/user2 - -dn: cn=user3,ou=people,dc=example,dc=net -objectClass: Account -objectClass: posixAccount -cn: user3 -uid: user3 -uidnumber: 80003 -gidnumber: 80003 -homeDirectory: /home/user3 - -dn: cn=user4,ou=people,dc=example,dc=net -objectClass: Account -objectClass: posixAccount -cn: user4 -uid: user4 -uidnumber: 80004 -gidnumber: 80004 -homeDirectory: /home/user4 - -dn: cn=group0,ou=groups,dc=example,dc=net -objectClass: groupOfNames -objectClass: posixGroup -cn: group0 -member: cn=user0,ou=people,dc=example,dc=net -member: cn=user1,ou=people,dc=example,dc=net -member: cn=user2,ou=people,dc=example,dc=net -member: cn=user3,ou=people,dc=example,dc=net -member: cn=user4,ou=people,dc=example,dc=net -gidNumber: 90000 - -dn: cn=group1,ou=groups,dc=example,dc=net -objectClass: groupOfNames -objectClass: posixGroup -cn: group1 -member: cn=user0,ou=people,dc=example,dc=net -member: cn=user1,ou=people,dc=example,dc=net -member: cn=user2,ou=people,dc=example,dc=net -member: cn=user3,ou=people,dc=example,dc=net -member: cn=user4,ou=people,dc=example,dc=net -gidNumber: 90001 - -dn: cn=group2,ou=groups,dc=example,dc=net -objectClass: groupOfNames -objectClass: posixGroup -cn: group2 -member: cn=user0,ou=people,dc=example,dc=net -member: cn=user1,ou=people,dc=example,dc=net -member: cn=user2,ou=people,dc=example,dc=net -member: cn=user3,ou=people,dc=example,dc=net -member: cn=user4,ou=people,dc=example,dc=net -gidNumber: 90002 - -dn: cn=group3,ou=groups,dc=example,dc=net -objectClass: groupOfNames -objectClass: posixGroup -cn: group3 -member: cn=user0,ou=people,dc=example,dc=net -member: cn=user1,ou=people,dc=example,dc=net -member: cn=user2,ou=people,dc=example,dc=net -member: cn=user3,ou=people,dc=example,dc=net -member: cn=user4,ou=people,dc=example,dc=net -gidNumber: 90003 - -dn: cn=group4,ou=groups,dc=example,dc=net -objectClass: groupOfNames -objectClass: posixGroup -cn: group4 -member: cn=user0,ou=people,dc=example,dc=net -member: cn=user1,ou=people,dc=example,dc=net -member: cn=user2,ou=people,dc=example,dc=net -member: cn=user3,ou=people,dc=example,dc=net -member: cn=user4,ou=people,dc=example,dc=net -gidNumber: 90004 diff --git a/dirsrvtests/tests/data/openldap_2_389/setup/slapd.ldif b/dirsrvtests/tests/data/openldap_2_389/setup/slapd.ldif deleted file mode 100644 index 45a7b08..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/setup/slapd.ldif +++ /dev/null @@ -1,146 +0,0 @@ -# -# See slapd-config(5) for details on configuration options. -# This file should NOT be world readable. -# -dn: cn=config -objectClass: olcGlobal -cn: config -# -# -# Define global ACLs to disable default read access. -# -olcArgsFile: /var/run/slapd.args -olcPidFile: /var/run/slapd.pid -# -# Do not enable referrals until AFTER you have a working directory -# service AND an understanding of referrals. -#olcReferral: ldap://root.openldap.org -# -# Sample security restrictions -# Require integrity protection (prevent hijacking) -# Require 112-bit (3DES or better) encryption for updates -# Require 64-bit encryption for simple bind -#olcSecurity: ssf=1 update_ssf=112 simple_bind=64 - - -# -# Load dynamic backend modules: -# -dn: cn=module,cn=config -objectClass: olcModuleList -cn: module -#olcModulepath: %MODULEDIR% -olcModuleload: back_mdb.la -olcModuleload: memberof.la -olcModuleload: refint.la -olcModuleload: unique.la -#olcModuleload: back_ldap.la -#olcModuleload: back_passwd.la -#olcModuleload: back_shell.la - - -dn: cn=schema,cn=config -objectClass: olcSchemaConfig -cn: schema - -include: file:///etc/openldap/schema/core.ldif -include: file:///etc/openldap/schema/cosine.ldif -include: file:///etc/openldap/schema/inetorgperson.ldif -include: file:///etc/openldap/schema/rfc2307bis.ldif -include: file:///etc/openldap/schema/yast.ldif - - -# Frontend settings -# -dn: olcDatabase=frontend,cn=config -objectClass: olcDatabaseConfig -objectClass: olcFrontendConfig -olcDatabase: frontend -# -# Sample global access control policy: -# Root DSE: allow anyone to read it -# Subschema (sub)entry DSE: allow anyone to read it -# Other DSEs: -# Allow self write access -# Allow authenticated users read access -# Allow anonymous users to authenticate -# -olcAccess: to dn.base="" by * read -olcAccess: to dn.base="cn=Subschema" by * read -#olcAccess: to * -# by self write -# by users read -# by anonymous auth -# -# if no access controls are present, the default policy -# allows anyone and everyone to read anything but restricts -# updates to rootdn. (e.g., "access to * by * read") -# -# rootdn can always read and write EVERYTHING! -# - - -####################################################################### -# LMDB database definitions -####################################################################### -# -dn: olcDatabase={1}mdb,cn=config -objectClass: olcDatabaseConfig -objectClass: olcMdbConfig -olcDatabase: mdb -olcSuffix: dc=example,dc=com -olcRootDN: cn=Manager,dc=example,dc=com -# Cleartext passwords, especially for the rootdn, should -# be avoided. See slappasswd(8) and slapd-config(5) for details. -# Use of strong authentication encouraged. -olcRootPW: secret -# The database directory MUST exist prior to running slapd AND -# should only be accessible by the slapd and slap tools. -# Mode 700 recommended. -olcDbDirectory: /var/lib/ldap/example_com -# Indices to maintain -olcDbIndex: objectClass eq - -dn: olcOverlay=memberof,olcDatabase={1}mdb,cn=config -objectClass: olcOverlayConfig -objectClass: olcMemberOf -olcOverlay: memberof -olcMemberOfRefint: TRUE - -dn: olcOverlay=refint,olcDatabase={1}mdb,cn=config -objectClass: olcOverlayConfig -objectClass: olcRefintConfig -olcOverlay: refint -olcRefintAttribute: member -olcRefintAttribute: memberOf - -dn: olcOverlay=unique,olcDatabase={1}mdb,cn=config -objectClass: olcOverlayConfig -objectClass: olcUniqueConfig -olcOverlay: unique -olcUniqueURI: ldap:///?mail?sub -olcUniqueURI: ldap:///?uid?sub - -dn: olcDatabase={2}mdb,cn=config -objectClass: olcDatabaseConfig -objectClass: olcMdbConfig -olcDatabase: mdb -olcSuffix: dc=example,dc=net -olcRootDN: cn=Manager,dc=example,dc=net -olcRootPW: secret -olcDbDirectory: /var/lib/ldap/example_net -olcDbIndex: objectClass eq - -dn: olcOverlay=memberof,olcDatabase={2}mdb,cn=config -objectClass: olcOverlayConfig -objectClass: olcMemberOf -olcOverlay: memberof -olcMemberOfRefint: TRUE - -dn: olcOverlay=unique,olcDatabase={2}mdb,cn=config -objectClass: olcOverlayConfig -objectClass: olcUniqueConfig -olcOverlay: unique -olcUniqueURI: ldap:///?mail?sub -olcUniqueURI: ldap:///?uid?sub - diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config.ldif deleted file mode 100644 index 1ff7282..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config.ldif +++ /dev/null @@ -1,14 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 6905879f -dn: cn=config -objectClass: olcGlobal -cn: config -olcArgsFile: /var/run/slapd.args -olcPidFile: /var/run/slapd.pid -structuralObjectClass: olcGlobal -entryUUID: 4019c5a8-eaf5-1039-865e-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.082506Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=module{0}.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=module{0}.ldif deleted file mode 100644 index 0e635ff..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=module{0}.ldif +++ /dev/null @@ -1,16 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 9b38b059 -dn: cn=module{0} -objectClass: olcModuleList -cn: module{0} -olcModuleLoad: {0}back_mdb.la -olcModuleLoad: {1}memberof.la -olcModuleLoad: {2}refint.la -olcModuleLoad: {3}unique.la -structuralObjectClass: olcModuleList -entryUUID: 4019cc88-eaf5-1039-865f-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.082706Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema.ldif deleted file mode 100644 index 7840625..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema.ldif +++ /dev/null @@ -1,12 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 095fcaec -dn: cn=schema -objectClass: olcSchemaConfig -cn: schema -structuralObjectClass: olcSchemaConfig -entryUUID: 4019e6aa-eaf5-1039-8660-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.083375Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={0}core.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={0}core.ldif deleted file mode 100644 index abdfaa7..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={0}core.ldif +++ /dev/null @@ -1,249 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 31e6d4be -dn: cn={0}core -objectClass: olcSchemaConfig -cn: {0}core -olcAttributeTypes: {0}( 2.5.4.2 NAME 'knowledgeInformation' DESC 'RFC2256: k - nowledge information' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115. - 121.1.15{32768} ) -olcAttributeTypes: {1}( 2.5.4.4 NAME ( 'sn' 'surname' ) DESC 'RFC2256: last - (family) name(s) for which the entity is known by' SUP name ) -olcAttributeTypes: {2}( 2.5.4.5 NAME 'serialNumber' DESC 'RFC2256: serial nu - mber of the entity' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMat - ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{64} ) -olcAttributeTypes: {3}( 2.5.4.6 NAME ( 'c' 'countryName' ) DESC 'RFC4519: tw - o-letter ISO-3166 country code' SUP name SYNTAX 1.3.6.1.4.1.1466.115.121.1. - 11 SINGLE-VALUE ) -olcAttributeTypes: {4}( 2.5.4.7 NAME ( 'l' 'localityName' ) DESC 'RFC2256: l - ocality which this object resides in' SUP name ) -olcAttributeTypes: {5}( 2.5.4.8 NAME ( 'st' 'stateOrProvinceName' ) DESC 'RF - C2256: state or province which this object resides in' SUP name ) -olcAttributeTypes: {6}( 2.5.4.9 NAME ( 'street' 'streetAddress' ) DESC 'RFC2 - 256: street address of this object' EQUALITY caseIgnoreMatch SUBSTR caseIgn - oreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) -olcAttributeTypes: {7}( 2.5.4.10 NAME ( 'o' 'organizationName' ) DESC 'RFC22 - 56: organization this object belongs to' SUP name ) -olcAttributeTypes: {8}( 2.5.4.11 NAME ( 'ou' 'organizationalUnitName' ) DESC - 'RFC2256: organizational unit this object belongs to' SUP name ) -olcAttributeTypes: {9}( 2.5.4.12 NAME 'title' DESC 'RFC2256: title associate - d with the entity' SUP name ) -olcAttributeTypes: {10}( 2.5.4.14 NAME 'searchGuide' DESC 'RFC2256: search g - uide, deprecated by enhancedSearchGuide' SYNTAX 1.3.6.1.4.1.1466.115.121.1. - 25 ) -olcAttributeTypes: {11}( 2.5.4.15 NAME 'businessCategory' DESC 'RFC2256: bus - iness category' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch S - YNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) -olcAttributeTypes: {12}( 2.5.4.16 NAME 'postalAddress' DESC 'RFC2256: postal - address' EQUALITY caseIgnoreListMatch SUBSTR caseIgnoreListSubstringsMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 ) -olcAttributeTypes: {13}( 2.5.4.17 NAME 'postalCode' DESC 'RFC2256: postal co - de' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6. - 1.4.1.1466.115.121.1.15{40} ) -olcAttributeTypes: {14}( 2.5.4.18 NAME 'postOfficeBox' DESC 'RFC2256: Post O - ffice Box' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX - 1.3.6.1.4.1.1466.115.121.1.15{40} ) -olcAttributeTypes: {15}( 2.5.4.19 NAME 'physicalDeliveryOfficeName' DESC 'RF - C2256: Physical Delivery Office Name' EQUALITY caseIgnoreMatch SUBSTR caseI - gnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} ) -olcAttributeTypes: {16}( 2.5.4.20 NAME 'telephoneNumber' DESC 'RFC2256: Tele - phone Number' EQUALITY telephoneNumberMatch SUBSTR telephoneNumberSubstring - sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.50{32} ) -olcAttributeTypes: {17}( 2.5.4.21 NAME 'telexNumber' DESC 'RFC2256: Telex Nu - mber' SYNTAX 1.3.6.1.4.1.1466.115.121.1.52 ) -olcAttributeTypes: {18}( 2.5.4.22 NAME 'teletexTerminalIdentifier' DESC 'RFC - 2256: Teletex Terminal Identifier' SYNTAX 1.3.6.1.4.1.1466.115.121.1.51 ) -olcAttributeTypes: {19}( 2.5.4.23 NAME ( 'facsimileTelephoneNumber' 'fax' ) - DESC 'RFC2256: Facsimile (Fax) Telephone Number' SYNTAX 1.3.6.1.4.1.1466.11 - 5.121.1.22 ) -olcAttributeTypes: {20}( 2.5.4.24 NAME 'x121Address' DESC 'RFC2256: X.121 Ad - dress' EQUALITY numericStringMatch SUBSTR numericStringSubstringsMatch SYNT - AX 1.3.6.1.4.1.1466.115.121.1.36{15} ) -olcAttributeTypes: {21}( 2.5.4.25 NAME 'internationaliSDNNumber' DESC 'RFC22 - 56: international ISDN number' EQUALITY numericStringMatch SUBSTR numericSt - ringSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{16} ) -olcAttributeTypes: {22}( 2.5.4.26 NAME 'registeredAddress' DESC 'RFC2256: re - gistered postal address' SUP postalAddress SYNTAX 1.3.6.1.4.1.1466.115.121. - 1.41 ) -olcAttributeTypes: {23}( 2.5.4.27 NAME 'destinationIndicator' DESC 'RFC2256: - destination indicator' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstring - sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{128} ) -olcAttributeTypes: {24}( 2.5.4.28 NAME 'preferredDeliveryMethod' DESC 'RFC22 - 56: preferred delivery method' SYNTAX 1.3.6.1.4.1.1466.115.121.1.14 SINGLE- - VALUE ) -olcAttributeTypes: {25}( 2.5.4.29 NAME 'presentationAddress' DESC 'RFC2256: - presentation address' EQUALITY presentationAddressMatch SYNTAX 1.3.6.1.4.1. - 1466.115.121.1.43 SINGLE-VALUE ) -olcAttributeTypes: {26}( 2.5.4.30 NAME 'supportedApplicationContext' DESC 'R - FC2256: supported application context' EQUALITY objectIdentifierMatch SYNTA - X 1.3.6.1.4.1.1466.115.121.1.38 ) -olcAttributeTypes: {27}( 2.5.4.31 NAME 'member' DESC 'RFC2256: member of a g - roup' SUP distinguishedName ) -olcAttributeTypes: {28}( 2.5.4.32 NAME 'owner' DESC 'RFC2256: owner (of the - object)' SUP distinguishedName ) -olcAttributeTypes: {29}( 2.5.4.33 NAME 'roleOccupant' DESC 'RFC2256: occupan - t of role' SUP distinguishedName ) -olcAttributeTypes: {30}( 2.5.4.36 NAME 'userCertificate' DESC 'RFC2256: X.50 - 9 user certificate, use ;binary' EQUALITY certificateExactMatch SYNTAX 1.3. - 6.1.4.1.1466.115.121.1.8 ) -olcAttributeTypes: {31}( 2.5.4.37 NAME 'cACertificate' DESC 'RFC2256: X.509 - CA certificate, use ;binary' EQUALITY certificateExactMatch SYNTAX 1.3.6.1. - 4.1.1466.115.121.1.8 ) -olcAttributeTypes: {32}( 2.5.4.38 NAME 'authorityRevocationList' DESC 'RFC22 - 56: X.509 authority revocation list, use ;binary' SYNTAX 1.3.6.1.4.1.1466.1 - 15.121.1.9 ) -olcAttributeTypes: {33}( 2.5.4.39 NAME 'certificateRevocationList' DESC 'RFC - 2256: X.509 certificate revocation list, use ;binary' SYNTAX 1.3.6.1.4.1.14 - 66.115.121.1.9 ) -olcAttributeTypes: {34}( 2.5.4.40 NAME 'crossCertificatePair' DESC 'RFC2256: - X.509 cross certificate pair, use ;binary' SYNTAX 1.3.6.1.4.1.1466.115.121 - .1.10 ) -olcAttributeTypes: {35}( 2.5.4.42 NAME ( 'givenName' 'gn' ) DESC 'RFC2256: f - irst name(s) for which the entity is known by' SUP name ) -olcAttributeTypes: {36}( 2.5.4.43 NAME 'initials' DESC 'RFC2256: initials of - some or all of names, but not the surname(s).' SUP name ) -olcAttributeTypes: {37}( 2.5.4.44 NAME 'generationQualifier' DESC 'RFC2256: - name qualifier indicating a generation' SUP name ) -olcAttributeTypes: {38}( 2.5.4.45 NAME 'x500UniqueIdentifier' DESC 'RFC2256: - X.500 unique identifier' EQUALITY bitStringMatch SYNTAX 1.3.6.1.4.1.1466.1 - 15.121.1.6 ) -olcAttributeTypes: {39}( 2.5.4.46 NAME 'dnQualifier' DESC 'RFC2256: DN quali - fier' EQUALITY caseIgnoreMatch ORDERING caseIgnoreOrderingMatch SUBSTR case - IgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 ) -olcAttributeTypes: {40}( 2.5.4.47 NAME 'enhancedSearchGuide' DESC 'RFC2256: - enhanced search guide' SYNTAX 1.3.6.1.4.1.1466.115.121.1.21 ) -olcAttributeTypes: {41}( 2.5.4.48 NAME 'protocolInformation' DESC 'RFC2256: - protocol information' EQUALITY protocolInformationMatch SYNTAX 1.3.6.1.4.1. - 1466.115.121.1.42 ) -olcAttributeTypes: {42}( 2.5.4.50 NAME 'uniqueMember' DESC 'RFC2256: unique - member of a group' EQUALITY uniqueMemberMatch SYNTAX 1.3.6.1.4.1.1466.115.1 - 21.1.34 ) -olcAttributeTypes: {43}( 2.5.4.51 NAME 'houseIdentifier' DESC 'RFC2256: hous - e identifier' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYN - TAX 1.3.6.1.4.1.1466.115.121.1.15{32768} ) -olcAttributeTypes: {44}( 2.5.4.52 NAME 'supportedAlgorithms' DESC 'RFC2256: - supported algorithms' SYNTAX 1.3.6.1.4.1.1466.115.121.1.49 ) -olcAttributeTypes: {45}( 2.5.4.53 NAME 'deltaRevocationList' DESC 'RFC2256: - delta revocation list; use ;binary' SYNTAX 1.3.6.1.4.1.1466.115.121.1.9 ) -olcAttributeTypes: {46}( 2.5.4.54 NAME 'dmdName' DESC 'RFC2256: name of DMD' - SUP name ) -olcAttributeTypes: {47}( 2.5.4.65 NAME 'pseudonym' DESC 'X.520(4th): pseudon - ym for the object' SUP name ) -olcAttributeTypes: {48}( 0.9.2342.19200300.100.1.3 NAME ( 'mail' 'rfc822Mail - box' ) DESC 'RFC1274: RFC822 Mailbox' EQUALITY caseIgnoreIA5Match SUBST - R caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} - ) -olcAttributeTypes: {49}( 0.9.2342.19200300.100.1.25 NAME ( 'dc' 'domainCompo - nent' ) DESC 'RFC1274/2247: domain component' EQUALITY caseIgnoreIA5Match S - UBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SIN - GLE-VALUE ) -olcAttributeTypes: {50}( 0.9.2342.19200300.100.1.37 NAME 'associatedDomain' - DESC 'RFC1274: domain associated with object' EQUALITY caseIgnoreIA5Match S - UBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) -olcAttributeTypes: {51}( 1.2.840.113549.1.9.1 NAME ( 'email' 'emailAddress' - 'pkcs9email' ) DESC 'RFC3280: legacy attribute for email addresses in DNs' - EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3. - 6.1.4.1.1466.115.121.1.26{128} ) -olcObjectClasses: {0}( 2.5.6.2 NAME 'country' DESC 'RFC2256: a country' SUP - top STRUCTURAL MUST c MAY ( searchGuide $ description ) ) -olcObjectClasses: {1}( 2.5.6.3 NAME 'locality' DESC 'RFC2256: a locality' SU - P top STRUCTURAL MAY ( street $ seeAlso $ searchGuide $ st $ l $ descriptio - n ) ) -olcObjectClasses: {2}( 2.5.6.4 NAME 'organization' DESC 'RFC2256: an organiz - ation' SUP top STRUCTURAL MUST o MAY ( userPassword $ searchGuide $ seeAlso - $ businessCategory $ x121Address $ registeredAddress $ destinationIndicato - r $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $ tel - ephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street - $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName - $ st $ l $ description ) ) -olcObjectClasses: {3}( 2.5.6.5 NAME 'organizationalUnit' DESC 'RFC2256: an o - rganizational unit' SUP top STRUCTURAL MUST ou MAY ( userPassword $ searchG - uide $ seeAlso $ businessCategory $ x121Address $ registeredAddress $ desti - nationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalId - entifier $ telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNu - mber $ street $ postOfficeBox $ postalCode $ postalAddress $ physicalDelive - ryOfficeName $ st $ l $ description ) ) -olcObjectClasses: {4}( 2.5.6.6 NAME 'person' DESC 'RFC2256: a person' SUP to - p STRUCTURAL MUST ( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAls - o $ description ) ) -olcObjectClasses: {5}( 2.5.6.7 NAME 'organizationalPerson' DESC 'RFC2256: an - organizational person' SUP person STRUCTURAL MAY ( title $ x121Address $ r - egisteredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNu - mber $ teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumbe - r $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $ posta - lAddress $ physicalDeliveryOfficeName $ ou $ st $ l ) ) -olcObjectClasses: {6}( 2.5.6.8 NAME 'organizationalRole' DESC 'RFC2256: an o - rganizational role' SUP top STRUCTURAL MUST cn MAY ( x121Address $ register - edAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ - teletexTerminalIdentifier $ telephoneNumber $ internationaliSDNNumber $ fac - simileTelephoneNumber $ seeAlso $ roleOccupant $ preferredDeliveryMethod $ - street $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOffic - eName $ ou $ st $ l $ description ) ) -olcObjectClasses: {7}( 2.5.6.9 NAME 'groupOfNames' DESC 'RFC2256: a group of - names (DNs)' SUP top STRUCTURAL MUST ( member $ cn ) MAY ( businessCategor - y $ seeAlso $ owner $ ou $ o $ description ) ) -olcObjectClasses: {8}( 2.5.6.10 NAME 'residentialPerson' DESC 'RFC2256: an r - esidential person' SUP person STRUCTURAL MUST l MAY ( businessCategory $ x1 - 21Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMet - hod $ telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internati - onaliSDNNumber $ facsimileTelephoneNumber $ preferredDeliveryMethod $ stree - t $ postOfficeBox $ postalCode $ postalAddress $ physicalDeliveryOfficeName - $ st $ l ) ) -olcObjectClasses: {9}( 2.5.6.11 NAME 'applicationProcess' DESC 'RFC2256: an - application process' SUP top STRUCTURAL MUST cn MAY ( seeAlso $ ou $ l $ de - scription ) ) -olcObjectClasses: {10}( 2.5.6.12 NAME 'applicationEntity' DESC 'RFC2256: an - application entity' SUP top STRUCTURAL MUST ( presentationAddress $ cn ) MA - Y ( supportedApplicationContext $ seeAlso $ ou $ o $ l $ description ) ) -olcObjectClasses: {11}( 2.5.6.13 NAME 'dSA' DESC 'RFC2256: a directory syste - m agent (a server)' SUP applicationEntity STRUCTURAL MAY knowledgeInformati - on ) -olcObjectClasses: {12}( 2.5.6.14 NAME 'device' DESC 'RFC2256: a device' SUP - top STRUCTURAL MUST cn MAY ( serialNumber $ seeAlso $ owner $ ou $ o $ l $ - description ) ) -olcObjectClasses: {13}( 2.5.6.15 NAME 'strongAuthenticationUser' DESC 'RFC22 - 56: a strong authentication user' SUP top AUXILIARY MUST userCertificate ) -olcObjectClasses: {14}( 2.5.6.16 NAME 'certificationAuthority' DESC 'RFC2256 - : a certificate authority' SUP top AUXILIARY MUST ( authorityRevocationList - $ certificateRevocationList $ cACertificate ) MAY crossCertificatePair ) -olcObjectClasses: {15}( 2.5.6.17 NAME 'groupOfUniqueNames' DESC 'RFC2256: a - group of unique names (DN and Unique Identifier)' SUP top STRUCTURAL MUST ( - uniqueMember $ cn ) MAY ( businessCategory $ seeAlso $ owner $ ou $ o $ de - scription ) ) -olcObjectClasses: {16}( 2.5.6.18 NAME 'userSecurityInformation' DESC 'RFC225 - 6: a user security information' SUP top AUXILIARY MAY ( supportedAlgorithms - ) ) -olcObjectClasses: {17}( 2.5.6.16.2 NAME 'certificationAuthority-V2' SUP cert - ificationAuthority AUXILIARY MAY ( deltaRevocationList ) ) -olcObjectClasses: {18}( 2.5.6.19 NAME 'cRLDistributionPoint' SUP top STRUCTU - RAL MUST ( cn ) MAY ( certificateRevocationList $ authorityRevocationList $ - deltaRevocationList ) ) -olcObjectClasses: {19}( 2.5.6.20 NAME 'dmd' SUP top STRUCTURAL MUST ( dmdNam - e ) MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $ x121Add - ress $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ - telexNumber $ teletexTerminalIdentifier $ telephoneNumber $ internationali - SDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode - $ postalAddress $ physicalDeliveryOfficeName $ st $ l $ description ) ) -olcObjectClasses: {20}( 2.5.6.21 NAME 'pkiUser' DESC 'RFC2587: a PKI user' S - UP top AUXILIARY MAY userCertificate ) -olcObjectClasses: {21}( 2.5.6.22 NAME 'pkiCA' DESC 'RFC2587: PKI certificate - authority' SUP top AUXILIARY MAY ( authorityRevocationList $ certificateRe - vocationList $ cACertificate $ crossCertificatePair ) ) -olcObjectClasses: {22}( 2.5.6.23 NAME 'deltaCRL' DESC 'RFC2587: PKI user' SU - P top AUXILIARY MAY deltaRevocationList ) -olcObjectClasses: {23}( 1.3.6.1.4.1.250.3.15 NAME 'labeledURIObject' DESC 'R - FC2079: object that contains the URI attribute type' MAY ( labeledURI ) SUP - top AUXILIARY ) -olcObjectClasses: {24}( 0.9.2342.19200300.100.4.19 NAME 'simpleSecurityObjec - t' DESC 'RFC1274: simple security object' SUP top AUXILIARY MUST userPasswo - rd ) -olcObjectClasses: {25}( 1.3.6.1.4.1.1466.344 NAME 'dcObject' DESC 'RFC2247: - domain component object' SUP top AUXILIARY MUST dc ) -olcObjectClasses: {26}( 1.3.6.1.1.3.1 NAME 'uidObject' DESC 'RFC2377: uid ob - ject' SUP top AUXILIARY MUST uid ) -structuralObjectClass: olcSchemaConfig -entryUUID: 4019f348-eaf5-1039-8661-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.083690Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif deleted file mode 100644 index bc17164..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={1}cosine.ldif +++ /dev/null @@ -1,178 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 4e3862ab -dn: cn={1}cosine -objectClass: olcSchemaConfig -cn: {1}cosine -olcAttributeTypes: {0}( 0.9.2342.19200300.100.1.2 NAME 'textEncodedORAddress - ' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1. - 4.1.1466.115.121.1.15{256} ) -olcAttributeTypes: {1}( 0.9.2342.19200300.100.1.4 NAME 'info' DESC 'RFC1274: - general information' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsM - atch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{2048} ) -olcAttributeTypes: {2}( 0.9.2342.19200300.100.1.5 NAME ( 'drink' 'favouriteD - rink' ) DESC 'RFC1274: favorite drink' EQUALITY caseIgnoreMatch SUBSTR case - IgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) -olcAttributeTypes: {3}( 0.9.2342.19200300.100.1.6 NAME 'roomNumber' DESC 'RF - C1274: room number' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMat - ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) -olcAttributeTypes: {4}( 0.9.2342.19200300.100.1.7 NAME 'photo' DESC 'RFC1274 - : photo (G3 fax)' SYNTAX 1.3.6.1.4.1.1466.115.121.1.23{25000} ) -olcAttributeTypes: {5}( 0.9.2342.19200300.100.1.8 NAME 'userClass' DESC 'RFC - 1274: category of user' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstring - sMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) -olcAttributeTypes: {6}( 0.9.2342.19200300.100.1.9 NAME 'host' DESC 'RFC1274: - host computer' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch S - YNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) -olcAttributeTypes: {7}( 0.9.2342.19200300.100.1.10 NAME 'manager' DESC 'RFC1 - 274: DN of manager' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466 - .115.121.1.12 ) -olcAttributeTypes: {8}( 0.9.2342.19200300.100.1.11 NAME 'documentIdentifier' - DESC 'RFC1274: unique identifier of document' EQUALITY caseIgnoreMatch SUB - STR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) -olcAttributeTypes: {9}( 0.9.2342.19200300.100.1.12 NAME 'documentTitle' DESC - 'RFC1274: title of document' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSub - stringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) -olcAttributeTypes: {10}( 0.9.2342.19200300.100.1.13 NAME 'documentVersion' D - ESC 'RFC1274: version of document' EQUALITY caseIgnoreMatch SUBSTR caseIgno - reSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) -olcAttributeTypes: {11}( 0.9.2342.19200300.100.1.14 NAME 'documentAuthor' DE - SC 'RFC1274: DN of author of document' EQUALITY distinguishedNameMatch SYNT - AX 1.3.6.1.4.1.1466.115.121.1.12 ) -olcAttributeTypes: {12}( 0.9.2342.19200300.100.1.15 NAME 'documentLocation' - DESC 'RFC1274: location of document original' EQUALITY caseIgnoreMatch SUBS - TR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) -olcAttributeTypes: {13}( 0.9.2342.19200300.100.1.20 NAME ( 'homePhone' 'home - TelephoneNumber' ) DESC 'RFC1274: home telephone number' EQUALITY telephone - NumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.1 - 15.121.1.50 ) -olcAttributeTypes: {14}( 0.9.2342.19200300.100.1.21 NAME 'secretary' DESC 'R - FC1274: DN of secretary' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1 - .1466.115.121.1.12 ) -olcAttributeTypes: {15}( 0.9.2342.19200300.100.1.22 NAME 'otherMailbox' SYNT - AX 1.3.6.1.4.1.1466.115.121.1.39 ) -olcAttributeTypes: {16}( 0.9.2342.19200300.100.1.26 NAME 'aRecord' EQUALITY - caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) -olcAttributeTypes: {17}( 0.9.2342.19200300.100.1.27 NAME 'mDRecord' EQUALITY - caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) -olcAttributeTypes: {18}( 0.9.2342.19200300.100.1.28 NAME 'mXRecord' EQUALITY - caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) -olcAttributeTypes: {19}( 0.9.2342.19200300.100.1.29 NAME 'nSRecord' EQUALITY - caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) -olcAttributeTypes: {20}( 0.9.2342.19200300.100.1.30 NAME 'sOARecord' EQUALIT - Y caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) -olcAttributeTypes: {21}( 0.9.2342.19200300.100.1.31 NAME 'cNAMERecord' EQUAL - ITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) -olcAttributeTypes: {22}( 0.9.2342.19200300.100.1.38 NAME 'associatedName' DE - SC 'RFC1274: DN of entry associated with domain' EQUALITY distinguishedName - Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) -olcAttributeTypes: {23}( 0.9.2342.19200300.100.1.39 NAME 'homePostalAddress' - DESC 'RFC1274: home postal address' EQUALITY caseIgnoreListMatch SUBSTR ca - seIgnoreListSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 ) -olcAttributeTypes: {24}( 0.9.2342.19200300.100.1.40 NAME 'personalTitle' DES - C 'RFC1274: personal title' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubst - ringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) -olcAttributeTypes: {25}( 0.9.2342.19200300.100.1.41 NAME ( 'mobile' 'mobileT - elephoneNumber' ) DESC 'RFC1274: mobile telephone number' EQUALITY telephon - eNumberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466. - 115.121.1.50 ) -olcAttributeTypes: {26}( 0.9.2342.19200300.100.1.42 NAME ( 'pager' 'pagerTel - ephoneNumber' ) DESC 'RFC1274: pager telephone number' EQUALITY telephoneNu - mberMatch SUBSTR telephoneNumberSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115 - .121.1.50 ) -olcAttributeTypes: {27}( 0.9.2342.19200300.100.1.43 NAME ( 'co' 'friendlyCou - ntryName' ) DESC 'RFC1274: friendly country name' EQUALITY caseIgnoreMatch - SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) -olcAttributeTypes: {28}( 0.9.2342.19200300.100.1.44 NAME 'uniqueIdentifier' - DESC 'RFC1274: unique identifer' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4. - 1.1466.115.121.1.15{256} ) -olcAttributeTypes: {29}( 0.9.2342.19200300.100.1.45 NAME 'organizationalStat - us' DESC 'RFC1274: organizational status' EQUALITY caseIgnoreMatch SUBSTR c - aseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) -olcAttributeTypes: {30}( 0.9.2342.19200300.100.1.46 NAME 'janetMailbox' DESC - 'RFC1274: Janet mailbox' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5S - ubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) -olcAttributeTypes: {31}( 0.9.2342.19200300.100.1.47 NAME 'mailPreferenceOpti - on' DESC 'RFC1274: mail preference option' SYNTAX 1.3.6.1.4.1.1466.115.121. - 1.27 ) -olcAttributeTypes: {32}( 0.9.2342.19200300.100.1.48 NAME 'buildingName' DESC - 'RFC1274: name of building' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubs - tringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} ) -olcAttributeTypes: {33}( 0.9.2342.19200300.100.1.49 NAME 'dSAQuality' DESC ' - RFC1274: DSA Quality' SYNTAX 1.3.6.1.4.1.1466.115.121.1.19 SINGLE-VALUE ) -olcAttributeTypes: {34}( 0.9.2342.19200300.100.1.50 NAME 'singleLevelQuality - ' DESC 'RFC1274: Single Level Quality' SYNTAX 1.3.6.1.4.1.1466.115.121.1.13 - SINGLE-VALUE ) -olcAttributeTypes: {35}( 0.9.2342.19200300.100.1.51 NAME 'subtreeMinimumQual - ity' DESC 'RFC1274: Subtree Mininum Quality' SYNTAX 1.3.6.1.4.1.1466.115.12 - 1.1.13 SINGLE-VALUE ) -olcAttributeTypes: {36}( 0.9.2342.19200300.100.1.52 NAME 'subtreeMaximumQual - ity' DESC 'RFC1274: Subtree Maximun Quality' SYNTAX 1.3.6.1.4.1.1466.115.12 - 1.1.13 SINGLE-VALUE ) -olcAttributeTypes: {37}( 0.9.2342.19200300.100.1.53 NAME 'personalSignature' - DESC 'RFC1274: Personal Signature (G3 fax)' SYNTAX 1.3.6.1.4.1.1466.115.12 - 1.1.23 ) -olcAttributeTypes: {38}( 0.9.2342.19200300.100.1.54 NAME 'dITRedirect' DESC - 'RFC1274: DIT Redirect' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1. - 1466.115.121.1.12 ) -olcAttributeTypes: {39}( 0.9.2342.19200300.100.1.55 NAME 'audio' DESC 'RFC12 - 74: audio (u-law)' SYNTAX 1.3.6.1.4.1.1466.115.121.1.4{25000} ) -olcAttributeTypes: {40}( 0.9.2342.19200300.100.1.56 NAME 'documentPublisher' - DESC 'RFC1274: publisher of document' EQUALITY caseIgnoreMatch SUBSTR case - IgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) -olcObjectClasses: {0}( 0.9.2342.19200300.100.4.4 NAME ( 'pilotPerson' 'newPi - lotPerson' ) SUP person STRUCTURAL MAY ( userid $ textEncodedORAddress $ rf - c822Mailbox $ favouriteDrink $ roomNumber $ userClass $ homeTelephoneNumber - $ homePostalAddress $ secretary $ personalTitle $ preferredDeliveryMethod - $ businessCategory $ janetMailbox $ otherMailbox $ mobileTelephoneNumber $ - pagerTelephoneNumber $ organizationalStatus $ mailPreferenceOption $ person - alSignature ) ) -olcObjectClasses: {1}( 0.9.2342.19200300.100.4.5 NAME 'account' SUP top STRU - CTURAL MUST userid MAY ( description $ seeAlso $ localityName $ organizatio - nName $ organizationalUnitName $ host ) ) -olcObjectClasses: {2}( 0.9.2342.19200300.100.4.6 NAME 'document' SUP top STR - UCTURAL MUST documentIdentifier MAY ( commonName $ description $ seeAlso $ - localityName $ organizationName $ organizationalUnitName $ documentTitle $ - documentVersion $ documentAuthor $ documentLocation $ documentPublisher ) ) -olcObjectClasses: {3}( 0.9.2342.19200300.100.4.7 NAME 'room' SUP top STRUCTU - RAL MUST commonName MAY ( roomNumber $ description $ seeAlso $ telephoneNum - ber ) ) -olcObjectClasses: {4}( 0.9.2342.19200300.100.4.9 NAME 'documentSeries' SUP t - op STRUCTURAL MUST commonName MAY ( description $ seeAlso $ telephonenumber - $ localityName $ organizationName $ organizationalUnitName ) ) -olcObjectClasses: {5}( 0.9.2342.19200300.100.4.13 NAME 'domain' SUP top STRU - CTURAL MUST domainComponent MAY ( associatedName $ organizationName $ descr - iption $ businessCategory $ seeAlso $ searchGuide $ userPassword $ locality - Name $ stateOrProvinceName $ streetAddress $ physicalDeliveryOfficeName $ p - ostalAddress $ postalCode $ postOfficeBox $ streetAddress $ facsimileTeleph - oneNumber $ internationalISDNNumber $ telephoneNumber $ teletexTerminalIden - tifier $ telexNumber $ preferredDeliveryMethod $ destinationIndicator $ reg - isteredAddress $ x121Address ) ) -olcObjectClasses: {6}( 0.9.2342.19200300.100.4.14 NAME 'RFC822localPart' SUP - domain STRUCTURAL MAY ( commonName $ surname $ description $ seeAlso $ tel - ephoneNumber $ physicalDeliveryOfficeName $ postalAddress $ postalCode $ po - stOfficeBox $ streetAddress $ facsimileTelephoneNumber $ internationalISDNN - umber $ telephoneNumber $ teletexTerminalIdentifier $ telexNumber $ preferr - edDeliveryMethod $ destinationIndicator $ registeredAddress $ x121Address ) - ) -olcObjectClasses: {7}( 0.9.2342.19200300.100.4.15 NAME 'dNSDomain' SUP domai - n STRUCTURAL MAY ( ARecord $ MDRecord $ MXRecord $ NSRecord $ SOARecord $ C - NAMERecord ) ) -olcObjectClasses: {8}( 0.9.2342.19200300.100.4.17 NAME 'domainRelatedObject' - DESC 'RFC1274: an object related to an domain' SUP top AUXILIARY MUST asso - ciatedDomain ) -olcObjectClasses: {9}( 0.9.2342.19200300.100.4.18 NAME 'friendlyCountry' SUP - country STRUCTURAL MUST friendlyCountryName ) -olcObjectClasses: {10}( 0.9.2342.19200300.100.4.20 NAME 'pilotOrganization' - SUP ( organization $ organizationalUnit ) STRUCTURAL MAY buildingName ) -olcObjectClasses: {11}( 0.9.2342.19200300.100.4.21 NAME 'pilotDSA' SUP dsa S - TRUCTURAL MAY dSAQuality ) -olcObjectClasses: {12}( 0.9.2342.19200300.100.4.22 NAME 'qualityLabelledData - ' SUP top AUXILIARY MUST dsaQuality MAY ( subtreeMinimumQuality $ subtreeMa - ximumQuality ) ) -structuralObjectClass: olcSchemaConfig -entryUUID: 401a0f9a-eaf5-1039-8662-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.084423Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={2}inetorgperson.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={2}inetorgperson.ldif deleted file mode 100644 index ecc4a56..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={2}inetorgperson.ldif +++ /dev/null @@ -1,49 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 2dfdddb6 -dn: cn={2}inetorgperson -objectClass: olcSchemaConfig -cn: {2}inetorgperson -olcAttributeTypes: {0}( 2.16.840.1.113730.3.1.1 NAME 'carLicense' DESC 'RFC2 - 798: vehicle license or registration plate' EQUALITY caseIgnoreMatch SUBSTR - caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) -olcAttributeTypes: {1}( 2.16.840.1.113730.3.1.2 NAME 'departmentNumber' DESC - 'RFC2798: identifies a department within an organization' EQUALITY caseIgn - oreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1 - .15 ) -olcAttributeTypes: {2}( 2.16.840.1.113730.3.1.241 NAME 'displayName' DESC 'R - FC2798: preferred name to be used when displaying entries' EQUALITY caseIgn - oreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1 - .15 SINGLE-VALUE ) -olcAttributeTypes: {3}( 2.16.840.1.113730.3.1.3 NAME 'employeeNumber' DESC ' - RFC2798: numerically identifies an employee within an organization' EQUALIT - Y caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466. - 115.121.1.15 SINGLE-VALUE ) -olcAttributeTypes: {4}( 2.16.840.1.113730.3.1.4 NAME 'employeeType' DESC 'RF - C2798: type of employment for a person' EQUALITY caseIgnoreMatch SUBSTR cas - eIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) -olcAttributeTypes: {5}( 0.9.2342.19200300.100.1.60 NAME 'jpegPhoto' DESC 'RF - C2798: a JPEG image' SYNTAX 1.3.6.1.4.1.1466.115.121.1.28 ) -olcAttributeTypes: {6}( 2.16.840.1.113730.3.1.39 NAME 'preferredLanguage' DE - SC 'RFC2798: preferred written or spoken language for a person' EQUALITY ca - seIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115. - 121.1.15 SINGLE-VALUE ) -olcAttributeTypes: {7}( 2.16.840.1.113730.3.1.40 NAME 'userSMIMECertificate' - DESC 'RFC2798: PKCS#7 SignedData used to support S/MIME' SYNTAX 1.3.6.1.4. - 1.1466.115.121.1.5 ) -olcAttributeTypes: {8}( 2.16.840.1.113730.3.1.216 NAME 'userPKCS12' DESC 'RF - C2798: personal identity information, a PKCS #12 PFX' SYNTAX 1.3.6.1.4.1.14 - 66.115.121.1.5 ) -olcObjectClasses: {0}( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' DESC 'RF - C2798: Internet Organizational Person' SUP organizationalPerson STRUCTURAL - MAY ( audio $ businessCategory $ carLicense $ departmentNumber $ displayNam - e $ employeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddre - ss $ initials $ jpegPhoto $ labeledURI $ mail $ manager $ mobile $ o $ page - r $ photo $ roomNumber $ secretary $ uid $ userCertificate $ x500uniqueIden - tifier $ preferredLanguage $ userSMIMECertificate $ userPKCS12 ) ) -structuralObjectClass: olcSchemaConfig -entryUUID: 401a225a-eaf5-1039-8663-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.084903Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={3}rfc2307bis.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={3}rfc2307bis.ldif deleted file mode 100644 index 57c8246..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={3}rfc2307bis.ldif +++ /dev/null @@ -1,155 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 dd0a742e -dn: cn={3}rfc2307bis -objectClass: olcSchemaConfig -cn: {3}rfc2307bis -olcAttributeTypes: {0}( 1.3.6.1.1.1.1.2 NAME 'gecos' DESC 'The GECOS field; - the common name' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5Substrings - Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) -olcAttributeTypes: {1}( 1.3.6.1.1.1.1.3 NAME 'homeDirectory' DESC 'The absol - ute path to the home directory' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4 - .1.1466.115.121.1.26 SINGLE-VALUE ) -olcAttributeTypes: {2}( 1.3.6.1.1.1.1.4 NAME 'loginShell' DESC 'The path to - the login shell' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121 - .1.26 SINGLE-VALUE ) -olcAttributeTypes: {3}( 1.3.6.1.1.1.1.5 NAME 'shadowLastChange' EQUALITY int - egerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) -olcAttributeTypes: {4}( 1.3.6.1.1.1.1.6 NAME 'shadowMin' EQUALITY integerMat - ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) -olcAttributeTypes: {5}( 1.3.6.1.1.1.1.7 NAME 'shadowMax' EQUALITY integerMat - ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) -olcAttributeTypes: {6}( 1.3.6.1.1.1.1.8 NAME 'shadowWarning' EQUALITY intege - rMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) -olcAttributeTypes: {7}( 1.3.6.1.1.1.1.9 NAME 'shadowInactive' EQUALITY integ - erMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) -olcAttributeTypes: {8}( 1.3.6.1.1.1.1.10 NAME 'shadowExpire' EQUALITY intege - rMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) -olcAttributeTypes: {9}( 1.3.6.1.1.1.1.11 NAME 'shadowFlag' EQUALITY integerM - atch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) -olcAttributeTypes: {10}( 1.3.6.1.1.1.1.12 NAME 'memberUid' EQUALITY caseExac - tIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) -olcAttributeTypes: {11}( 1.3.6.1.1.1.1.13 NAME 'memberNisNetgroup' EQUALITY - caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.146 - 6.115.121.1.26 ) -olcAttributeTypes: {12}( 1.3.6.1.1.1.1.14 NAME 'nisNetgroupTriple' DESC 'Net - group triple' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1 - .26 ) -olcAttributeTypes: {13}( 1.3.6.1.1.1.1.15 NAME 'ipServicePort' DESC 'Service - port number' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SI - NGLE-VALUE ) -olcAttributeTypes: {14}( 1.3.6.1.1.1.1.16 NAME 'ipServiceProtocol' DESC 'Ser - vice protocol name' SUP name ) -olcAttributeTypes: {15}( 1.3.6.1.1.1.1.17 NAME 'ipProtocolNumber' DESC 'IP p - rotocol number' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 - SINGLE-VALUE ) -olcAttributeTypes: {16}( 1.3.6.1.1.1.1.18 NAME 'oncRpcNumber' DESC 'ONC RPC - number' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-V - ALUE ) -olcAttributeTypes: {17}( 1.3.6.1.1.1.1.19 NAME 'ipHostNumber' DESC 'IPv4 add - resses as a dotted decimal omitting leading zeros or IPv6 addresses - as defined in RFC2373' SUP name ) -olcAttributeTypes: {18}( 1.3.6.1.1.1.1.20 NAME 'ipNetworkNumber' DESC 'IP ne - twork as a dotted decimal, eg. 192.168, omitting leading zeros' SUP - name SINGLE-VALUE ) -olcAttributeTypes: {19}( 1.3.6.1.1.1.1.21 NAME 'ipNetmaskNumber' DESC 'IP ne - tmask as a dotted decimal, eg. 255.255.255.0, omitting leading zeros - ' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-V - ALUE ) -olcAttributeTypes: {20}( 1.3.6.1.1.1.1.22 NAME 'macAddress' DESC 'MAC addres - s in maximal, colon separated hex notation, eg. 00:00:92:90:ee:e2' E - QUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) -olcAttributeTypes: {21}( 1.3.6.1.1.1.1.23 NAME 'bootParameter' DESC 'rpc.boo - tparamd parameter' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.1 - 21.1.26 ) -olcAttributeTypes: {22}( 1.3.6.1.1.1.1.24 NAME 'bootFile' DESC 'Boot image n - ame' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) -olcAttributeTypes: {23}( 1.3.6.1.1.1.1.26 NAME 'nisMapName' DESC 'Name of a - A generic NIS map' SUP name ) -olcAttributeTypes: {24}( 1.3.6.1.1.1.1.27 NAME 'nisMapEntry' DESC 'A generic - NIS entry' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch S - YNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) -olcAttributeTypes: {25}( 1.3.6.1.1.1.1.28 NAME 'nisPublicKey' DESC 'NIS publ - ic key' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SING - LE-VALUE ) -olcAttributeTypes: {26}( 1.3.6.1.1.1.1.29 NAME 'nisSecretKey' DESC 'NIS secr - et key' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SING - LE-VALUE ) -olcAttributeTypes: {27}( 1.3.6.1.1.1.1.30 NAME 'nisDomain' DESC 'NIS domain' - EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) -olcAttributeTypes: {28}( 1.3.6.1.1.1.1.31 NAME 'automountMapName' DESC 'auto - mount Map Name' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMat - ch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) -olcAttributeTypes: {29}( 1.3.6.1.1.1.1.32 NAME 'automountKey' DESC 'Automoun - t Key value' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) -olcAttributeTypes: {30}( 1.3.6.1.1.1.1.33 NAME 'automountInformation' DESC ' - Automount information' EQUALITY caseExactIA5Match SUBSTR caseExactIA5Substr - ingsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) -olcObjectClasses: {0}( 1.3.6.1.1.1.2.0 NAME 'posixAccount' DESC 'Abstraction - of an account with POSIX attributes' SUP top AUXILIARY MUST ( cn $ uid $ u - idNumber $ gidNumber $ homeDirectory ) MAY ( userPassword $ loginShell $ ge - cos $ description ) ) -olcObjectClasses: {1}( 1.3.6.1.1.1.2.1 NAME 'shadowAccount' DESC 'Additional - attributes for shadow passwords' SUP top AUXILIARY MUST uid MAY ( userPass - word $ description $ shadowLastChange $ shadowMin $ shadowMax $ shadowWarni - ng $ shadowInactive $ shadowExpire $ shadowFlag ) ) -olcObjectClasses: {2}( 1.3.6.1.1.1.2.2 NAME 'posixGroup' DESC 'Abstraction o - f a group of accounts' SUP top AUXILIARY MUST gidNumber MAY ( userPassword - $ memberUid $ description ) ) -olcObjectClasses: {3}( 1.3.6.1.1.1.2.3 NAME 'ipService' DESC 'Abstraction an - Internet Protocol service. Maps an IP port and protocol (such as tc - p or udp) to one or more names; the distinguished value of th - e cn attribute denotes the services canonical name' SUP top STRUCTUR - AL MUST ( cn $ ipServicePort $ ipServiceProtocol ) MAY description ) -olcObjectClasses: {4}( 1.3.6.1.1.1.2.4 NAME 'ipProtocol' DESC 'Abstraction o - f an IP protocol. Maps a protocol number to one or more names. The d - istinguished value of the cn attribute denotes the protocols canonic - al name' SUP top STRUCTURAL MUST ( cn $ ipProtocolNumber ) MAY description - ) -olcObjectClasses: {5}( 1.3.6.1.1.1.2.5 NAME 'oncRpc' DESC 'Abstraction of an - Open Network Computing (ONC) [RFC1057] Remote Procedure Call (RPC) b - inding. This class maps an ONC RPC number to a name. The distin - guished value of the cn attribute denotes the RPC services canonical - name' SUP top STRUCTURAL MUST ( cn $ oncRpcNumber ) MAY description ) -olcObjectClasses: {6}( 1.3.6.1.1.1.2.6 NAME 'ipHost' DESC 'Abstraction of a - host, an IP device. The distinguished value of the cn attribute deno - tes the hosts canonical name. Device SHOULD be used as a structural - class' SUP top AUXILIARY MUST ( cn $ ipHostNumber ) MAY ( userPassword $ l - $ description $ manager ) ) -olcObjectClasses: {7}( 1.3.6.1.1.1.2.7 NAME 'ipNetwork' DESC 'Abstraction of - a network. The distinguished value of the cn attribute denotes the - networks canonical name' SUP top STRUCTURAL MUST ipNetworkNumber MAY ( cn $ - ipNetmaskNumber $ l $ description $ manager ) ) -olcObjectClasses: {8}( 1.3.6.1.1.1.2.8 NAME 'nisNetgroup' DESC 'Abstraction - of a netgroup. May refer to other netgroups' SUP top STRUCTURAL MUST cn MAY - ( nisNetgroupTriple $ memberNisNetgroup $ description ) ) -olcObjectClasses: {9}( 1.3.6.1.1.1.2.9 NAME 'nisMap' DESC 'A generic abstrac - tion of a NIS map' SUP top STRUCTURAL MUST nisMapName MAY description ) -olcObjectClasses: {10}( 1.3.6.1.1.1.2.10 NAME 'nisObject' DESC 'An entry in - a NIS map' SUP top STRUCTURAL MUST ( cn $ nisMapEntry $ nisMapName ) MAY de - scription ) -olcObjectClasses: {11}( 1.3.6.1.1.1.2.11 NAME 'ieee802Device' DESC 'A device - with a MAC address; device SHOULD be used as a structural class' SU - P top AUXILIARY MAY macAddress ) -olcObjectClasses: {12}( 1.3.6.1.1.1.2.12 NAME 'bootableDevice' DESC 'A devic - e with boot parameters; device SHOULD be used as a structural class' - SUP top AUXILIARY MAY ( bootFile $ bootParameter ) ) -olcObjectClasses: {13}( 1.3.6.1.1.1.2.14 NAME 'nisKeyObject' DESC 'An object - with a public and secret key' SUP top AUXILIARY MUST ( cn $ nisPublicKey $ - nisSecretKey ) MAY ( uidNumber $ description ) ) -olcObjectClasses: {14}( 1.3.6.1.1.1.2.15 NAME 'nisDomainObject' DESC 'Associ - ates a NIS domain with a naming context' SUP top AUXILIARY MUST nisDomain ) -olcObjectClasses: {15}( 1.3.6.1.1.1.2.16 NAME 'automountMap' SUP top STRUCTU - RAL MUST automountMapName MAY description ) -olcObjectClasses: {16}( 1.3.6.1.1.1.2.17 NAME 'automount' DESC 'Automount in - formation' SUP top STRUCTURAL MUST ( automountKey $ automountInformation ) - MAY description ) -olcObjectClasses: {17}( 1.3.6.1.4.1.5322.13.1.1 NAME 'namedObject' SUP top S - TRUCTURAL MAY cn ) -structuralObjectClass: olcSchemaConfig -entryUUID: 401a2e6c-eaf5-1039-8664-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.085186Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={4}yast.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={4}yast.ldif deleted file mode 100644 index 0fe0f06..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/cn=schema/cn={4}yast.ldif +++ /dev/null @@ -1,108 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 442e4b40 -dn: cn={4}yast -objectClass: olcSchemaConfig -cn: {4}yast -olcObjectIdentifier: {0}SUSE 1.3.6.1.4.1.7057 -olcObjectIdentifier: {1}SUSE.YaST SUSE:10.1 -olcObjectIdentifier: {2}SUSE.YaST.ModuleConfig SUSE:10.1.2 -olcObjectIdentifier: {3}SUSE.YaST.ModuleConfig.OC SUSE.YaST.ModuleConfig:1 -olcObjectIdentifier: {4}SUSE.YaST.ModuleConfig.Attr SUSE.YaST.ModuleConfig:2 -olcAttributeTypes: {0}( SUSE.YaST.ModuleConfig.Attr:2 NAME 'suseDefaultBase' - DESC 'Base DN where new Objects should be created by default' EQUALITY dis - tinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) -olcAttributeTypes: {1}( SUSE.YaST.ModuleConfig.Attr:3 NAME 'suseNextUniqueId - ' DESC 'Next unused unique ID, can be used to generate directory wide uniqe - IDs' EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4. - 1.1466.115.121.1.27 SINGLE-VALUE ) -olcAttributeTypes: {2}( SUSE.YaST.ModuleConfig.Attr:4 NAME 'suseMinUniqueId' - DESC 'lower Border for Unique IDs' EQUALITY integerMatch ORDERING integerO - rderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) -olcAttributeTypes: {3}( SUSE.YaST.ModuleConfig.Attr:5 NAME 'suseMaxUniqueId' - DESC 'upper Border for Unique IDs' EQUALITY integerMatch ORDERING integerO - rderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) -olcAttributeTypes: {4}( SUSE.YaST.ModuleConfig.Attr:6 NAME 'suseDefaultTempl - ate' DESC 'The DN of a template that should be used by default' EQUALITY di - stinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) -olcAttributeTypes: {5}( SUSE.YaST.ModuleConfig.Attr:7 NAME 'suseSearchFilter - ' DESC 'Search filter to localize Objects' SYNTAX 1.3.6.1.4.1.1466.115.121. - 1.15 SINGLE-VALUE ) -olcAttributeTypes: {6}( SUSE.YaST.ModuleConfig.Attr:11 NAME 'suseDefaultValu - e' DESC 'an Attribute-Value-Assertions to define defaults for specific Attr - ibutes' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) -olcAttributeTypes: {7}( SUSE.YaST.ModuleConfig.Attr:12 NAME 'suseNamingAttri - bute' DESC 'AttributeType that should be used as the RDN' EQUALITY caseIgno - reIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) -olcAttributeTypes: {8}( SUSE.YaST.ModuleConfig.Attr:15 NAME 'suseSecondaryGr - oup' DESC 'seconday group DN' EQUALITY distinguishedNameMatch SYNTAX 1.3.6. - 1.4.1.1466.115.121.1.12 ) -olcAttributeTypes: {9}( SUSE.YaST.ModuleConfig.Attr:16 NAME 'suseMinPassword - Length' DESC 'minimum Password length for new users' EQUALITY integerMatch - ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-V - ALUE ) -olcAttributeTypes: {10}( SUSE.YaST.ModuleConfig.Attr:17 NAME 'suseMaxPasswor - dLength' DESC 'maximum Password length for new users' EQUALITY integerMatch - ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE- - VALUE ) -olcAttributeTypes: {11}( SUSE.YaST.ModuleConfig.Attr:18 NAME 'susePasswordHa - sh' DESC 'Hash method to use for new users' EQUALITY caseIgnoreIA5Match SYN - TAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) -olcAttributeTypes: {12}( SUSE.YaST.ModuleConfig.Attr:19 NAME 'suseSkelDir' D - ESC '' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) -olcAttributeTypes: {13}( SUSE.YaST.ModuleConfig.Attr:20 NAME 'susePlugin' DE - SC 'plugin to use upon user/ group creation' EQUALITY caseIgnoreMatch SYNTA - X 1.3.6.1.4.1.1466.115.121.1.15 ) -olcAttributeTypes: {14}( SUSE.YaST.ModuleConfig.Attr:21 NAME 'suseMapAttribu - te' DESC '' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) -olcAttributeTypes: {15}( SUSE.YaST.ModuleConfig.Attr:22 NAME 'suseImapServer - ' DESC '' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SIN - GLE-VALUE ) -olcAttributeTypes: {16}( SUSE.YaST.ModuleConfig.Attr:23 NAME 'suseImapAdmin' - DESC '' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SING - LE-VALUE ) -olcAttributeTypes: {17}( SUSE.YaST.ModuleConfig.Attr:24 NAME 'suseImapDefaul - tQuota' DESC '' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 - SINGLE-VALUE ) -olcAttributeTypes: {18}( SUSE.YaST.ModuleConfig.Attr:25 NAME 'suseImapUseSsl - ' DESC '' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE- - VALUE ) -olcObjectClasses: {0}( SUSE.YaST.ModuleConfig.OC:2 NAME 'suseModuleConfigura - tion' DESC 'Contains configuration of Management Modules' SUP top STRUCTURA - L MUST cn MAY suseDefaultBase ) -olcObjectClasses: {1}( SUSE.YaST.ModuleConfig.OC:3 NAME 'suseUserConfigurati - on' DESC 'Configuration of user management tools' SUP suseModuleConfigurati - on STRUCTURAL MAY ( suseMinPasswordLength $ suseMaxPasswordLength $ susePas - swordHash $ suseSkelDir $ suseNextUniqueId $ suseMinUniqueId $ suseMaxUniqu - eId $ suseDefaultTemplate $ suseSearchFilter $ suseMapAttribute ) ) -olcObjectClasses: {2}( SUSE.YaST.ModuleConfig.OC:4 NAME 'suseObjectTemplate' - DESC 'Base Class for Object-Templates' SUP top STRUCTURAL MUST cn MAY ( su - sePlugin $ suseDefaultValue $ suseNamingAttribute ) ) -olcObjectClasses: {3}( SUSE.YaST.ModuleConfig.OC:5 NAME 'suseUserTemplate' D - ESC 'User object template' SUP suseObjectTemplate STRUCTURAL MUST cn MAY su - seSecondaryGroup ) -olcObjectClasses: {4}( SUSE.YaST.ModuleConfig.OC:6 NAME 'suseGroupTemplate' - DESC 'Group object template' SUP suseObjectTemplate STRUCTURAL MUST cn ) -olcObjectClasses: {5}( SUSE.YaST.ModuleConfig.OC:7 NAME 'suseGroupConfigurat - ion' DESC 'Configuration of user management tools' SUP suseModuleConfigurat - ion STRUCTURAL MAY ( suseNextUniqueId $ suseMinUniqueId $ suseMaxUniqueId $ - suseDefaultTemplate $ suseSearchFilter $ suseMapAttribute ) ) -olcObjectClasses: {6}( SUSE.YaST.ModuleConfig.OC:8 NAME 'suseCaConfiguration - ' DESC 'Configuration of CA management tools' SUP suseModuleConfiguration S - TRUCTURAL ) -olcObjectClasses: {7}( SUSE.YaST.ModuleConfig.OC:9 NAME 'suseDnsConfiguratio - n' DESC 'Configuration of mail server management tools' SUP suseModuleConfi - guration STRUCTURAL ) -olcObjectClasses: {8}( SUSE.YaST.ModuleConfig.OC:10 NAME 'suseDhcpConfigurat - ion' DESC 'Configuration of DHCP server management tools' SUP suseModuleCon - figuration STRUCTURAL ) -olcObjectClasses: {9}( SUSE.YaST.ModuleConfig.OC:11 NAME 'suseMailConfigurat - ion' DESC 'Configuration of IMAP user management tools' SUP suseModuleConfi - guration STRUCTURAL MUST ( suseImapServer $ suseImapAdmin $ suseImapDefault - Quota $ suseImapUseSsl ) ) -structuralObjectClass: olcSchemaConfig -entryUUID: 401a3f38-eaf5-1039-8665-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.085642Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={-1}frontend.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={-1}frontend.ldif deleted file mode 100644 index 87336b5..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={-1}frontend.ldif +++ /dev/null @@ -1,15 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 ebfceba5 -dn: olcDatabase={-1}frontend -objectClass: olcDatabaseConfig -objectClass: olcFrontendConfig -olcDatabase: {-1}frontend -olcAccess: {0}to dn.base="" by * read -olcAccess: {1}to dn.base="cn=Subschema" by * read -structuralObjectClass: olcDatabaseConfig -entryUUID: 401a4c6c-eaf5-1039-8666-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.085980Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={0}config.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={0}config.ldif deleted file mode 100644 index fa4e56c..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={0}config.ldif +++ /dev/null @@ -1,20 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 e112c647 -dn: olcDatabase={0}config -objectClass: olcDatabaseConfig -olcDatabase: {0}config -olcAccess: {0}to * by * none -olcAddContentAcl: TRUE -olcLastMod: TRUE -olcMaxDerefDepth: 15 -olcReadOnly: FALSE -olcRootDN: cn=config -olcSyncUseSubentry: FALSE -olcMonitoring: FALSE -structuralObjectClass: olcDatabaseConfig -entryUUID: 401a534c-eaf5-1039-8668-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.086158Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb.ldif deleted file mode 100644 index a4701b5..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb.ldif +++ /dev/null @@ -1,18 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 c1d2cbb7 -dn: olcDatabase={1}mdb -objectClass: olcDatabaseConfig -objectClass: olcMdbConfig -olcDatabase: mdb -olcDbDirectory: /var/lib/ldap/example_com -olcSuffix: dc=example,dc=com -olcRootDN: cn=Manager,dc=example,dc=com -olcRootPW:: c2VjcmV0 -olcDbIndex: objectClass eq -structuralObjectClass: olcMdbConfig -entryUUID: 401a528e-eaf5-1039-8667-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.086134Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={0}memberof.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={0}memberof.ldif deleted file mode 100644 index 9053f5b..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={0}memberof.ldif +++ /dev/null @@ -1,14 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 82bb3fb3 -dn: olcOverlay={0}memberof -objectClass: olcOverlayConfig -objectClass: olcMemberOf -olcOverlay: {0}memberof -olcMemberOfRefInt: TRUE -structuralObjectClass: olcMemberOf -entryUUID: 401a5f7c-eaf5-1039-8669-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.086468Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={1}refint.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={1}refint.ldif deleted file mode 100644 index f990632..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={1}refint.ldif +++ /dev/null @@ -1,15 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 28d25ae6 -dn: olcOverlay={1}refint -objectClass: olcOverlayConfig -objectClass: olcRefintConfig -olcOverlay: {1}refint -olcRefintAttribute: member -olcRefintAttribute: memberOf -structuralObjectClass: olcRefintConfig -entryUUID: 401a66fc-eaf5-1039-866a-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.086660Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={2}unique.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={2}unique.ldif deleted file mode 100644 index 2a0e6b3..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={1}mdb/olcOverlay={2}unique.ldif +++ /dev/null @@ -1,15 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 e3a2aeac -dn: olcOverlay={2}unique -objectClass: olcOverlayConfig -objectClass: olcUniqueConfig -olcOverlay: {2}unique -olcUniqueURI: ldap:///?mail?sub -olcUniqueURI: ldap:///?uid?sub -structuralObjectClass: olcUniqueConfig -entryUUID: 401a6b02-eaf5-1039-866b-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.086763Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb.ldif deleted file mode 100644 index 27a21d1..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb.ldif +++ /dev/null @@ -1,18 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 1bb1ab28 -dn: olcDatabase={2}mdb -objectClass: olcDatabaseConfig -objectClass: olcMdbConfig -olcDatabase: mdb -olcDbDirectory: /var/lib/ldap/example_net -olcSuffix: dc=example,dc=net -olcRootDN: cn=Manager,dc=example,dc=net -olcRootPW:: c2VjcmV0 -olcDbIndex: objectClass eq -structuralObjectClass: olcMdbConfig -entryUUID: 401a7084-eaf5-1039-866c-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.086905Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={0}memberof.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={0}memberof.ldif deleted file mode 100644 index d04bb79..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={0}memberof.ldif +++ /dev/null @@ -1,14 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 6b48531c -dn: olcOverlay={0}memberof -objectClass: olcOverlayConfig -objectClass: olcMemberOf -olcOverlay: {0}memberof -olcMemberOfRefInt: TRUE -structuralObjectClass: olcMemberOf -entryUUID: 401a7890-eaf5-1039-866d-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.087110Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={1}unique.ldif b/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={1}unique.ldif deleted file mode 100644 index 4ff7720..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/slapd.d/cn=config/olcDatabase={2}mdb/olcOverlay={1}unique.ldif +++ /dev/null @@ -1,15 +0,0 @@ -# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. -# CRC32 027478a0 -dn: olcOverlay={1}unique -objectClass: olcOverlayConfig -objectClass: olcUniqueConfig -olcOverlay: {1}unique -olcUniqueURI: ldap:///?mail?sub -olcUniqueURI: ldap:///?uid?sub -structuralObjectClass: olcUniqueConfig -entryUUID: 401a7f20-eaf5-1039-866e-dbfbf2f5e6dd -creatorsName: cn=config -createTimestamp: 20200224020101Z -entryCSN: 20200224020101.087278Z#000000#000#000000 -modifiersName: cn=config -modifyTimestamp: 20200224020101Z diff --git a/dirsrvtests/tests/data/openldap_2_389/test.ldif b/dirsrvtests/tests/data/openldap_2_389/test.ldif deleted file mode 100644 index b1b552b..0000000 --- a/dirsrvtests/tests/data/openldap_2_389/test.ldif +++ /dev/null @@ -1,3 +0,0 @@ - -hello - diff --git a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py index 138c13e..3d16bcb 100644 --- a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py +++ b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py @@ -14,7 +14,7 @@ from lib389.utils import ds_is_older pytestmark = pytest.mark.tier1 -DATADIR = os.path.join(os.path.dirname(__file__), '../../data/openldap_2_389') +DATADIR1 = os.path.join(os.path.dirname(__file__), '../../data/openldap_2_389/1/') @pytest.mark.skipif(ds_is_older('1.4.3'), reason="Not implemented") def test_parse_openldap_slapdd(): @@ -30,7 +30,7 @@ def test_parse_openldap_slapdd(): 1. """ - with open(os.path.join(DATADIR, 'test.ldif')) as f: + with open(os.path.join(DATADIR1, 'test.ldif')) as f: print(f.readlines()) From 95c9ec62ec96d6503e5823a4a0f00780b1737901 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 4/20] start migration lib --- diff --git a/src/lib389/lib389/migrate/__init__.py b/src/lib389/lib389/migrate/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/lib389/lib389/migrate/__init__.py diff --git a/src/lib389/lib389/migrate/openldap/__init__.py b/src/lib389/lib389/migrate/openldap/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/lib389/lib389/migrate/openldap/__init__.py diff --git a/src/lib389/lib389/migrate/openldap/config.py b/src/lib389/lib389/migrate/openldap/config.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/lib389/lib389/migrate/openldap/config.py diff --git a/src/lib389/lib389/migrate/openldap/schema.py b/src/lib389/lib389/migrate/openldap/schema.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/lib389/lib389/migrate/openldap/schema.py diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/lib389/lib389/migrate/plan.py From f2fe5e6a647a56c7c8f38c931442eea7e2a67df8 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 5/20] Ldif parser done! --- diff --git a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py index 3d16bcb..f961acb 100644 --- a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py +++ b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py @@ -12,6 +12,9 @@ from lib389.topologies import topology_st from lib389.password_plugins import PBKDF2Plugin from lib389.utils import ds_is_older +from lib389.migrate.openldap.config import olConfig +# from lib389.migrate.plan import * + pytestmark = pytest.mark.tier1 DATADIR1 = os.path.join(os.path.dirname(__file__), '../../data/openldap_2_389/1/') @@ -30,8 +33,8 @@ def test_parse_openldap_slapdd(): 1. """ - with open(os.path.join(DATADIR1, 'test.ldif')) as f: - print(f.readlines()) + config_path = os.path.join(DATADIR1, 'slapd.d') + config = olConfig(config_path) @pytest.mark.skipif(ds_is_older('1.4.3'), reason="Not implemented") diff --git a/src/lib389/lib389/migrate/openldap/config.py b/src/lib389/lib389/migrate/openldap/config.py index e69de29..4488fdc 100644 --- a/src/lib389/lib389/migrate/openldap/config.py +++ b/src/lib389/lib389/migrate/openldap/config.py @@ -0,0 +1,109 @@ +# --- BEGIN COPYRIGHT BLOCK --- +# Copyright (C) 2020 William Brown +# All rights reserved. +# +# License: GPL (version 3 or any later version). +# See LICENSE for details. +# --- END COPYRIGHT BLOCK --- +# + +import os +import logging +from ldif import LDIFParser + +logger = logging.getLogger(__name__) + +class SimpleParser(LDIFParser): + def __init__(self, f): + self.entries = [] + super().__init__(f) + pass + + def handle(self, dn, entry): + self.entries.append((dn, entry)) + + +def ldif_parse(path, rpath): + with open(os.path.join(path, rpath), 'r') as f: + sp = SimpleParser(f) + sp.parse() + return sp.entries + +def db_cond(name): + if name == 'olcDatabase={0}config.ldif': + return False + if name == 'olcDatabase={-1}frontend.ldif': + return False + if name.startswith('olcDatabase=') and name.endswith('.ldif'): + return True + return False + + +class olOverlay(object): + def __init__(self, path, name, log): + self.log = log + self.log.debug(f"olOverlay path -> {path}/{name}") + entries = ldif_parse(path, name) + assert len(entries) == 1 + self.config = entries.pop() + self.log.debug(f"{self.config}") + +class olDatabase(object): + def __init__(self, path, name, log): + self.log = log + self.log.debug(f"olDatabase path -> {path}") + entries = ldif_parse(path, f'{name}.ldif') + assert len(entries) == 1 + self.config = entries.pop() + self.log.debug(f"{self.config}") + + overlay_path = os.path.join(path, name) + self.overlays = [ + olOverlay(overlay_path, x, log) + for x in sorted(os.listdir(overlay_path)) + ] + +class olSchema(object): + def __init__(self, path, log): + self.log = log + self.log.debug(f"olSchema path -> {path}") + schemas = sorted(os.listdir(path)) + self.log.debug(f"olSchemas -> {schemas}") + + self.schema = [] + + for schema in schemas: + entries = ldif_parse(path, schema) + assert len(entries) == 1 + self.schema.append(entries.pop()) + + self.log.debug(f"schema -> {self.schema}") + + +class olConfig(object): + def __init__(self, path, log=None): + self.log = log + if self.log is None: + self.log = logger + self.log.debug(f"olConfig path -> {path}") + config_entries = ldif_parse(path, 'cn=config.ldif') + assert len(config_entries) == 1 + self.config_entry = config_entries.pop() + self.log.debug(self.config_entry) + + self.schema = olSchema(os.path.join(path, 'cn=config/cn=schema/'), self.log) + + dbs = sorted([ + os.path.split(x)[1].replace('.ldif', '') + for x in os.listdir(os.path.join(path, 'cn=config')) + if db_cond(x) + ]) + self.log.debug(f"olDatabases -> {dbs}") + + self.databases = [ + olDatabase(os.path.join(path, f'cn=config/'), db, self.log) + for db in dbs + ] + self.log.debug('parsed olConfig') + + diff --git a/src/lib389/lib389/migrate/openldap/schema.py b/src/lib389/lib389/migrate/openldap/schema.py index e69de29..8d23c75 100644 --- a/src/lib389/lib389/migrate/openldap/schema.py +++ b/src/lib389/lib389/migrate/openldap/schema.py @@ -0,0 +1,9 @@ +# --- BEGIN COPYRIGHT BLOCK --- +# Copyright (C) 2020 William Brown +# All rights reserved. +# +# License: GPL (version 3 or any later version). +# See LICENSE for details. +# --- END COPYRIGHT BLOCK --- +# + diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index e69de29..8d23c75 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -0,0 +1,9 @@ +# --- BEGIN COPYRIGHT BLOCK --- +# Copyright (C) 2020 William Brown +# All rights reserved. +# +# License: GPL (version 3 or any later version). +# See LICENSE for details. +# --- END COPYRIGHT BLOCK --- +# + From 768a3cc7873554330cbebdc55c0c1e2ec060c67a Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 6/20] Schema parser done! --- diff --git a/src/lib389/lib389/migrate/openldap/config.py b/src/lib389/lib389/migrate/openldap/config.py index 4488fdc..2c8f882 100644 --- a/src/lib389/lib389/migrate/openldap/config.py +++ b/src/lib389/lib389/migrate/openldap/config.py @@ -9,7 +9,9 @@ import os import logging +import ldap.schema from ldif import LDIFParser +from lib389.utils import ensure_list_str logger = logging.getLogger(__name__) @@ -63,6 +65,32 @@ class olDatabase(object): for x in sorted(os.listdir(overlay_path)) ] +# See https://www.python-ldap.org/en/latest/reference/ldap-schema.html +class olAttribute(ldap.schema.models.AttributeType): + def __init__(self, value, log): + self.log = log + self.log.debug(f"olAttribute value -> {value}") + # This split takes {0}(stuff) and will only leave stuf. + super().__init__(value.split('}', 1)[1]) + + def __str__(self): + self.__unicode__() + + def __unicode__(self): + f"{self.names}" + +class olClass(ldap.schema.models.ObjectClass): + def __init__(self, value, log): + self.log = log + self.log.debug(f"olClass value -> {value}") + super().__init__(value.split('}', 1)[1]) + + def __str__(self): + self.__unicode__() + + def __unicode__(self): + f"{self.names}" + class olSchema(object): def __init__(self, path, log): self.log = log @@ -70,14 +98,26 @@ class olSchema(object): schemas = sorted(os.listdir(path)) self.log.debug(f"olSchemas -> {schemas}") - self.schema = [] + self.raw_schema = [] for schema in schemas: entries = ldif_parse(path, schema) assert len(entries) == 1 - self.schema.append(entries.pop()) + self.raw_schema.append(entries.pop()) + # self.log.debug(f"raw_schema -> {self.raw_schema}") + + self.raw_attrs = [] + self.raw_classes = [] + + for (cn, rs) in self.raw_schema: + self.raw_attrs += ensure_list_str(rs['olcAttributeTypes']) + self.raw_classes += ensure_list_str(rs['olcObjectClasses']) + + self.attrs = [olAttribute(x, self.log) for x in self.raw_attrs] + self.classes = [olClass(x, self.log) for x in self.raw_classes] + self.log.debug(f'attrs -> {self.attrs}') + self.log.debug(f'classes -> {self.classes}') - self.log.debug(f"schema -> {self.schema}") class olConfig(object): @@ -91,6 +131,7 @@ class olConfig(object): self.config_entry = config_entries.pop() self.log.debug(self.config_entry) + # Parse all the child values. self.schema = olSchema(os.path.join(path, 'cn=config/cn=schema/'), self.log) dbs = sorted([ From 730c4b6c8d1f8b8dc52c79dd40800a344b381e28 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 7/20] Progress on db/overlay parse --- diff --git a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py index f961acb..8cc4e26 100644 --- a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py +++ b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py @@ -36,6 +36,12 @@ def test_parse_openldap_slapdd(): config_path = os.path.join(DATADIR1, 'slapd.d') config = olConfig(config_path) + # Do we have databases? + assert len(config.databases) == 2 + + # Did our schema parse? + assert any(['suseModuleConfiguration' in x.names for x in config.schema.classes]) + @pytest.mark.skipif(ds_is_older('1.4.3'), reason="Not implemented") def test_migrate_openldap_slapdd(topology_st): diff --git a/src/lib389/lib389/migrate/openldap/config.py b/src/lib389/lib389/migrate/openldap/config.py index 2c8f882..41e682a 100644 --- a/src/lib389/lib389/migrate/openldap/config.py +++ b/src/lib389/lib389/migrate/openldap/config.py @@ -11,7 +11,7 @@ import os import logging import ldap.schema from ldif import LDIFParser -from lib389.utils import ensure_list_str +from lib389.utils import ensure_list_str, ensure_str logger = logging.getLogger(__name__) @@ -50,6 +50,23 @@ class olOverlay(object): self.config = entries.pop() self.log.debug(f"{self.config}") + # olcOverlay + + self.name = ensure_str(self.config[1]['olcOverlay'][0]).split('}', 1)[1] + self.classes = ensure_list_str(self.config[1]['objectClass']) + self.log.debug(f"{self.name} {self.classes}") + + if 'olcMemberOf' in self.classes: + # + pass + if 'olcRefintConfig' in self.classes: + # olcRefintAttribute + pass + if 'olcUniqueConfig' in self.classes: + # olcUniqueURI + pass + + class olDatabase(object): def __init__(self, path, name, log): self.log = log @@ -59,6 +76,15 @@ class olDatabase(object): self.config = entries.pop() self.log.debug(f"{self.config}") + # olcSuffix, olcDbIndex, entryUUID + self.suffix = ensure_str(self.config[1]['olcSuffix'][0]) + self.idx = name.split('}', 1)[0].split('{', 1)[1] + self.uuid = ensure_str(self.config[1]['entryUUID'][0]) + self.index = ensure_str(self.config[1]['olcDbIndex'][0]).split(' ') + + self.log.debug(f"settings -> {self.suffix}, {self.idx}, {self.uuid}, {self.index}") + + overlay_path = os.path.join(path, name) self.overlays = [ olOverlay(overlay_path, x, log) diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index 8d23c75..f55f113 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -7,3 +7,52 @@ # --- END COPYRIGHT BLOCK --- # +class MigrationAction(object): + def __init__(self): + pass + + def apply(self, inst): + raise Exception('not implemented') + + def __unicode__(self): + raise Exception('not implemented') + + +class DatabaseCreate(MigrationAction): + pass + +class DatabaseDelete(MigrationAction): + pass + +class DatabaseIndexCreate(MigrationAction): + pass + +class SchemaAttributeCreate(MigrationAction): + pass + +class SchemaClassCreate(MigrationAction): + pass + +class PluginMemberOfEnable(MigrationAction): + pass + +class PluginMemberOfConfigure(MigrationAction): + pass + +class PluginRefintEnable(MigrationAction): + pass + +class PluginRefintConfigure(MigrationAction): + pass + +class PluginUnqiueConfigure(MigrationAction): + pass + + +class Migration(object): + # Given an openldap config, we generate a set of migration actions + # that we store and then execute in order. + pass + + + From abb95ccb2b82a6bb7ecffe302ecba2b68c196f5c Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 8/20] Planning start --- diff --git a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py index 8cc4e26..2f3720b 100644 --- a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py +++ b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py @@ -13,6 +13,7 @@ from lib389.password_plugins import PBKDF2Plugin from lib389.utils import ds_is_older from lib389.migrate.openldap.config import olConfig +from lib389.migrate.plan import Migration # from lib389.migrate.plan import * pytestmark = pytest.mark.tier1 @@ -32,7 +33,6 @@ def test_parse_openldap_slapdd(): :expectedresults: 1. """ - config_path = os.path.join(DATADIR1, 'slapd.d') config = olConfig(config_path) @@ -54,6 +54,15 @@ def test_migrate_openldap_slapdd(topology_st): :expectedresults: 1. """ - # p1 = PBKDF2Plugin(topology_st.standalone) - pass + + inst = topology_st.standalone + config_path = os.path.join(DATADIR1, 'slapd.d') + config = olConfig(config_path) + + migration = Migration(config, inst.log) + + print(migration.__unicode__()) + + + diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index f55f113..d0dccf0 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -52,7 +52,35 @@ class PluginUnqiueConfigure(MigrationAction): class Migration(object): # Given an openldap config, we generate a set of migration actions # that we store and then execute in order. - pass + def __init__(self, olconfig, inst): + self.olconfig = olconfig + self.inst = inst + self.plan = [] + self._gen_migration_plan() + + def __unicode__(self): + buff = "" + for item in self.plan: + buff += "{item}\n" + return buff + + def _gen_migration_plan(self): + """Order of this module is VERY important!!! + """ + # Examine schema attrs + # Examine schema classes + + # Enable plugins (regardless of db) + + # Create/Manage dbs + + # Import data + + pass + + + + From d0128acbcadad330b6786a34bc146a666a6fde62 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 9/20] Inprogress --- diff --git a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py index 2f3720b..067f825 100644 --- a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py +++ b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py @@ -59,7 +59,7 @@ def test_migrate_openldap_slapdd(topology_st): config_path = os.path.join(DATADIR1, 'slapd.d') config = olConfig(config_path) - migration = Migration(config, inst.log) + migration = Migration(config, inst) print(migration.__unicode__()) diff --git a/src/lib389/lib389/migrate/openldap/config.py b/src/lib389/lib389/migrate/openldap/config.py index 41e682a..265dc1c 100644 --- a/src/lib389/lib389/migrate/openldap/config.py +++ b/src/lib389/lib389/migrate/openldap/config.py @@ -98,24 +98,26 @@ class olAttribute(ldap.schema.models.AttributeType): self.log.debug(f"olAttribute value -> {value}") # This split takes {0}(stuff) and will only leave stuf. super().__init__(value.split('}', 1)[1]) + self.name_set = set([x.lower() for x in self.names]) def __str__(self): self.__unicode__() def __unicode__(self): - f"{self.names}" + return f"{self.names}" class olClass(ldap.schema.models.ObjectClass): def __init__(self, value, log): self.log = log self.log.debug(f"olClass value -> {value}") super().__init__(value.split('}', 1)[1]) + self.name_set = set([x.lower() for x in self.names]) def __str__(self): self.__unicode__() def __unicode__(self): - f"{self.names}" + return f"{self.names}" class olSchema(object): def __init__(self, path, log): diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index d0dccf0..9fd6c2a 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -7,6 +7,8 @@ # --- END COPYRIGHT BLOCK --- # +from lib389.schema import Schema + class MigrationAction(object): def __init__(self): pass @@ -14,6 +16,9 @@ class MigrationAction(object): def apply(self, inst): raise Exception('not implemented') + def post(self): + raise Exception('not implemented') + def __unicode__(self): raise Exception('not implemented') @@ -28,9 +33,35 @@ class DatabaseIndexCreate(MigrationAction): pass class SchemaAttributeCreate(MigrationAction): - pass + def __init__(self, attr): + self.attr = attr + + def __unicode__(self): + return f"SchemaAttributeCreate -> {self.attr.__unicode__()}" + +class SchemaAttributeAdjust(MigrationAction): + def __init__(self, attr, exist_names): + self.exist_names = exist_names + self.attr = attr + + def __unicode__(self): + return f"SchemaAttributeAdjust -> {self.exist_names} to {self.attr.__unicode__()}" + +class SchemaAttributeAmbiguous(MigrationAction): + def __init__(self, attr): + self.attr = attr + + def __unicode__(self): + return f"SchemaAttributeAdjust -> {self.attr.__unicode__()}" class SchemaClassCreate(MigrationAction): + def __init__(self, obj): + self.obj = obj + + def __unicode__(self): + return f"SchemaClassCreate -> {self.obj.__unicode__()}" + +class SchemaClassAdjust(MigrationAction): pass class PluginMemberOfEnable(MigrationAction): @@ -61,14 +92,54 @@ class Migration(object): def __unicode__(self): buff = "" for item in self.plan: - buff += "{item}\n" + buff += f"{item.__unicode__()}\n" return buff def _gen_migration_plan(self): """Order of this module is VERY important!!! """ + # Get the server schema so that we can query it repeatedly. + schema = Schema(self.inst) + schema_attrs = schema.get_attributetypes() + schema_attr_names = dict([ + (set([x.lower() for x in attr.names]), attr) + for attr in schema_attrs + ]) + + schema_objects = schema.get_objectclasses() + schema_object_names = dict([ + (set([x.lower() for x in obj.names]), obj) + for obj in schema_objects + ]) + # Examine schema attrs + for attr in self.olconfig.schema.attrs: + # For the attr, find if anything has a name overlap in any capacity. + overlaps = [ a for a in schema_attr_names.keys() if len(a.intersection(attr.name_set)) > 0] + if len(overlaps) == 0: + # We need to add attr + self.plan.append(SchemaAttributeCreate(attr)) + elif len(overlaps) == 1: + # We need to possibly adjust attr + exist_attr = overlaps[0] + diff = attr.name_set.difference(exist_attr) + if len(diff) > 0: + self.plan.append(SchemaAttributeAdjust(attr, exist_attr)) + else: + # Ambiguous attr, the admin must intervene + self.plan.append(SchemaAttributeAmbiguous(attr)) + # Examine schema classes + for obj in self.olconfig.schema.classes: + # For the attr, find if anything has a name overlap in any capacity. + overlaps = [ o for o in schema_object_names.keys() if len(o.intersection(obj.name_set)) > 0] + if len(overlaps) == 0: + # We need to add attr + self.plan.append(SchemaClassCreate(obj)) + elif len(overlaps) == 1: + # We need to possibly adjust the objectClass as it exists + pass + # Enable plugins (regardless of db) From 3a6bd767a1c2057b4ce1df692afd63a267490727 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 10/20] okay, schema parsing basically done! --- diff --git a/src/lib389/lib389/migrate/openldap/config.py b/src/lib389/lib389/migrate/openldap/config.py index 265dc1c..7b23fca 100644 --- a/src/lib389/lib389/migrate/openldap/config.py +++ b/src/lib389/lib389/migrate/openldap/config.py @@ -106,6 +106,42 @@ class olAttribute(ldap.schema.models.AttributeType): def __unicode__(self): return f"{self.names}" + def inconsistent(self, ds_attr): + # Okay, we are attempting to merge self into ds_attr. What do we need to do? + # self.log.debug(f""" + # Assert -> + # oid {self.oid} -> {ds_attr.oid} + # single_value {self.single_value} -> {ds_attr.single_value} + # sup {self.sup} -> {ds_attr.sup} + # Merge -> + # names {self.names} -> {ds_attr.names} + # NOT checking -> + # desc {self.desc} -> {ds_attr.desc} + # equality {self.equality} -> {ds_attr.equality} + # substr {self.substr} -> {ds_attr.substr} + # ordering {self.ordering} -> {ds_attr.ordering} + # """) + + # Assert these are the same: + # oid + # single_value + # sup + assert self.oid == ds_attr.oid + if self.single_value != ds_attr.single_value: + self.log.debug("Inconsistent single_value declaration") + return True + if set([s.lower() for s in self.sup]) != set([s.lower() for s in ds_attr.sup]): + self.log.debug("Inconsistent superior declaration") + return True + # names + if self.name_set != set([n.lower() for n in ds_attr.names]): + self.log.debug("Inconsistent name aliases") + return True + + # ignore all else. + return False + + class olClass(ldap.schema.models.ObjectClass): def __init__(self, value, log): self.log = log @@ -117,7 +153,51 @@ class olClass(ldap.schema.models.ObjectClass): self.__unicode__() def __unicode__(self): - return f"{self.names}" + return f"""{self.oid} {self.names} may -> {self.may} must -> {self.must} sup -> {self.sup}""" + + def debug_full(self, ds_obj): + self.log.debug(f""" +Assert -> +oid {self.oid} == {ds_obj.oid} +names {self.names} == {ds_obj.names} +kind {self.kind} == {ds_obj.kind} +sup {self.sup} == {ds_obj.sup} +must {self.must} ⊇ {ds_obj.must} +may {self.may} ⊇ {ds_obj.may} + +Merge -> +must {self.must} -> iff ⊇ {ds_obj.must} +may {self.may} -> iff ⊇ {ds_obj.may} + +NOT checking -> +desc {self.desc} -> {ds_obj.desc} +obsolete {self.obsolete} -> {ds_obj.obsolete}""") + + def inconsistent(self, ds_obj): + assert self.oid == ds_obj.oid + # names + if self.name_set != set([n.lower() for n in ds_obj.names]): + self.log.debug("Inconsistent name aliases") + self.debug_full(ds_obj) + return True + if self.kind != ds_obj.kind: + self.log.debug("Inconsistent kind") + self.debug_full(ds_obj) + return True + if set([s.lower() for s in self.sup]) != set([s.lower() for s in ds_obj.sup]): + self.log.debug("Inconsistent superior declaration") + self.debug_full(ds_obj) + return True + if set([s.lower() for s in self.must]) != set([s.lower() for s in ds_obj.must]): + self.log.debug("Inconsistent Must Set") + self.debug_full(ds_obj) + return True + if set([s.lower() for s in self.may]) != set([s.lower() for s in ds_obj.may]): + self.log.debug("Inconsistent May Set") + self.debug_full(ds_obj) + return True + # ignore all else. + return False class olSchema(object): def __init__(self, path, log): diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index 9fd6c2a..e18b28c 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -39,20 +39,20 @@ class SchemaAttributeCreate(MigrationAction): def __unicode__(self): return f"SchemaAttributeCreate -> {self.attr.__unicode__()}" -class SchemaAttributeAdjust(MigrationAction): - def __init__(self, attr, exist_names): - self.exist_names = exist_names +class SchemaAttributeInconsistent(MigrationAction): + def __init__(self, attr, ds_attr): + self.ds_attr = ds_attr self.attr = attr def __unicode__(self): - return f"SchemaAttributeAdjust -> {self.exist_names} to {self.attr.__unicode__()}" + return f"SchemaAttributeInconsistent -> {self.ds_attr} to {self.attr.__unicode__()}" class SchemaAttributeAmbiguous(MigrationAction): def __init__(self, attr): self.attr = attr def __unicode__(self): - return f"SchemaAttributeAdjust -> {self.attr.__unicode__()}" + return f"SchemaAttributeInconsistent -> {self.attr.__unicode__()}" class SchemaClassCreate(MigrationAction): def __init__(self, obj): @@ -61,6 +61,14 @@ class SchemaClassCreate(MigrationAction): def __unicode__(self): return f"SchemaClassCreate -> {self.obj.__unicode__()}" +class SchemaClassInconsistent(MigrationAction): + def __init__(self, obj, ds_obj): + self.ds_obj = ds_obj + self.obj = obj + + def __unicode__(self): + return f"SchemaClassInconsistent -> {self.ds_obj} to {self.obj.__unicode__()}" + class SchemaClassAdjust(MigrationAction): pass @@ -101,44 +109,41 @@ class Migration(object): # Get the server schema so that we can query it repeatedly. schema = Schema(self.inst) schema_attrs = schema.get_attributetypes() - schema_attr_names = dict([ - (set([x.lower() for x in attr.names]), attr) - for attr in schema_attrs - ]) - schema_objects = schema.get_objectclasses() - schema_object_names = dict([ - (set([x.lower() for x in obj.names]), obj) - for obj in schema_objects - ]) # Examine schema attrs for attr in self.olconfig.schema.attrs: # For the attr, find if anything has a name overlap in any capacity. - overlaps = [ a for a in schema_attr_names.keys() if len(a.intersection(attr.name_set)) > 0] + # overlaps = [ (names, ds_attr) for (names, ds_attr) in schema_attr_names if len(names.intersection(attr.name_set)) > 0] + overlaps = [ ds_attr for ds_attr in schema_attrs if ds_attr.oid == attr.oid] if len(overlaps) == 0: # We need to add attr self.plan.append(SchemaAttributeCreate(attr)) elif len(overlaps) == 1: # We need to possibly adjust attr - exist_attr = overlaps[0] - diff = attr.name_set.difference(exist_attr) - if len(diff) > 0: - self.plan.append(SchemaAttributeAdjust(attr, exist_attr)) + ds_attr = overlaps[0] + # We need to have a way to compare the two. + if attr.inconsistent(ds_attr): + self.plan.append(SchemaAttributeInconsistent(attr, ds_attr)) else: - # Ambiguous attr, the admin must intervene - self.plan.append(SchemaAttributeAmbiguous(attr)) + # Ambiguous attr, the admin must intervene to migrate it. + self.plan.append(SchemaAttributeAmbiguous(attr, overlaps)) # Examine schema classes for obj in self.olconfig.schema.classes: # For the attr, find if anything has a name overlap in any capacity. - overlaps = [ o for o in schema_object_names.keys() if len(o.intersection(obj.name_set)) > 0] + overlaps = [ ds_obj for ds_obj in schema_objects if ds_obj.oid == obj.oid] if len(overlaps) == 0: # We need to add attr self.plan.append(SchemaClassCreate(obj)) elif len(overlaps) == 1: # We need to possibly adjust the objectClass as it exists - pass + ds_obj = overlaps[0] + if obj.inconsistent(ds_obj): + self.plan.append(SchemaClassInconsistent(obj, ds_obj)) + else: + # This should be an impossible state. + raise Exception('impossible state') # Enable plugins (regardless of db) From c8e7605add759db6d9a8626bcf6c2847f8e42978 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 11/20] Most of the migration plan is now done! --- diff --git a/src/lib389/lib389/migrate/openldap/config.py b/src/lib389/lib389/migrate/openldap/config.py index 7b23fca..10f0d3a 100644 --- a/src/lib389/lib389/migrate/openldap/config.py +++ b/src/lib389/lib389/migrate/openldap/config.py @@ -10,6 +10,7 @@ import os import logging import ldap.schema +from enum import Enum from ldif import LDIFParser from lib389.utils import ensure_list_str, ensure_str @@ -41,6 +42,13 @@ def db_cond(name): return False +class olOverlayType(Enum): + UNKNOWN = 0 + MEMBEROF = 1 + REFINT = 2 + UNIQUE = 3 + + class olOverlay(object): def __init__(self, path, name, log): self.log = log @@ -57,14 +65,23 @@ class olOverlay(object): self.log.debug(f"{self.name} {self.classes}") if 'olcMemberOf' in self.classes: - # - pass - if 'olcRefintConfig' in self.classes: + self.otype = olOverlayType.MEMBEROF + # + elif 'olcRefintConfig' in self.classes: + self.otype = olOverlayType.REFINT # olcRefintAttribute - pass - if 'olcUniqueConfig' in self.classes: + self.attrs = ensure_list_str(self.config[1]['olcRefintAttribute']) + elif 'olcUniqueConfig' in self.classes: + self.otype = olOverlayType.UNIQUE # olcUniqueURI - pass + self.attrs = ensure_list_str([ + # This is a ldap:///?uid?sub, so split ? [1] will give uid. + attr.split('?')[1] + for attr in ensure_list_str(self.config[1]['olcUniqueURI']) + ]) + else: + self.otype = olOverlayType.UNKNOWN + # Should we stash extra details? class olDatabase(object): @@ -80,7 +97,11 @@ class olDatabase(object): self.suffix = ensure_str(self.config[1]['olcSuffix'][0]) self.idx = name.split('}', 1)[0].split('{', 1)[1] self.uuid = ensure_str(self.config[1]['entryUUID'][0]) - self.index = ensure_str(self.config[1]['olcDbIndex'][0]).split(' ') + + self.index = [ + tuple(ensure_str(x).split(' ')) + for x in self.config[1]['olcDbIndex'] + ] self.log.debug(f"settings -> {self.suffix}, {self.idx}, {self.uuid}, {self.index}") diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index e18b28c..e970bef 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -8,6 +8,10 @@ # from lib389.schema import Schema +from lib389.backend import Backends +from lib389.migrate.openldap.config import olOverlayType + +import ldap class MigrationAction(object): def __init__(self): @@ -24,13 +28,28 @@ class MigrationAction(object): class DatabaseCreate(MigrationAction): - pass + def __init__(self, suffix, uuid): + self.suffix = suffix + self.uuid = uuid -class DatabaseDelete(MigrationAction): - pass + def __unicode__(self): + return f"DatabaseCreate -> {self.suffix}, {self.uuid}" class DatabaseIndexCreate(MigrationAction): - pass + def __init__(self, suffix, olindex): + self.suffix = suffix + self.attr = olindex[0] + self.type = olindex[1] + + def __unicode__(self): + return f"DatabaseIndexCreate -> {self.attr} {self.type}, {self.suffix}" + +class DatabaseReindex(MigrationAction): + def __init__(self, suffix): + self.suffix = suffix + + def __unicode__(self): + return f"DatabaseReindex -> {self.suffix}" class SchemaAttributeCreate(MigrationAction): def __init__(self, attr): @@ -69,23 +88,64 @@ class SchemaClassInconsistent(MigrationAction): def __unicode__(self): return f"SchemaClassInconsistent -> {self.ds_obj} to {self.obj.__unicode__()}" -class SchemaClassAdjust(MigrationAction): - pass - class PluginMemberOfEnable(MigrationAction): - pass + def __init__(self): + pass + + def __unicode__(self): + return "PluginMemberOfEnable" + +class PluginMemberOfScope(MigrationAction): + def __init__(self, suffix): + self.suffix = suffix + + def __unicode__(self): + return f"PluginMemberOfScope -> {self.suffix}" + +class PluginMemberOfFixup(MigrationAction): + def __init__(self, suffix): + self.suffix = suffix -class PluginMemberOfConfigure(MigrationAction): - pass + def __unicode__(self): + return f"PluginMemberOfFixup -> {self.suffix}" class PluginRefintEnable(MigrationAction): - pass + def __init__(self): + pass + # Set refint delay to 0 -class PluginRefintConfigure(MigrationAction): - pass + def __unicode__(self): + return "PluginRefintEnable" -class PluginUnqiueConfigure(MigrationAction): - pass +class PluginRefintAttributes(MigrationAction): + def __init__(self, attr): + self.attr = attr + + def __unicode__(self): + return f"PluginRefintAttributes -> {self.attr}" + +class PluginRefintScope(MigrationAction): + def __init__(self, suffix): + self.suffix = suffix + + def __unicode__(self): + return f"PluginRefintScope -> {self.suffix}" + +class PluginUniqueConfigure(MigrationAction): + # This enables and configures. + def __init__(self, suffix, attr): + self.suffix = suffix + self.attr = attr + + def __unicode__(self): + return f"PluginUniqueConfigure -> {self.suffix}, {self.attr}" + +class PluginUnknownManual(MigrationAction): + def __init__(self, overlay): + self.overlay = overlay + + def __unicode__(self): + return f"PluginUnknownManual -> {self.overlay.name}, {self.overlay.classes}" class Migration(object): @@ -103,9 +163,7 @@ class Migration(object): buff += f"{item.__unicode__()}\n" return buff - def _gen_migration_plan(self): - """Order of this module is VERY important!!! - """ + def _gen_schema_plan(self): # Get the server schema so that we can query it repeatedly. schema = Schema(self.inst) schema_attrs = schema.get_attributetypes() @@ -145,15 +203,80 @@ class Migration(object): # This should be an impossible state. raise Exception('impossible state') + def _gen_be_exist_plan(self, oldb, be): + # For each index + indexes = be.get_indexes() + for olindex in oldb.index: + # Assert they exist + try: + indexes.get(olindex[0]) + except ldap.NO_SUCH_OBJECT: + self.plan.append(DatabaseIndexCreate(oldb.suffix, olindex)) + + # Reindex the db + self.plan.append(DatabaseReindex(oldb.suffix)) + + def _gen_be_create_plan(self, oldb): + # Req db create + self.plan.append(DatabaseCreate(oldb.suffix, oldb.uuid)) + # For each index + # Assert we have the index on the db, or req it's creation + for olindex in oldb.index: + self.plan.append(DatabaseIndexCreate(oldb.suffix, olindex)) + + # Reindex the db. + self.plan.append(DatabaseReindex(oldb.suffix)) + + def _gen_plugin_plan(self, oldb): + for overlay in oldb.overlays: + if overlay.otype == olOverlayType.UNKNOWN: + self.plan.append(PluginUnknownManual(overlay)) + elif overlay.otype == olOverlayType.MEMBEROF: + # Assert memberof enabled. + self.plan.append(PluginMemberOfEnable()) + # Member of scope + self.plan.append(PluginMemberOfScope(oldb.suffix)) + # Memberof fixup task. + self.plan.append(PluginMemberOfFixup(oldb.suffix)) + elif overlay.otype == olOverlayType.REFINT: + self.plan.append(PluginRefintEnable()) + for attr in overlay.attrs: + self.plan.append(PluginRefintAttributes(attr)) + self.plan.append(PluginRefintScope(oldb.suffix)) + elif overlay.otype == olOverlayType.UNIQUE: + for attr in overlay.attrs: + self.plan.append(PluginUniqueConfigure(oldb.suffix, attr)) + else: + raise Exception("Unknown overlay type, this is a bug!") - # Enable plugins (regardless of db) + def _gen_db_plan(self): # Create/Manage dbs + # Get the set of current dbs. + backends = Backends(self.inst) - # Import data + for db in self.olconfig.databases: + # Get the suffix + suffix = db.suffix + try: + # Do we have a db with that suffix already? + be = backends.get(suffix) + self._gen_be_exist_plan(db, be) + except ldap.NO_SUCH_OBJECT: + self._gen_be_create_plan(db) - pass + self._gen_plugin_plan(db) + + def _gen_import_plan(self): + # Given external ldifs and suffixes, generate plans to handle these. + raise Exception("not yet implemented") + def _gen_migration_plan(self): + """Order of this module is VERY important!!! + """ + self._gen_schema_plan() + self._gen_db_plan() + self._gen_import_plan() From 265fd399c9407c29891247cdfef575af953f00e6 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 12/20] Plan generation complete! --- diff --git a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py index 067f825..c523f4a 100644 --- a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py +++ b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py @@ -58,11 +58,17 @@ def test_migrate_openldap_slapdd(topology_st): inst = topology_st.standalone config_path = os.path.join(DATADIR1, 'slapd.d') config = olConfig(config_path) + ldifs = { + "dc=example,dc=com": os.path.join(DATADIR1, 'example_com.slapcat.ldif'), + "dc=example,dc=net": os.path.join(DATADIR1, 'example_net.slapcat.ldif'), + } - migration = Migration(config, inst) + migration = Migration(config, inst, ldifs) print(migration.__unicode__()) + migration.execute_plan() + diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index e970bef..a5ed130 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -51,6 +51,14 @@ class DatabaseReindex(MigrationAction): def __unicode__(self): return f"DatabaseReindex -> {self.suffix}" +class DatabaseLdifImport(MigrationAction): + def __init__(self, suffix, ldif_path): + self.suffix = suffix + self.ldif_path = ldif_path + + def __unicode__(self): + return f"DatabaseLdifImport -> {self.suffix} {self.ldif_path}" + class SchemaAttributeCreate(MigrationAction): def __init__(self, attr): self.attr = attr @@ -149,12 +157,48 @@ class PluginUnknownManual(MigrationAction): class Migration(object): - # Given an openldap config, we generate a set of migration actions - # that we store and then execute in order. - def __init__(self, olconfig, inst): + def __init__(self, olconfig, inst, ldifs=None): + """Generate a migration plan from an openldap config, the instance to migrate too + and an optional dictionary of { suffix: ldif_path }. + + The migration plan once generate still needs to be executed, but the idea is that + this module connects to a UI program that can allow the plan to be reviewed and + accepted. Plan modification is "out of scope", but possible as the array could + be manipulated in place. + """ self.olconfig = olconfig self.inst = inst self.plan = [] + self.ldifs = ldifs + self._schema_oid_do_not_migrate = set([ + # We pre-modified these as they are pretty core, and we don't want + # them tampered with + '2.5.4.7', # l, locality + '2.5.4.42', # givenName + # We ignore all of the conflicts/changes from rfc2307 and rfc2307bis + # as we provide rfc2307compat, which allows both to coexist. + '1.3.6.1.1.1.1.16', # ipServiceProtocol + '1.3.6.1.1.1.1.19', # ipHostNumber + '1.3.6.1.1.1.1.20', # ipNetworkNumber + '1.3.6.1.1.1.1.26', # nisMapName + '1.3.6.1.1.1.1.28', # nisPublicKey + '1.3.6.1.1.1.1.29', # nisSecretKey + '1.3.6.1.1.1.1.30', # nisDomain + '1.3.6.1.1.1.1.31', # automountMapName + '1.3.6.1.1.1.1.32', # automountKey + '1.3.6.1.1.1.1.33', # automountInformation + '1.3.6.1.1.1.2.2', # posixGroup + '1.3.6.1.1.1.2.6', # ipHost + '1.3.6.1.1.1.2.7', # ipNetwork + '1.3.6.1.1.1.2.9', # nisMap + '1.3.6.1.1.1.2.11', # ieee802Device + '1.3.6.1.1.1.2.12', # bootableDevice + '1.3.6.1.1.1.2.13', # nisMap + '1.3.6.1.1.1.2.14', # nisKeyObject + '1.3.6.1.1.1.2.15', # nisDomainObject + '1.3.6.1.1.1.2.16', # automountMap + '1.3.6.1.1.1.2.17', # automount + ]) self._gen_migration_plan() def __unicode__(self): @@ -171,6 +215,9 @@ class Migration(object): # Examine schema attrs for attr in self.olconfig.schema.attrs: + # If we have been instructed to ignore this oid, skip. + if attr.oid in self._schema_oid_do_not_migrate: + continue # For the attr, find if anything has a name overlap in any capacity. # overlaps = [ (names, ds_attr) for (names, ds_attr) in schema_attr_names if len(names.intersection(attr.name_set)) > 0] overlaps = [ ds_attr for ds_attr in schema_attrs if ds_attr.oid == attr.oid] @@ -189,6 +236,9 @@ class Migration(object): # Examine schema classes for obj in self.olconfig.schema.classes: + # If we have been instructed to ignore this oid, skip. + if obj.oid in self._schema_oid_do_not_migrate: + continue # For the attr, find if anything has a name overlap in any capacity. overlaps = [ ds_obj for ds_obj in schema_objects if ds_obj.oid == obj.oid] if len(overlaps) == 0: @@ -269,7 +319,10 @@ class Migration(object): def _gen_import_plan(self): # Given external ldifs and suffixes, generate plans to handle these. - raise Exception("not yet implemented") + if self.ldifs is None: + return + for (suffix, ldif_path) in self.ldifs.items(): + self.plan.append(DatabaseLdifImport(suffix, ldif_path)) def _gen_migration_plan(self): """Order of this module is VERY important!!! @@ -279,7 +332,13 @@ class Migration(object): self._gen_import_plan() + def execute_plan(self): + """ Do it!""" + # First apply everything + for item in self.plan: + item.apply(self.inst) - - + # Then do post + for item in self.plan: + item.post() From 8c08d69658910a6176f21b54710854f4c8d545f0 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 13/20] progress --- diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index a5ed130..42dd601 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -173,8 +173,20 @@ class Migration(object): self._schema_oid_do_not_migrate = set([ # We pre-modified these as they are pretty core, and we don't want # them tampered with + '2.5.4.2', # knowledgeInformation '2.5.4.7', # l, locality + '2.5.4.29', # presentationAddress + '2.5.4.30', # supportedApplication Context '2.5.4.42', # givenName + '2.5.4.48', # protocolInformation + '2.5.4.54', # dmdName + '2.5.6.7', # organizationalPerson + '2.5.6.9', # groupOfNames + '2.5.6.10', # residentialPerson + '2.5.6.12', # applicationEntity + '2.5.6.13', # dsa + '2.5.6.17', # groupOfUniqueNames + '2.5.6.20', # dmd # We ignore all of the conflicts/changes from rfc2307 and rfc2307bis # as we provide rfc2307compat, which allows both to coexist. '1.3.6.1.1.1.1.16', # ipServiceProtocol From 86fecb340d644cf7199289a66af75202b0e25dc2 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 14/20] Improve resolver --- diff --git a/src/lib389/lib389/migrate/openldap/config.py b/src/lib389/lib389/migrate/openldap/config.py index 10f0d3a..c15ca67 100644 --- a/src/lib389/lib389/migrate/openldap/config.py +++ b/src/lib389/lib389/migrate/openldap/config.py @@ -194,7 +194,7 @@ NOT checking -> desc {self.desc} -> {ds_obj.desc} obsolete {self.obsolete} -> {ds_obj.obsolete}""") - def inconsistent(self, ds_obj): + def inconsistent(self, ds_obj, resolver): assert self.oid == ds_obj.oid # names if self.name_set != set([n.lower() for n in ds_obj.names]): @@ -205,15 +205,16 @@ obsolete {self.obsolete} -> {ds_obj.obsolete}""") self.log.debug("Inconsistent kind") self.debug_full(ds_obj) return True + if set([s.lower() for s in self.sup]) != set([s.lower() for s in ds_obj.sup]): self.log.debug("Inconsistent superior declaration") self.debug_full(ds_obj) return True - if set([s.lower() for s in self.must]) != set([s.lower() for s in ds_obj.must]): + if set([resolver.resolve(s) for s in self.must]) != set([resolver.resolve(s) for s in ds_obj.must]): self.log.debug("Inconsistent Must Set") self.debug_full(ds_obj) return True - if set([s.lower() for s in self.may]) != set([s.lower() for s in ds_obj.may]): + if set([resolver.resolve(s) for s in self.may]) != set([resolver.resolve(s) for s in ds_obj.may]): self.log.debug("Inconsistent May Set") self.debug_full(ds_obj) return True diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index 42dd601..2927dc9 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -7,7 +7,7 @@ # --- END COPYRIGHT BLOCK --- # -from lib389.schema import Schema +from lib389.schema import Schema, Resolver from lib389.backend import Backends from lib389.migrate.openldap.config import olOverlayType @@ -225,6 +225,8 @@ class Migration(object): schema_attrs = schema.get_attributetypes() schema_objects = schema.get_objectclasses() + resolver = Resolver(schema_attrs) + # Examine schema attrs for attr in self.olconfig.schema.attrs: # If we have been instructed to ignore this oid, skip. @@ -259,7 +261,7 @@ class Migration(object): elif len(overlaps) == 1: # We need to possibly adjust the objectClass as it exists ds_obj = overlaps[0] - if obj.inconsistent(ds_obj): + if obj.inconsistent(ds_obj, resolver): self.plan.append(SchemaClassInconsistent(obj, ds_obj)) else: # This should be an impossible state. diff --git a/src/lib389/lib389/schema.py b/src/lib389/lib389/schema.py index 00443ff..6a9b05f 100755 --- a/src/lib389/lib389/schema.py +++ b/src/lib389/lib389/schema.py @@ -784,3 +784,18 @@ class SchemaLegacy(object): return dump_json(result) else: return (attributetype, must, may) + +class Resolver(object): + def __init__(self, schema_attrs): + self.attr_map = {} + for attr in schema_attrs: + for name in attr.names: + self.attr_map[name.lower()] = attr + # done + + def resolve(self, attr_in): + attr_in_l = attr_in.lower() + if attr_in_l in self.attr_map: + return self.attr_map[attr_in_l].names[0] + else: + return attr_in_l From 559404f93041ac68a2a10d16dc1344bcf975b5ce Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 15/20] don't migrate the rfc822localpart schema. --- diff --git a/src/lib389/lib389/migrate/openldap/config.py b/src/lib389/lib389/migrate/openldap/config.py index c15ca67..86dfdb5 100644 --- a/src/lib389/lib389/migrate/openldap/config.py +++ b/src/lib389/lib389/migrate/openldap/config.py @@ -205,7 +205,6 @@ obsolete {self.obsolete} -> {ds_obj.obsolete}""") self.log.debug("Inconsistent kind") self.debug_full(ds_obj) return True - if set([s.lower() for s in self.sup]) != set([s.lower() for s in ds_obj.sup]): self.log.debug("Inconsistent superior declaration") self.debug_full(ds_obj) @@ -216,6 +215,8 @@ obsolete {self.obsolete} -> {ds_obj.obsolete}""") return True if set([resolver.resolve(s) for s in self.may]) != set([resolver.resolve(s) for s in ds_obj.may]): self.log.debug("Inconsistent May Set") + self.log.debug("ol -> %s" % [resolver.resolve(s) for s in self.may]) + self.log.debug("ds -> %s" % [resolver.resolve(s) for s in ds_obj.may]) self.debug_full(ds_obj) return True # ignore all else. diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index 2927dc9..9e5acad 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -210,6 +210,8 @@ class Migration(object): '1.3.6.1.1.1.2.15', # nisDomainObject '1.3.6.1.1.1.2.16', # automountMap '1.3.6.1.1.1.2.17', # automount + # This schema is buggy, we always skip it as we know the 389 version is correct. + '0.9.2342.19200300.100.4.14', ]) self._gen_migration_plan() From 756f7ce8373080f9e8325fb10af9169fa97a88d5 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 16/20] Further progress in migration support. --- diff --git a/src/lib389/lib389/migrate/openldap/config.py b/src/lib389/lib389/migrate/openldap/config.py index 86dfdb5..13ecfb7 100644 --- a/src/lib389/lib389/migrate/openldap/config.py +++ b/src/lib389/lib389/migrate/openldap/config.py @@ -121,8 +121,11 @@ class olAttribute(ldap.schema.models.AttributeType): super().__init__(value.split('}', 1)[1]) self.name_set = set([x.lower() for x in self.names]) + def schema_str(self): + return super().__str__() + def __str__(self): - self.__unicode__() + return self.__unicode__() def __unicode__(self): return f"{self.names}" @@ -170,8 +173,11 @@ class olClass(ldap.schema.models.ObjectClass): super().__init__(value.split('}', 1)[1]) self.name_set = set([x.lower() for x in self.names]) + def schema_str(self): + return super().__str__() + def __str__(self): - self.__unicode__() + return self.__unicode__() def __unicode__(self): return f"""{self.oid} {self.names} may -> {self.may} must -> {self.must} sup -> {self.sup}""" diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index 9e5acad..16910ce 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -59,6 +59,16 @@ class DatabaseLdifImport(MigrationAction): def __unicode__(self): return f"DatabaseLdifImport -> {self.suffix} {self.ldif_path}" +class SchemaAttributeUnsupported(MigrationAction): + def __init__(self, attr): + self.attr = attr + + def __unicode__(self): + return f"SchemaAttributeUnsupported -> {self.attr.__unicode__()}" + + def apply(self, inst): + inst.log.debug(f"SchemaAttributeUnsupported -> {self.attr.__unicode__()} (SKIPPING)") + class SchemaAttributeCreate(MigrationAction): def __init__(self, attr): self.attr = attr @@ -66,6 +76,11 @@ class SchemaAttributeCreate(MigrationAction): def __unicode__(self): return f"SchemaAttributeCreate -> {self.attr.__unicode__()}" + def apply(self, inst): + schema = Schema(inst) + inst.log.debug("SchemaAttributeCreate -> %s" % self.attr.schema_str()) + schema.add(self.attr.schema_attribute, self.attr.schema_str()) + class SchemaAttributeInconsistent(MigrationAction): def __init__(self, attr, ds_attr): self.ds_attr = ds_attr @@ -81,6 +96,16 @@ class SchemaAttributeAmbiguous(MigrationAction): def __unicode__(self): return f"SchemaAttributeInconsistent -> {self.attr.__unicode__()}" +class SchemaClassUnsupported(MigrationAction): + def __init__(self, obj): + self.obj = obj + + def __unicode__(self): + return f"SchemaClassUnsupported -> {self.obj.__unicode__()}" + + def apply(self, inst): + inst.log.debug(f"SchemaClassUnsupported -> {self.obj.__unicode__()} (SKIPPING)") + class SchemaClassCreate(MigrationAction): def __init__(self, obj): self.obj = obj @@ -88,6 +113,11 @@ class SchemaClassCreate(MigrationAction): def __unicode__(self): return f"SchemaClassCreate -> {self.obj.__unicode__()}" + def apply(self, inst): + schema = Schema(inst) + inst.log.debug("SchemaClassCreate -> %s" % self.obj.schema_str()) + schema.add(self.obj.schema_attribute, self.obj.schema_str()) + class SchemaClassInconsistent(MigrationAction): def __init__(self, obj, ds_obj): self.ds_obj = ds_obj @@ -213,6 +243,22 @@ class Migration(object): # This schema is buggy, we always skip it as we know the 389 version is correct. '0.9.2342.19200300.100.4.14', ]) + self._schema_oid_unsupported = set([ + # RFC4517 othermailbox syntax is not supported on 389. + '0.9.2342.19200300.100.1.22', + # The dsaquality syntax was removed in rfc4517 + '0.9.2342.19200300.100.1.49', + # single level quality syntax is removed + '0.9.2342.19200300.100.1.50', + '0.9.2342.19200300.100.1.51', + '0.9.2342.19200300.100.1.52', + # Pilot person depends no otherMailbox + '0.9.2342.19200300.100.4.4', + # Pilot DSA needs dsaquality + '0.9.2342.19200300.100.4.21', + '0.9.2342.19200300.100.4.22', + + ]) self._gen_migration_plan() def __unicode__(self): @@ -234,6 +280,9 @@ class Migration(object): # If we have been instructed to ignore this oid, skip. if attr.oid in self._schema_oid_do_not_migrate: continue + if attr.oid in self._schema_oid_unsupported: + self.plan.append(SchemaAttributeUnsupported(attr)) + continue # For the attr, find if anything has a name overlap in any capacity. # overlaps = [ (names, ds_attr) for (names, ds_attr) in schema_attr_names if len(names.intersection(attr.name_set)) > 0] overlaps = [ ds_attr for ds_attr in schema_attrs if ds_attr.oid == attr.oid] @@ -255,6 +304,9 @@ class Migration(object): # If we have been instructed to ignore this oid, skip. if obj.oid in self._schema_oid_do_not_migrate: continue + if obj.oid in self._schema_oid_unsupported: + self.plan.append(SchemaClassUnsupported(obj)) + continue # For the attr, find if anything has a name overlap in any capacity. overlaps = [ ds_obj for ds_obj in schema_objects if ds_obj.oid == obj.oid] if len(overlaps) == 0: From 606d514c7bd880ae84ad037f3a5d4f8f7ed74bb8 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 17/20] CHanges --- diff --git a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py index c523f4a..5c8c357 100644 --- a/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py +++ b/dirsrvtests/tests/suites/openldap_2_389/migrate_test.py @@ -65,7 +65,9 @@ def test_migrate_openldap_slapdd(topology_st): migration = Migration(config, inst, ldifs) + print("==== migration plan ====") print(migration.__unicode__()) + print("==== end migration plan ====") migration.execute_plan() diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index 16910ce..f199756 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -10,6 +10,7 @@ from lib389.schema import Schema, Resolver from lib389.backend import Backends from lib389.migrate.openldap.config import olOverlayType +from lib389.plugins import MemberOfPlugin, ReferentialIntegrityPlugin, AttributeUniquenessPlugins import ldap @@ -48,6 +49,14 @@ class DatabaseReindex(MigrationAction): def __init__(self, suffix): self.suffix = suffix + def apply(self, inst): + bes = Backends(inst) + be = bes.get(self.suffix) + be.reindex(wait=True) + + def post(self): + raise Exception('not implemented') + def __unicode__(self): return f"DatabaseReindex -> {self.suffix}" @@ -130,6 +139,11 @@ class PluginMemberOfEnable(MigrationAction): def __init__(self): pass + def apply(self, inst): + mo = MemberOfPlugin(inst) + mo.enable() + inst.restart() + def __unicode__(self): return "PluginMemberOfEnable" @@ -137,6 +151,10 @@ class PluginMemberOfScope(MigrationAction): def __init__(self, suffix): self.suffix = suffix + def apply(self, inst): + mo = MemberOfPlugin(inst) + mo.add_entryscope(self.suffix) + def __unicode__(self): return f"PluginMemberOfScope -> {self.suffix}" @@ -144,6 +162,11 @@ class PluginMemberOfFixup(MigrationAction): def __init__(self, suffix): self.suffix = suffix + def apply(self, inst): + mo = MemberOfPlugin(inst) + task = mo.fixup(self.suffix) + task.wait() + def __unicode__(self): return f"PluginMemberOfFixup -> {self.suffix}" @@ -152,6 +175,11 @@ class PluginRefintEnable(MigrationAction): pass # Set refint delay to 0 + def apply(self, inst): + rip = ReferentialIntegrityPlugin(inst) + rip.set_update_delay(0) + rip.enable() + def __unicode__(self): return "PluginRefintEnable" @@ -159,6 +187,14 @@ class PluginRefintAttributes(MigrationAction): def __init__(self, attr): self.attr = attr + def apply(self, inst): + rip = ReferentialIntegrityPlugin(inst) + try: + rip.add_membership_attr(self.attr) + except ldap.TYPE_OR_VALUE_EXISTS: + # This is okay, move on. + pass + def __unicode__(self): return f"PluginRefintAttributes -> {self.attr}" @@ -166,6 +202,10 @@ class PluginRefintScope(MigrationAction): def __init__(self, suffix): self.suffix = suffix + def apply(self, inst): + rip = ReferentialIntegrityPlugin(inst) + rip.add_entryscope(self.suffix) + def __unicode__(self): return f"PluginRefintScope -> {self.suffix}" @@ -175,6 +215,15 @@ class PluginUniqueConfigure(MigrationAction): self.suffix = suffix self.attr = attr + def apply(self, inst): + aups = AttributeUniquenessPlugins(inst) + aup = aups.create(rdn=f'cn=attr_unique_{self.attr}', properties={ + 'cn': f'cn=attr_unique_{self.attr}', + 'uniqueness-attribute-name': self.attr, + 'uniqueness-subtrees': self.suffix, + 'nsslapd-pluginEnabled': 'on', + }) + def __unicode__(self): return f"PluginUniqueConfigure -> {self.suffix}, {self.attr}" From 67ee2c362cac7e8ac5e3061d26644fb8ba266a0d Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 18/20] Add ldif transformer. --- diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index f199756..a441211 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -11,8 +11,11 @@ from lib389.schema import Schema, Resolver from lib389.backend import Backends from lib389.migrate.openldap.config import olOverlayType from lib389.plugins import MemberOfPlugin, ReferentialIntegrityPlugin, AttributeUniquenessPlugins - import ldap +import os +from ldif import LDIFParser +from ldif import LDIFWriter +from uuid import uuid4 class MigrationAction(object): def __init__(self): @@ -22,7 +25,8 @@ class MigrationAction(object): raise Exception('not implemented') def post(self): - raise Exception('not implemented') + pass + # raise Exception('not implemented') def __unicode__(self): raise Exception('not implemented') @@ -33,6 +37,13 @@ class DatabaseCreate(MigrationAction): self.suffix = suffix self.uuid = uuid + def apply(self, inst): + bes = Backends(inst) + be = bes.create(properties={ + 'cn': self.uuid, + 'nsslapd-suffix': self.suffix, + }) + def __unicode__(self): return f"DatabaseCreate -> {self.suffix}, {self.uuid}" @@ -40,8 +51,21 @@ class DatabaseIndexCreate(MigrationAction): def __init__(self, suffix, olindex): self.suffix = suffix self.attr = olindex[0] + # Will this work with multiple index types self.type = olindex[1] + def apply(self, inst): + be = Backends(inst).get(self.suffix) + indexes = be.get_indexes() + try: + # If it exists, return. Could be the case as we created the + # BE and the default indexes applied now. + indexes.get(self.attr) + return + except ldap.NO_SUCH_OBJECT: + pass + be.add_index(self.attr, self.type) + def __unicode__(self): return f"DatabaseIndexCreate -> {self.attr} {self.type}, {self.suffix}" @@ -54,17 +78,72 @@ class DatabaseReindex(MigrationAction): be = bes.get(self.suffix) be.reindex(wait=True) - def post(self): - raise Exception('not implemented') - def __unicode__(self): return f"DatabaseReindex -> {self.suffix}" +class ImportTransformer(LDIFParser): + def __init__(self, f_import, f_outport): + self.f_outport = f_outport + self.writer = LDIFWriter(self.f_outport) + super().__init__(f_import) + + def handle(self, dn, entry): + attrs = entry.keys() + # We don't know what form the keys/attrs are in + # so we have to establish our own map of our + # idea of these to the attrs idea. + amap = dict([(x.lower(), x) for x in attrs]) + + # Now we can do transforms + # This has to exist .... + oc_a = amap['objectclass'] + # If mo present, as nsMemberOf. + try: + mo_a = amap['memberof'] + # If mo_a was found, then mo is present, extend the oc. + entry[oc_a] += [b'nsMemberOf'] + except: + # Not found + pass + + # strip entryCSN + try: + ecsn_a = amap['entrycsn'] + entry.pop(ecsn_a) + except: + # No ecsn, skip + pass + + # strip sco + try: + sco_a = amap['structuralobjectclass'] + entry.pop(sco_a) + except: + # No sco, skip + pass + + # Write it out + self.writer.unparse(dn, entry) + class DatabaseLdifImport(MigrationAction): def __init__(self, suffix, ldif_path): self.suffix = suffix self.ldif_path = ldif_path + def apply(self, inst): + # Create a unique op id. + op_id = str(uuid4()) + op_path = os.path.join(inst.get_ldif_dir(), f'{op_id}.ldif') + + with open(self.ldif_path, 'r') as f_import: + with open(op_path, 'w') as f_outport: + p = ImportTransformer(f_import, f_outport) + p.parse() + + be = Backends(inst).get(self.suffix) + task = be.import_ldif([op_path]) + task.wait() + def __unicode__(self): return f"DatabaseLdifImport -> {self.suffix} {self.ldif_path}" @@ -211,21 +290,22 @@ class PluginRefintScope(MigrationAction): class PluginUniqueConfigure(MigrationAction): # This enables and configures. - def __init__(self, suffix, attr): + def __init__(self, suffix, attr, uuid): self.suffix = suffix self.attr = attr + self.uuid = uuid def apply(self, inst): aups = AttributeUniquenessPlugins(inst) - aup = aups.create(rdn=f'cn=attr_unique_{self.attr}', properties={ - 'cn': f'cn=attr_unique_{self.attr}', + aup = aups.create(properties={ + 'cn': f'cn=attr_unique_{self.attr}_{self.uuid}', 'uniqueness-attribute-name': self.attr, 'uniqueness-subtrees': self.suffix, 'nsslapd-pluginEnabled': 'on', }) def __unicode__(self): - return f"PluginUniqueConfigure -> {self.suffix}, {self.attr}" + return f"PluginUniqueConfigure -> {self.suffix}, {self.attr} {self.uuid}" class PluginUnknownManual(MigrationAction): def __init__(self, overlay): @@ -412,7 +492,7 @@ class Migration(object): self.plan.append(PluginRefintScope(oldb.suffix)) elif overlay.otype == olOverlayType.UNIQUE: for attr in overlay.attrs: - self.plan.append(PluginUniqueConfigure(oldb.suffix, attr)) + self.plan.append(PluginUniqueConfigure(oldb.suffix, attr, oldb.uuid)) else: raise Exception("Unknown overlay type, this is a bug!") From e251051b32e749031ca7770d73ca931ce0b78155 Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 03:57:01 +0000 Subject: [PATCH 19/20] testing --- diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index a441211..63159d4 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -140,6 +140,8 @@ class DatabaseLdifImport(MigrationAction): p = ImportTransformer(f_import, f_outport) p.parse() + ### time.sleep? + be = Backends(inst).get(self.suffix) task = be.import_ldif([op_path]) task.wait() From 89d24342a928d02143611320e9a14b16e6ecdf6f Mon Sep 17 00:00:00 2001 From: William Brown Date: Sep 07 2020 05:12:16 +0000 Subject: [PATCH 20/20] Cleanup --- diff --git a/src/lib389/lib389/migrate/plan.py b/src/lib389/lib389/migrate/plan.py index 63159d4..0c0379e 100644 --- a/src/lib389/lib389/migrate/plan.py +++ b/src/lib389/lib389/migrate/plan.py @@ -140,9 +140,10 @@ class DatabaseLdifImport(MigrationAction): p = ImportTransformer(f_import, f_outport) p.parse() - ### time.sleep? - be = Backends(inst).get(self.suffix) + task = be.export_ldif() + task.wait() + task = be.import_ldif([op_path]) task.wait()