summaryrefslogtreecommitdiffstats
path: root/ipalib/plugins
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2011-05-23 15:07:03 -0400
committerMartin Kosek <mkosek@redhat.com>2011-05-30 09:16:30 +0200
commit868d4e734ed0f22221f25a1067fbf57141b64c21 (patch)
treea61048aa525c0dcc08d4fdbf8f138f17021ff01a /ipalib/plugins
parent6304d9173c16e082d6844b329987680b85086cb7 (diff)
downloadfreeipa-868d4e734ed0f22221f25a1067fbf57141b64c21.tar.gz
freeipa-868d4e734ed0f22221f25a1067fbf57141b64c21.tar.xz
freeipa-868d4e734ed0f22221f25a1067fbf57141b64c21.zip
Do a lazy retrieval of the LDAP schema rather than at module load.
Attempt to retrieve the schema the first time it is needed rather than when Apache is started. A global copy is cached for future requests for performance reasons. The schema will be retrieved once per Apache child process. ticket 583
Diffstat (limited to 'ipalib/plugins')
-rw-r--r--ipalib/plugins/baseldap.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 053a0a5a3..3908dfe3e 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -600,6 +600,7 @@ class LDAPCreate(CallbackInterface, crud.Create):
)
_check_single_value_attrs(self.params, entry_attrs)
+ ldap.get_schema()
_check_limit_object_class(self.api.Backend.ldap2.schema.attribute_types(self.obj.limit_object_classes), entry_attrs.keys(), allow_only=True)
_check_limit_object_class(self.api.Backend.ldap2.schema.attribute_types(self.obj.disallow_object_classes), entry_attrs.keys(), allow_only=False)
@@ -882,6 +883,7 @@ class LDAPUpdate(LDAPQuery, crud.Update):
_check_single_value_attrs(self.params, entry_attrs)
_check_empty_attrs(self.obj.params, entry_attrs)
+ ldap.get_schema()
_check_limit_object_class(self.api.Backend.ldap2.schema.attribute_types(self.obj.limit_object_classes), entry_attrs.keys(), allow_only=True)
_check_limit_object_class(self.api.Backend.ldap2.schema.attribute_types(self.obj.disallow_object_classes), entry_attrs.keys(), allow_only=False)