diff options
author | Jan Cholasta <jcholast@redhat.com> | 2011-11-03 06:42:17 -0400 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2011-11-22 00:52:24 -0500 |
commit | e7a6d1055574d2dd892f414dbe993ee5782ab488 (patch) | |
tree | a78fd289eef1743c3251c173a06526bea30e9bd9 /ipalib/config.py | |
parent | bce3cd945c66e8e8dc49382356348745eefe8c59 (diff) | |
download | freeipa-e7a6d1055574d2dd892f414dbe993ee5782ab488.tar.gz freeipa-e7a6d1055574d2dd892f414dbe993ee5782ab488.tar.xz freeipa-e7a6d1055574d2dd892f414dbe993ee5782ab488.zip |
Finalize plugin initialization on demand.
This patch changes the way plugins are initialized. Instead of
finalizing all the plugins at once, plugins are finalized only after
they are accessed (currently applies to Command, Object and
Attribute subclasses, only in CLI by default).
This change provides significant performance boost, as only the
plugins that are actually used are finalized.
ticket 1336
Diffstat (limited to 'ipalib/config.py')
-rw-r--r-- | ipalib/config.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ipalib/config.py b/ipalib/config.py index 410e5f0b2..5e3ef8d9b 100644 --- a/ipalib/config.py +++ b/ipalib/config.py @@ -492,6 +492,10 @@ class Env(object): if 'conf_default' not in self: self.conf_default = self._join('confdir', 'default.conf') + # Set plugins_on_demand: + if 'plugins_on_demand' not in self: + self.plugins_on_demand = (self.context == 'cli') + def _finalize_core(self, **defaults): """ Complete initialization of standard IPA environment. |