From c1e022d43f65dedeeed48817f90747006ac5dfd1 Mon Sep 17 00:00:00 2001 From: Viktor Ashirov Date: May 23 2018 14:01:15 +0000 Subject: Issue 49678 - organiSational vs organiZational spelling in lib389 Bug description: RFC4519 defines 'organization' object class using Oxford spelling. It is common for academic, formal, and technical writing for an international readership. We should be following common spelling in function names and methods, otherwise it is confusing and annoying to remember which one is used where. Fix description: Use Oxford spelling for 'organization' and 'organizationalUnit'. https://pagure.io/389-ds-base/issue/49678 Reviewed by: spichugi, mhonek (Thanks!) --- diff --git a/dirsrvtests/tests/stress/cos/cos_scale_template_test.py b/dirsrvtests/tests/stress/cos/cos_scale_template_test.py index c01aac5..3cc823b 100644 --- a/dirsrvtests/tests/stress/cos/cos_scale_template_test.py +++ b/dirsrvtests/tests/stress/cos/cos_scale_template_test.py @@ -14,7 +14,7 @@ from lib389.topologies import topology_st from lib389.plugins import ClassOfServicePlugin from lib389.cos import CosIndirectDefinitions, CosTemplates, CosTemplate from lib389.idm.user import UserAccounts, TEST_USER_PROPERTIES -from lib389.idm.organisationalunit import OrganisationalUnits +from lib389.idm.organizationalunit import OrganizationalUnits from lib389._constants import DEFAULT_SUFFIX @@ -105,7 +105,7 @@ def test_indirect_template_scale(topology_st): ], }) - ous = OrganisationalUnits(topology_st.standalone, DEFAULT_SUFFIX) + ous = OrganizationalUnits(topology_st.standalone, DEFAULT_SUFFIX) ou_temp = ous.create(properties={'ou': 'templates'}) cos_temps = OUCosTemplates(topology_st.standalone, ou_temp.dn) diff --git a/dirsrvtests/tests/suites/acl/acl_test.py b/dirsrvtests/tests/suites/acl/acl_test.py index d8e2a52..a501231 100644 --- a/dirsrvtests/tests/suites/acl/acl_test.py +++ b/dirsrvtests/tests/suites/acl/acl_test.py @@ -13,7 +13,7 @@ from lib389.utils import * from lib389.schema import Schema from lib389.idm.domain import Domain from lib389.idm.user import UserAccount, UserAccounts, TEST_USER_PROPERTIES -from lib389.idm.organisationalrole import OrganisationalRole, OrganisationalRoles +from lib389.idm.organizationalrole import OrganizationalRole, OrganizationalRoles from lib389.topologies import topology_m2 from lib389._constants import SUFFIX, DN_SCHEMA, DN_DM, DEFAULT_SUFFIX, PASSWORD @@ -156,7 +156,7 @@ def _moddn_aci_deny_tree(topology_m2, mod_type=None, ACI_BODY = ACI_TARGET_TO + ACI_TARGET_FROM + ACI_ALLOW + ACI_SUBJECT # topology_m2.ms["master1"].modify_s(SUFFIX, mod) topology_m2.ms["master1"].log.info("Add a DENY aci under %s " % PROD_EXCEPT_DN) - prod_except = OrganisationalRole(topology_m2.ms["master1"], PROD_EXCEPT_DN) + prod_except = OrganizationalRole(topology_m2.ms["master1"], PROD_EXCEPT_DN) prod_except.set('aci', ACI_BODY, mod_type) @@ -226,7 +226,7 @@ def moddn_setup(topology_m2): """ m1 = topology_m2.ms["master1"] - o_roles = OrganisationalRoles(m1, SUFFIX) + o_roles = OrganizationalRoles(m1, SUFFIX) m1.log.info("\n\n######## INITIALIZATION ########\n") @@ -250,7 +250,7 @@ def moddn_setup(topology_m2): # DIT for production/except m1.log.info("Add {}".format(PROD_EXCEPT_DN)) - o_roles_prod = OrganisationalRoles(m1, PRODUCTION_DN) + o_roles_prod = OrganizationalRoles(m1, PRODUCTION_DN) o_roles_prod.create(properties={'cn': EXCEPT_CN, 'description': "production except DIT"}) # enable acl error logging @@ -445,7 +445,7 @@ def test_moddn_staging_prod_9(topology_m2, moddn_setup): old_dn = "%s,%s" % (old_rdn, STAGING_DN) new_rdn = old_rdn new_superior = PRODUCTION_DN - prod = OrganisationalRole(topology_m2.ms["master1"], PRODUCTION_DN) + prod = OrganizationalRole(topology_m2.ms["master1"], PRODUCTION_DN) # # Try to rename without the appropriate ACI => INSUFFICIENT_ACCESS diff --git a/dirsrvtests/tests/suites/paged_results/paged_results_test.py b/dirsrvtests/tests/suites/paged_results/paged_results_test.py index 8f2cadb..8db693c 100644 --- a/dirsrvtests/tests/suites/paged_results/paged_results_test.py +++ b/dirsrvtests/tests/suites/paged_results/paged_results_test.py @@ -19,8 +19,8 @@ from lib389._constants import DN_LDBM, DN_DM, DEFAULT_SUFFIX, BACKEND_NAME, PASS from lib389._controls import SSSRequestControl from lib389.idm.user import UserAccounts -from lib389.idm.organization import Organisation -from lib389.idm.organisationalunit import OrganisationalUnit +from lib389.idm.organization import Organization +from lib389.idm.organizationalunit import OrganizationalUnit from lib389.backend import Backends from lib389._mapped_object import DSLdapObject @@ -97,7 +97,7 @@ def new_suffixes(topology_st): ACI_SUBJECT = '(userdn = "ldap:///anyone");)' ACI_BODY = ACI_TARGET + ACI_ALLOW + ACI_SUBJECT - o_1 = Organisation(topology_st.standalone, NEW_SUFFIX_1) + o_1 = Organization(topology_st.standalone, NEW_SUFFIX_1) o_1.create(properties={ 'o': NEW_SUFFIX_1_NAME, 'aci': ACI_BODY, @@ -113,7 +113,7 @@ def new_suffixes(topology_st): mt = be_2.get_mapping_tree() mt.set_parent(NEW_SUFFIX_1) - ou_2 = OrganisationalUnit(topology_st.standalone, NEW_SUFFIX_2) + ou_2 = OrganizationalUnit(topology_st.standalone, NEW_SUFFIX_2) ou_2.create(properties={ 'ou': NEW_SUFFIX_2_NAME }) diff --git a/dirsrvtests/tests/suites/password/pwdPolicy_inherit_global_test.py b/dirsrvtests/tests/suites/password/pwdPolicy_inherit_global_test.py index 93d6db5..c197119 100644 --- a/dirsrvtests/tests/suites/password/pwdPolicy_inherit_global_test.py +++ b/dirsrvtests/tests/suites/password/pwdPolicy_inherit_global_test.py @@ -16,7 +16,7 @@ from lib389.utils import * from lib389 import Entry from lib389._constants import * from lib389.topologies import topology_st -from lib389.idm.organisationalunit import OrganisationalUnits +from lib389.idm.organizationalunit import OrganizationalUnits logging.getLogger(__name__).setLevel(logging.INFO) log = logging.getLogger(__name__) @@ -52,7 +52,7 @@ def test_user(topology_st, request): 'userPassword': PASSWORD}))) log.info('Adding an aci for the bind user') BN_ACI = '(targetattr="*")(version 3.0; acl "pwp test"; allow (all) userdn="ldap:///%s";)' % BN - ous = OrganisationalUnits(topology_st.standalone, DEFAULT_SUFFIX) + ous = OrganizationalUnits(topology_st.standalone, DEFAULT_SUFFIX) ou_people = ous.get('people') ou_people.add('aci', BN_ACI) except ldap.LDAPError as e: @@ -63,7 +63,7 @@ def test_user(topology_st, request): def fin(): log.info('Deleting user {}'.format(BN)) topology_st.standalone.delete_s(BN) - ous = OrganisationalUnits(topology_st.standalone, DEFAULT_SUFFIX) + ous = OrganizationalUnits(topology_st.standalone, DEFAULT_SUFFIX) ou_people = ous.get('people') ou_people.remove('aci', BN_ACI) @@ -100,7 +100,7 @@ def password_policy(topology_st, test_user): log.info('Add pwdpolicysubentry attribute to {}'.format(OU_PEOPLE)) try: - ous = OrganisationalUnits(topology_st.standalone, DEFAULT_SUFFIX) + ous = OrganizationalUnits(topology_st.standalone, DEFAULT_SUFFIX) ou_people = ous.get('people') ou_people.set('pwdpolicysubentry', PWP_CONTAINER_PEOPLE) except ldap.LDAPError as e: diff --git a/dirsrvtests/tests/suites/password/regression_test.py b/dirsrvtests/tests/suites/password/regression_test.py index bb54ea3..a1ea66d 100644 --- a/dirsrvtests/tests/suites/password/regression_test.py +++ b/dirsrvtests/tests/suites/password/regression_test.py @@ -11,7 +11,7 @@ from lib389._constants import SUFFIX, PASSWORD, DN_DM from lib389.idm.user import UserAccounts from lib389.utils import ldap, os, logging, ensure_bytes from lib389.topologies import topology_st as topo -from lib389.idm.organisationalunit import OrganisationalUnits +from lib389.idm.organizationalunit import OrganizationalUnits DEBUGGING = os.getenv("DEBUGGING", default=False) if DEBUGGING: diff --git a/dirsrvtests/tests/suites/plugins/acceptance_test.py b/dirsrvtests/tests/suites/plugins/acceptance_test.py index 2ab8952..f7b66fe 100644 --- a/dirsrvtests/tests/suites/plugins/acceptance_test.py +++ b/dirsrvtests/tests/suites/plugins/acceptance_test.py @@ -20,7 +20,7 @@ from lib389._constants import * from lib389.dseldif import DSEldif from lib389.idm.user import UserAccounts, UserAccount from lib389.idm.group import Groups -from lib389.idm.organisationalunit import OrganisationalUnits +from lib389.idm.organizationalunit import OrganizationalUnits from lib389.idm.domain import Domain from lib389.topologies import create_topology, topology_i2 as topo @@ -316,7 +316,7 @@ def test_automember(topo, args=None): groups = Groups(inst, DEFAULT_SUFFIX) group = groups.create(properties={'cn': 'group'}) - ous = OrganisationalUnits(inst, DEFAULT_SUFFIX) + ous = OrganizationalUnits(inst, DEFAULT_SUFFIX) branch1 = ous.create(properties={'ou': 'branch1'}) branch2 = ous.create(properties={'ou': 'branch2'}) @@ -879,7 +879,7 @@ def test_mep(topo, args=None): # Configure plugin ############################################################################ # Add our org units - ous = OrganisationalUnits(inst, DEFAULT_SUFFIX) + ous = OrganizationalUnits(inst, DEFAULT_SUFFIX) ou_people = ous.create(properties={'ou': 'managed_people'}) ou_groups = ous.create(properties={'ou': 'managed_groups'}) diff --git a/dirsrvtests/tests/suites/replication/conflict_resolve_test.py b/dirsrvtests/tests/suites/replication/conflict_resolve_test.py index 31b9aeb..06a2baa 100644 --- a/dirsrvtests/tests/suites/replication/conflict_resolve_test.py +++ b/dirsrvtests/tests/suites/replication/conflict_resolve_test.py @@ -15,7 +15,7 @@ from lib389._constants import * from lib389.idm.nscontainer import nsContainers from lib389.idm.user import UserAccounts from lib389.idm.group import Groups -from lib389.idm.organisationalunit import OrganisationalUnits +from lib389.idm.organizationalunit import OrganizationalUnits from lib389.replica import ReplicationManager from lib389.agreement import Agreements from lib389.plugins import MemberOfPlugin @@ -489,7 +489,7 @@ class TestTwoMasters: M2 = topology_m2.ms["master2"] repl = ReplicationManager(SUFFIX) - ous = OrganisationalUnits(M1, DEFAULT_SUFFIX) + ous = OrganizationalUnits(M1, DEFAULT_SUFFIX) ou_people = ous.create(properties={'ou': 'managed_people'}) ou_groups = ous.create(properties={'ou': 'managed_groups'}) diff --git a/dirsrvtests/tests/suites/replication/regression_test.py b/dirsrvtests/tests/suites/replication/regression_test.py index 67a5e4b..2b81916 100644 --- a/dirsrvtests/tests/suites/replication/regression_test.py +++ b/dirsrvtests/tests/suites/replication/regression_test.py @@ -12,7 +12,7 @@ from lib389.utils import * from lib389.topologies import topology_m2 as topo_m2, TopologyMain, topology_m3 as topo_m3 from lib389._constants import * from . import get_repl_entries -from lib389.idm.organisationalunit import OrganisationalUnits +from lib389.idm.organizationalunit import OrganizationalUnits from lib389.idm.user import UserAccount from lib389.replica import Replicas, ReplicationManager from lib389.changelog import Changelog5 @@ -84,7 +84,7 @@ def test_repl_modrdn(topo_m2): :id: a3e17698-9eb4-41e0-b537-8724b9915fa6 :setup: Two masters replication setup :steps: - 1. Add 3 test OrganisationalUnits A, B and C + 1. Add 3 test OrganizationalUnits A, B and C 2. Add 1 test user under OU=A 3. Add same test user under OU=B 4. Stop Replication @@ -111,7 +111,7 @@ def test_repl_modrdn(topo_m2): repl = ReplicationManager(DEFAULT_SUFFIX) log.info("Add test entries - Add 3 OUs and 2 same users under 2 different OUs") - OUs = OrganisationalUnits(master1, DEFAULT_SUFFIX) + OUs = OrganizationalUnits(master1, DEFAULT_SUFFIX) OU_A = OUs.create(properties={ 'ou': 'A', 'description': 'A', diff --git a/dirsrvtests/tests/suites/replication/wait_for_async_feature_test.py b/dirsrvtests/tests/suites/replication/wait_for_async_feature_test.py index 90c8c15..c79a0e2 100644 --- a/dirsrvtests/tests/suites/replication/wait_for_async_feature_test.py +++ b/dirsrvtests/tests/suites/replication/wait_for_async_feature_test.py @@ -16,7 +16,7 @@ from lib389.topologies import topology_m2 from lib389._constants import SUFFIX, DEFAULT_SUFFIX, ErrorLog from lib389.agreement import Agreements -from lib389.idm.organisationalunit import OrganisationalUnits +from lib389.idm.organizationalunit import OrganizationalUnits logging.getLogger(__name__).setLevel(logging.DEBUG) log = logging.getLogger(__name__) @@ -59,7 +59,7 @@ def entries(topology_m2, request): test_list = [] log.info("Add 100 nested entries under replicated suffix on %s" % master1.serverid) - ous = OrganisationalUnits(master1, DEFAULT_SUFFIX) + ous = OrganizationalUnits(master1, DEFAULT_SUFFIX) for i in range(100): ou = ous.create(properties={ 'ou' : 'test_ou_%s' % i, diff --git a/src/lib389/cli/dsidm b/src/lib389/cli/dsidm index 4581cb3..0f3941f 100755 --- a/src/lib389/cli/dsidm +++ b/src/lib389/cli/dsidm @@ -20,7 +20,7 @@ logging.basicConfig(format='%(message)s') from lib389._constants import DN_DM from lib389.cli_idm import account as cli_account from lib389.cli_idm import initialise as cli_init -from lib389.cli_idm import organisationalunit as cli_ou +from lib389.cli_idm import organizationalunit as cli_ou from lib389.cli_idm import group as cli_group from lib389.cli_idm import posixgroup as cli_posixgroup from lib389.cli_idm import user as cli_user diff --git a/src/lib389/doc/source/identitymanagement.rst b/src/lib389/doc/source/identitymanagement.rst index 391a691..ac22976 100644 --- a/src/lib389/doc/source/identitymanagement.rst +++ b/src/lib389/doc/source/identitymanagement.rst @@ -6,5 +6,5 @@ Identity Management user.rst group.rst domain.rst - organisationalunit.rst + organizationalunit.rst services.rst diff --git a/src/lib389/doc/source/organisationalunit.rst b/src/lib389/doc/source/organisationalunit.rst deleted file mode 100644 index e232f08..0000000 --- a/src/lib389/doc/source/organisationalunit.rst +++ /dev/null @@ -1,41 +0,0 @@ -Organisational Unit -==================== - -Usage example --------------- -:: - - # Don't forget that Services requires created rdn='ou=Services' - # This you can create with OrganisationalUnits - - from lib389.idm.organisationalunit import OrganisationalUnits - from lib389.idm.services import ServiceAccounts - - ous = OrganisationalUnits(standalone, DEFAULT_SUFFIX) - services = ServiceAccounts(standalone, DEFAULT_SUFFIX) - - # Create the OU for them - ous.create(properties={ - 'ou': 'Services', - 'description': 'Computer Service accounts which request DS bind', - }) - - # Now, we can create the services from here. - service = services.create(properties={ - 'cn': 'testbind', - 'userPassword': 'Password1' - }) - - conn = service.bind('Password1') - conn.unbind_s() - - -Module documentation ------------------------ - -.. autoclass:: lib389.idm.organisationalunit.OrganisationalUnits - :members: - -.. autoclass:: lib389.idm.organisationalunit.OrganisationalUnit - :members: - diff --git a/src/lib389/doc/source/organizationalunit.rst b/src/lib389/doc/source/organizationalunit.rst new file mode 100644 index 0000000..2a43a3a --- /dev/null +++ b/src/lib389/doc/source/organizationalunit.rst @@ -0,0 +1,41 @@ +Organizational Unit +==================== + +Usage example +-------------- +:: + + # Don't forget that Services requires created rdn='ou=Services' + # This you can create with OrganizationalUnits + + from lib389.idm.organizationalunit import OrganizationalUnits + from lib389.idm.services import ServiceAccounts + + ous = OrganizationalUnits(standalone, DEFAULT_SUFFIX) + services = ServiceAccounts(standalone, DEFAULT_SUFFIX) + + # Create the OU for them + ous.create(properties={ + 'ou': 'Services', + 'description': 'Computer Service accounts which request DS bind', + }) + + # Now, we can create the services from here. + service = services.create(properties={ + 'cn': 'testbind', + 'userPassword': 'Password1' + }) + + conn = service.bind('Password1') + conn.unbind_s() + + +Module documentation +----------------------- + +.. autoclass:: lib389.idm.organizationalunit.OrganizationalUnits + :members: + +.. autoclass:: lib389.idm.organizationalunit.OrganizationalUnit + :members: + diff --git a/src/lib389/doc/source/services.rst b/src/lib389/doc/source/services.rst index b556e8a..a28cb10 100644 --- a/src/lib389/doc/source/services.rst +++ b/src/lib389/doc/source/services.rst @@ -6,12 +6,12 @@ Usage example :: # Don't forget that Services requires created rdn='ou=Services' - # This you can create with OrganisationalUnits + # This you can create with OrganizationalUnits - from lib389.idm.organisationalunit import OrganisationalUnits + from lib389.idm.organizationalunit import OrganizationalUnits from lib389.idm.services import ServiceAccounts - ous = OrganisationalUnits(standalone, DEFAULT_SUFFIX) + ous = OrganizationalUnits(standalone, DEFAULT_SUFFIX) services = ServiceAccounts(standalone, DEFAULT_SUFFIX) # Create the OU for them diff --git a/src/lib389/lib389/cli_idm/organisationalunit.py b/src/lib389/lib389/cli_idm/organisationalunit.py deleted file mode 100644 index a9a9a08..0000000 --- a/src/lib389/lib389/cli_idm/organisationalunit.py +++ /dev/null @@ -1,76 +0,0 @@ -# --- BEGIN COPYRIGHT BLOCK --- -# Copyright (C) 2016, William Brown -# All rights reserved. -# -# License: GPL (version 3 or any later version). -# See LICENSE for details. -# --- END COPYRIGHT BLOCK --- - -import argparse -from lib389.idm.organisationalunit import OrganisationalUnit, OrganisationalUnits, MUST_ATTRIBUTES - -from lib389.cli_base import ( - populate_attr_arguments, - _generic_list, - _generic_get, - _generic_get_dn, - _generic_create, - _generic_delete, - _get_arg, - _get_args, - _get_attributes, - _warn, - ) - -SINGULAR = OrganisationalUnit -MANY = OrganisationalUnits -RDN = 'ou' - -# These are a generic specification, try not to tamper with them - -def list(inst, basedn, log, args): - _generic_list(inst, basedn, log.getChild('_generic_list'), MANY) - -def get(inst, basedn, log, args): - rdn = _get_arg( args.selector, msg="Enter %s to retrieve" % RDN) - _generic_get(inst, basedn, log.getChild('_generic_get'), MANY, rdn) - -def get_dn(inst, basedn, log, args): - dn = lambda args: _get_arg( args.dn, msg="Enter dn to retrieve") - _generic_get_dn(inst, basedn, log.getChild('_generic_get_dn'), MANY, dn) - -def create(inst, basedn, log, args): - kwargs = _get_attributes(args, MUST_ATTRIBUTES) - _generic_create(inst, basedn, log.getChild('_generic_create'), MANY, kwargs) - -def delete(inst, basedn, log, args): - dn = _get_arg( args, msg="Enter dn to delete") - _warn(dn, msg="Deleting %s %s" % (SINGULAR.__name__, dn)) - _generic_delete(inst, basedn, log.getChild('_generic_delete'), SINGULAR, dn) - -def create_parser(subparsers): - ou_parser = subparsers.add_parser('organisationalunit', help='Manage organisational units') - - subcommands = ou_parser.add_subparsers(help='action') - - list_parser = subcommands.add_parser('list', help='list') - list_parser.set_defaults(func=list) - - get_parser = subcommands.add_parser('get', help='get') - get_parser.set_defaults(func=get) - get_parser.add_argument('selector', nargs='?', help='The term to search for') - - get_dn_parser = subcommands.add_parser('get_dn', help='get_dn') - get_dn_parser.set_defaults(func=get_dn) - get_dn_parser.add_argument('dn', nargs='?', help='The dn to get') - - create_parser = subcommands.add_parser('create', help='create') - create_parser.set_defaults(func=create) - populate_attr_arguments(create_parser, MUST_ATTRIBUTES) - - delete_parser = subcommands.add_parser('delete', help='deletes the object') - delete_parser.set_defaults(func=delete) - delete_parser.add_argument('dn', nargs='?', help='The dn to delete') - - -# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 diff --git a/src/lib389/lib389/cli_idm/organizationalunit.py b/src/lib389/lib389/cli_idm/organizationalunit.py new file mode 100644 index 0000000..43e551d --- /dev/null +++ b/src/lib389/lib389/cli_idm/organizationalunit.py @@ -0,0 +1,76 @@ +# --- BEGIN COPYRIGHT BLOCK --- +# Copyright (C) 2016, William Brown +# All rights reserved. +# +# License: GPL (version 3 or any later version). +# See LICENSE for details. +# --- END COPYRIGHT BLOCK --- + +import argparse +from lib389.idm.organizationalunit import OrganizationalUnit, OrganizationalUnits, MUST_ATTRIBUTES + +from lib389.cli_base import ( + populate_attr_arguments, + _generic_list, + _generic_get, + _generic_get_dn, + _generic_create, + _generic_delete, + _get_arg, + _get_args, + _get_attributes, + _warn, + ) + +SINGULAR = OrganizationalUnit +MANY = OrganizationalUnits +RDN = 'ou' + +# These are a generic specification, try not to tamper with them + +def list(inst, basedn, log, args): + _generic_list(inst, basedn, log.getChild('_generic_list'), MANY) + +def get(inst, basedn, log, args): + rdn = _get_arg( args.selector, msg="Enter %s to retrieve" % RDN) + _generic_get(inst, basedn, log.getChild('_generic_get'), MANY, rdn) + +def get_dn(inst, basedn, log, args): + dn = lambda args: _get_arg( args.dn, msg="Enter dn to retrieve") + _generic_get_dn(inst, basedn, log.getChild('_generic_get_dn'), MANY, dn) + +def create(inst, basedn, log, args): + kwargs = _get_attributes(args, MUST_ATTRIBUTES) + _generic_create(inst, basedn, log.getChild('_generic_create'), MANY, kwargs) + +def delete(inst, basedn, log, args): + dn = _get_arg( args, msg="Enter dn to delete") + _warn(dn, msg="Deleting %s %s" % (SINGULAR.__name__, dn)) + _generic_delete(inst, basedn, log.getChild('_generic_delete'), SINGULAR, dn) + +def create_parser(subparsers): + ou_parser = subparsers.add_parser('organizationalunit', help='Manage organizational units') + + subcommands = ou_parser.add_subparsers(help='action') + + list_parser = subcommands.add_parser('list', help='list') + list_parser.set_defaults(func=list) + + get_parser = subcommands.add_parser('get', help='get') + get_parser.set_defaults(func=get) + get_parser.add_argument('selector', nargs='?', help='The term to search for') + + get_dn_parser = subcommands.add_parser('get_dn', help='get_dn') + get_dn_parser.set_defaults(func=get_dn) + get_dn_parser.add_argument('dn', nargs='?', help='The dn to get') + + create_parser = subcommands.add_parser('create', help='create') + create_parser.set_defaults(func=create) + populate_attr_arguments(create_parser, MUST_ATTRIBUTES) + + delete_parser = subcommands.add_parser('delete', help='deletes the object') + delete_parser.set_defaults(func=delete) + delete_parser.add_argument('dn', nargs='?', help='The dn to delete') + + +# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 diff --git a/src/lib389/lib389/configurations/config_001003006.py b/src/lib389/lib389/configurations/config_001003006.py index 9ec80bf..42f5f30 100644 --- a/src/lib389/lib389/configurations/config_001003006.py +++ b/src/lib389/lib389/configurations/config_001003006.py @@ -12,7 +12,7 @@ from .config import baseconfig, configoperation from .sample import sampleentries from lib389.idm.domain import Domain -from lib389.idm.organisationalunit import OrganisationalUnits +from lib389.idm.organizationalunit import OrganizationalUnits from lib389.idm.group import UniqueGroups, UniqueGroup from lib389.plugins import WhoamiPlugin @@ -37,7 +37,7 @@ class c001003006_sample_entries(sampleentries): 'aci' : '(targetattr ="*")(version 3.0;acl "Directory Administrators Group";allow (all) (groupdn = "ldap:///cn=Directory Administrators,{BASEDN}");)'.format(BASEDN=self._basedn) }) # Create the OUs - ous = OrganisationalUnits(self._instance, self._basedn) + ous = OrganizationalUnits(self._instance, self._basedn) ous.create(properties = { 'ou': 'Groups', }) diff --git a/src/lib389/lib389/configurations/config_001004000.py b/src/lib389/lib389/configurations/config_001004000.py index 36b89e9..13fa933 100644 --- a/src/lib389/lib389/configurations/config_001004000.py +++ b/src/lib389/lib389/configurations/config_001004000.py @@ -12,7 +12,7 @@ from .config import baseconfig, configoperation from .sample import sampleentries from lib389.idm.domain import Domain -from lib389.idm.organisationalunit import OrganisationalUnits +from lib389.idm.organizationalunit import OrganizationalUnits from lib389.idm.group import Groups from lib389.idm.posixgroup import PosixGroups from lib389.idm.user import nsUserAccounts @@ -53,7 +53,7 @@ class c001004000_sample_entries(sampleentries): }) # Create our ous. - ous = OrganisationalUnits(self._instance, self._basedn) + ous = OrganizationalUnits(self._instance, self._basedn) ous.create(properties = { 'ou': 'groups', 'aci': [ diff --git a/src/lib389/lib389/idm/nscontainer.py b/src/lib389/lib389/idm/nscontainer.py index 5ea2aff..88e69cf 100644 --- a/src/lib389/lib389/idm/nscontainer.py +++ b/src/lib389/lib389/idm/nscontainer.py @@ -10,7 +10,7 @@ from lib389._mapped_object import DSLdapObject, DSLdapObjects class nsContainer(DSLdapObject): """A single instance of a nsContainer. This is similar to OU - for organisation of a directory tree. + for organization of a directory tree. :param instance: An instance :type instance: lib389.DirSrv diff --git a/src/lib389/lib389/idm/organisationalrole.py b/src/lib389/lib389/idm/organisationalrole.py deleted file mode 100644 index 1d560f2..0000000 --- a/src/lib389/lib389/idm/organisationalrole.py +++ /dev/null @@ -1,54 +0,0 @@ -# --- BEGIN COPYRIGHT BLOCK --- -# Copyright (C) 2017 Red Hat, Inc. -# All rights reserved. -# -# License: GPL (version 3 or any later version). -# See LICENSE for details. -# --- END COPYRIGHT BLOCK --- - -from lib389._mapped_object import DSLdapObject, DSLdapObjects - -MUST_ATTRIBUTES = [ - 'cn', -] -RDN = 'cn' - - -class OrganisationalRole(DSLdapObject): - """A single instance of OrganizationalRole entry - - :param instance: An instance - :type instance: lib389.DirSrv - :param dn: Entry DN - :type dn: str - """ - - def __init__(self, instance, dn=None): - super(OrganisationalRole, self).__init__(instance, dn) - self._rdn_attribute = RDN - self._must_attributes = MUST_ATTRIBUTES - self._create_objectclasses = [ - 'top', - 'organizationalrole', - ] - self._protected = False - - -class OrganisationalRoles(DSLdapObjects): - """DSLdapObjects that represents OrganizationalRole entry - - :param instance: An instance - :type instance: lib389.DirSrv - :param basedn: Base DN for all group entries below - :type basedn: str - """ - - def __init__(self, instance, basedn): - super(OrganisationalRoles, self).__init__(instance) - self._objectclasses = [ - 'organizationalrole', - ] - self._filterattrs = [RDN] - self._childobject = OrganisationalRole - self._basedn = basedn - diff --git a/src/lib389/lib389/idm/organisationalunit.py b/src/lib389/lib389/idm/organisationalunit.py deleted file mode 100644 index ac3de05..0000000 --- a/src/lib389/lib389/idm/organisationalunit.py +++ /dev/null @@ -1,54 +0,0 @@ -# --- BEGIN COPYRIGHT BLOCK --- -# Copyright (C) 2016, William Brown -# All rights reserved. -# -# License: GPL (version 3 or any later version). -# See LICENSE for details. -# --- END COPYRIGHT BLOCK --- - -from lib389._mapped_object import DSLdapObject, DSLdapObjects - -MUST_ATTRIBUTES = [ - 'ou', -] -RDN = 'ou' - -class OrganisationalUnit(DSLdapObject): - """A single instance of OrganizationalUnit entry - - :param instance: An instance - :type instance: lib389.DirSrv - :param dn: Entry DN - :type dn: str - """ - - def __init__(self, instance, dn=None): - super(OrganisationalUnit, self).__init__(instance, dn) - self._rdn_attribute = RDN - # Can I generate these from schema? - self._must_attributes = MUST_ATTRIBUTES - self._create_objectclasses = [ - 'top', - 'organizationalunit', - ] - self._protected = False - -class OrganisationalUnits(DSLdapObjects): - """DSLdapObjects that represents OrganizationalUnits entry - - :param instance: An instance - :type instance: lib389.DirSrv - :param basedn: Base DN for all group entries below - :type basedn: str - """ - - def __init__(self, instance, basedn): - super(OrganisationalUnits, self).__init__(instance) - self._objectclasses = [ - 'organizationalunit', - ] - self._filterattrs = [RDN] - self._childobject = OrganisationalUnit - self._basedn = basedn - - diff --git a/src/lib389/lib389/idm/organization.py b/src/lib389/lib389/idm/organization.py index c6a9f61..a78f7fd 100644 --- a/src/lib389/lib389/idm/organization.py +++ b/src/lib389/lib389/idm/organization.py @@ -49,10 +49,5 @@ class Organizations(DSLdapObjects): 'organization', ] self._filterattrs = [RDN] - self._childobject = Organisation + self._childobject = Organization self._basedn = basedn - -# Alias for "rest of world" :) -Organisation = Organization -Organisations = Organizations - diff --git a/src/lib389/lib389/idm/organizationalrole.py b/src/lib389/lib389/idm/organizationalrole.py new file mode 100644 index 0000000..5388c28 --- /dev/null +++ b/src/lib389/lib389/idm/organizationalrole.py @@ -0,0 +1,54 @@ +# --- BEGIN COPYRIGHT BLOCK --- +# Copyright (C) 2017 Red Hat, Inc. +# All rights reserved. +# +# License: GPL (version 3 or any later version). +# See LICENSE for details. +# --- END COPYRIGHT BLOCK --- + +from lib389._mapped_object import DSLdapObject, DSLdapObjects + +MUST_ATTRIBUTES = [ + 'cn', +] +RDN = 'cn' + + +class OrganizationalRole(DSLdapObject): + """A single instance of OrganizationalRole entry + + :param instance: An instance + :type instance: lib389.DirSrv + :param dn: Entry DN + :type dn: str + """ + + def __init__(self, instance, dn=None): + super(OrganizationalRole, self).__init__(instance, dn) + self._rdn_attribute = RDN + self._must_attributes = MUST_ATTRIBUTES + self._create_objectclasses = [ + 'top', + 'organizationalrole', + ] + self._protected = False + + +class OrganizationalRoles(DSLdapObjects): + """DSLdapObjects that represents OrganizationalRole entry + + :param instance: An instance + :type instance: lib389.DirSrv + :param basedn: Base DN for all group entries below + :type basedn: str + """ + + def __init__(self, instance, basedn): + super(OrganizationalRoles, self).__init__(instance) + self._objectclasses = [ + 'organizationalrole', + ] + self._filterattrs = [RDN] + self._childobject = OrganizationalRole + self._basedn = basedn + diff --git a/src/lib389/lib389/idm/organizationalunit.py b/src/lib389/lib389/idm/organizationalunit.py new file mode 100644 index 0000000..bc9454e --- /dev/null +++ b/src/lib389/lib389/idm/organizationalunit.py @@ -0,0 +1,54 @@ +# --- BEGIN COPYRIGHT BLOCK --- +# Copyright (C) 2016, William Brown +# All rights reserved. +# +# License: GPL (version 3 or any later version). +# See LICENSE for details. +# --- END COPYRIGHT BLOCK --- + +from lib389._mapped_object import DSLdapObject, DSLdapObjects + +MUST_ATTRIBUTES = [ + 'ou', +] +RDN = 'ou' + +class OrganizationalUnit(DSLdapObject): + """A single instance of OrganizationalUnit entry + + :param instance: An instance + :type instance: lib389.DirSrv + :param dn: Entry DN + :type dn: str + """ + + def __init__(self, instance, dn=None): + super(OrganizationalUnit, self).__init__(instance, dn) + self._rdn_attribute = RDN + # Can I generate these from schema? + self._must_attributes = MUST_ATTRIBUTES + self._create_objectclasses = [ + 'top', + 'organizationalunit', + ] + self._protected = False + +class OrganizationalUnits(DSLdapObjects): + """DSLdapObjects that represents OrganizationalUnits entry + + :param instance: An instance + :type instance: lib389.DirSrv + :param basedn: Base DN for all group entries below + :type basedn: str + """ + + def __init__(self, instance, basedn): + super(OrganizationalUnits, self).__init__(instance) + self._objectclasses = [ + 'organizationalunit', + ] + self._filterattrs = [RDN] + self._childobject = OrganizationalUnit + self._basedn = basedn + + diff --git a/src/lib389/lib389/replica.py b/src/lib389/lib389/replica.py index 27bd0f8..29a1e2f 100644 --- a/src/lib389/lib389/replica.py +++ b/src/lib389/lib389/replica.py @@ -30,7 +30,7 @@ from lib389.idm.domain import Domain from lib389.idm.group import Groups from lib389.idm.services import ServiceAccounts -from lib389.idm.organisationalunit import OrganisationalUnits +from lib389.idm.organizationalunit import OrganizationalUnits from lib389.agreement import Agreements @@ -1385,7 +1385,7 @@ class ReplicationManager(object): """ repl_group = self._create_service_group(from_instance) # Create our service account. - ous = OrganisationalUnits(from_instance, self._suffix) + ous = OrganizationalUnits(from_instance, self._suffix) ous.ensure_state(properties={ 'ou': 'Services' }) diff --git a/src/lib389/lib389/tests/idm/services_test.py b/src/lib389/lib389/tests/idm/services_test.py index 6b6c457..f9bbe87 100644 --- a/src/lib389/lib389/tests/idm/services_test.py +++ b/src/lib389/lib389/tests/idm/services_test.py @@ -11,7 +11,7 @@ from lib389.properties import * from lib389.tasks import * from lib389.utils import * -from lib389.idm.organisationalunit import OrganisationalUnits +from lib389.idm.organizationalunit import OrganizationalUnits from lib389.idm.services import ServiceAccounts from lib389.topologies import topology_st as topology @@ -34,7 +34,7 @@ def test_services(topology): These are really useful in simple tests. """ - ous = OrganisationalUnits(topology.standalone, DEFAULT_SUFFIX) + ous = OrganizationalUnits(topology.standalone, DEFAULT_SUFFIX) services = ServiceAccounts(topology.standalone, DEFAULT_SUFFIX) # Create the OU for them. diff --git a/src/lib389/lib389/tests/plugins/utils.py b/src/lib389/lib389/tests/plugins/utils.py index f5dfff4..50fb505 100644 --- a/src/lib389/lib389/tests/plugins/utils.py +++ b/src/lib389/lib389/tests/plugins/utils.py @@ -9,7 +9,7 @@ from lib389.idm.user import UserAccount from lib389.idm.group import Group, UniqueGroup -from lib389.idm.organisationalunit import OrganisationalUnit +from lib389.idm.organizationalunit import OrganizationalUnit from lib389._constants import DEFAULT_SUFFIX @@ -97,7 +97,7 @@ def create_test_ou(instance, ou=None, suffix=None): ID each time. However, if it is provided with an existing ou/suffix it will fail to create a new ou and it will raise an LDAP error. - Returns an OrganisationalUnit object. + Returns an OrganizationalUnit object. """ global test_ou_id @@ -114,7 +114,7 @@ def create_test_ou(instance, ou=None, suffix=None): 'ou': ou, } - ou = OrganisationalUnit(instance, dn) + ou = OrganizationalUnit(instance, dn) ou.create(properties=properties) return ou