diff options
| author | Martin Basti <mbasti@redhat.com> | 2015-02-23 17:46:46 +0100 |
|---|---|---|
| committer | Tomas Babej <tbabej@redhat.com> | 2015-03-05 12:43:35 +0100 |
| commit | 52b7101c1148618d5c8e2ec25576cc7ad3e9b7bb (patch) | |
| tree | 1a69f4c13728c9ca7141ed1e32552b4d65f37474 /ipaserver/install/plugins | |
| parent | 4b2ec5468fd8b76d118f919f8d02ca4fccee9aab (diff) | |
Fix uniqueness plugins
* add uniqueness-subtree-entries-oc:posixAccount to ensure idviews users
will not be forced to have unique uid
* remove unneded update plugins -> update was moved to .update file
* add uniqueness-across-all-subtrees required by user lifecycle
management
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Diffstat (limited to 'ipaserver/install/plugins')
| -rw-r--r-- | ipaserver/install/plugins/update_uniqueness.py | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/ipaserver/install/plugins/update_uniqueness.py b/ipaserver/install/plugins/update_uniqueness.py index 8769f83a1..3017d5ac1 100644 --- a/ipaserver/install/plugins/update_uniqueness.py +++ b/ipaserver/install/plugins/update_uniqueness.py @@ -223,94 +223,3 @@ class update_uniqueness_plugins_to_new_syntax(PreUpdate): return False, True, update_list api.register(update_uniqueness_plugins_to_new_syntax) - - -class update_uid_uniqueness(PostUpdate): - """ - Create plugin configuration to ensure uid uniqueness - """ - order = MIDDLE - - uid_uniqueness_dn = DN(('cn', 'uid uniqueness'), ('cn', 'plugins'), ('cn', 'config')) - - uid_uniqueness_template = { - 'objectClass' : ["top", "nsSlapdPlugin", "extensibleObject"], - 'cn' : 'uid uniqueness', - 'nsslapd-pluginPath' : 'libattr-unique-plugin', - 'nsslapd-pluginInitfunc' : 'NSUniqueAttr_Init', - 'nsslapd-pluginType' : 'betxnpreoperation', - 'nsslapd-pluginEnabled' : 'on', - 'uniqueness-attribute-name' : 'uid', - 'uniqueness-subtrees' : 'dc=example,dc=com', - 'uniqueness-across-all-subtrees': 'off', - 'uniqueness-subtree-entries-oc' : 'posixAccount', - 'nsslapd-plugin-depends-on-type': 'database', - 'nsslapd-pluginId' : 'none', - 'nsslapd-pluginVersion' : 'none', - 'nsslapd-pluginVendor' : 'none', - 'nsslapd-pluginDescription' : 'none', - } - - def execute(self, **options): - ldap = self.obj.backend - - config_dn = DN(('cn','config')) - search_filter = ("(&(objectclass=nsslapdplugin)" - "(nsslapd-pluginpath=libattr-unique-plugin)" - "(nsslapd-pluginInitfunc=NSUniqueAttr_Init)" - "(!(nsslapd-pluginenabled=off))" - "(|(uniqueness-attribute-name=uid)(nsslapd-plugarg0=uid)))") - root_logger.debug("update_uid_uniqueness: search for existing uid uniqueness " - "configuration") - - try: - (entries, truncated) = ldap.find_entries(search_filter, ['*'], config_dn, - time_limit=0, size_limit=0) - except errors.NotFound: - # add entry - entries = [] - except errors.ExecutionError, e: - root_logger.error("update_uid_uniqueness: cannot retrieve " - "list of uniqueness plugin instances: %s", e) - return (False, False, []) - - if len(entries) > 1: - root_logger.error("update_uid_uniqueness: found more than one uid " - "uniqueness plugin definition: %s", [str(x.dn) for x in entries]) - return (False, False, []) - - error = False - if not entries: - root_logger.debug("update_uid_uniqueness: adding new uid uniqueness " - "plugin definition") - uid_uniqueness_plugin_attrs = dict(self.uid_uniqueness_template) - uid_uniqueness_plugin_attrs['uniqueness-subtrees'] = api.env.basedn - uid_uniqueness_plugin = ldap.make_entry(self.uid_uniqueness_dn, uid_uniqueness_plugin_attrs) - - try: - ldap.add_entry(uid_uniqueness_plugin) - except errors.ExecutionError, e: - root_logger.debug("update_uid_uniqueness: cannot " - "create uid uniqueness plugin entry: %s", e) - error = True - else: - root_logger.debug("update_uid_uniqueness: updating existing uid uniqueness " - "plugin definition") - uid_uniqueness_plugin_attrs = dict(self.uid_uniqueness_template) - uid_uniqueness_plugin_attrs['uniqueness-subtrees'] = api.env.basedn - uid_uniqueness_plugin_attrs['cn'] = entries[0]['cn'] - uid_uniqueness_plugin = ldap.make_entry(entries[0].dn, uid_uniqueness_plugin_attrs) - - try: - ldap.update_entry(uid_uniqueness_plugin) - except errors.ExecutionError, e: - root_logger.debug("update_uid_uniqueness: cannot " - "update uid uniqueness plugin entry: %s", e) - error = True - - if error: - root_logger.error("update_uid_uniqueness: error(s)" - "detected during plugin update") - return (True, False, []) - -api.register(update_uid_uniqueness) |
