From e7a6d1055574d2dd892f414dbe993ee5782ab488 Mon Sep 17 00:00:00 2001 From: Jan Cholasta Date: Thu, 3 Nov 2011 06:42:17 -0400 Subject: 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 --- ipaserver/rpcserver.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'ipaserver/rpcserver.py') diff --git a/ipaserver/rpcserver.py b/ipaserver/rpcserver.py index 35a109262..68d4379bb 100644 --- a/ipaserver/rpcserver.py +++ b/ipaserver/rpcserver.py @@ -143,9 +143,9 @@ class session(Executioner): finally: destroy_context() - def finalize(self): + def _on_finalize(self): self.url = self.env['mount_ipa'] - super(session, self).finalize() + super(session, self)._on_finalize() def route(self, environ, start_response): key = shift_path_info(environ) @@ -186,9 +186,9 @@ class WSGIExecutioner(Executioner): if 'session' in self.api.Backend: self.api.Backend.session.mount(self, self.key) - def finalize(self): + def _on_finalize(self): self.url = self.env.mount_ipa + self.key - super(WSGIExecutioner, self).finalize() + super(WSGIExecutioner, self)._on_finalize() def wsgi_execute(self, environ): result = None @@ -285,13 +285,13 @@ class xmlserver(WSGIExecutioner): content_type = 'text/xml' key = 'xml' - def finalize(self): + def _on_finalize(self): self.__system = { 'system.listMethods': self.listMethods, 'system.methodSignature': self.methodSignature, 'system.methodHelp': self.methodHelp, } - super(xmlserver, self).finalize() + super(xmlserver, self)._on_finalize() def listMethods(self, *params): return tuple(name.decode('UTF-8') for name in self.Command) -- cgit