[REF] explicit service objects instanciation.
authorVo Minh Thu <vmt@openerp.com>
Sat, 7 May 2011 11:21:29 +0000 (13:21 +0200)
committerVo Minh Thu <vmt@openerp.com>
Sat, 7 May 2011 11:21:29 +0000 (13:21 +0200)
bzr revid: vmt@openerp.com-20110507112129-hfrly9easfby9hns

openerp-server
openerp/modules/__init__.py
openerp/netsvc.py
openerp/osv/osv.py
openerp/report/render/__init__.py
openerp/service/web_services.py

index 3adf5e6..3586b11 100755 (executable)
@@ -89,6 +89,8 @@ logger.info('initialising distributed objects services')
 if not ( config["stop_after_init"] or \
     config["translate_in"] or \
     config["translate_out"] ):
+    openerp.osv.osv.start_object_proxy()
+    openerp.service.web_services.start_web_services()
     http_server = openerp.service.http_server
     netrpc_server = openerp.service.netrpc_server
     http_server.init_servers()
index d4205ad..9a89872 100644 (file)
@@ -653,7 +653,6 @@ class MigrationManager(object):
                         if mod:
                             del mod
 
-log = logging.getLogger('init')
 
 def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=None, **kwargs):
     """Migrates+Updates or Installs all module nodes from ``graph``
@@ -727,6 +726,7 @@ def load_module_graph(cr, graph, status=None, perform_checks=True, skip_modules=
         for filename in package.data.get(kind, []):
             noupdate = (kind == 'demo')
             _, ext = os.path.splitext(filename)
+            log = logging.getLogger('init')
             log.info("module %s: loading %s", module_name, filename)
             pathname = os.path.join(module_name, filename)
             file = tools.file_open(pathname)
index 0cc1870..9ce7f4a 100644 (file)
@@ -213,6 +213,19 @@ def init_logger():
     logger.addHandler(handler)
     logger.setLevel(int(tools.config['log_level'] or '0'))
 
+# A alternative logging scheme for automated runs of the
+# server intended to test it.
+def init_alternative_logger():
+    class H(logging.Handler):
+      def emit(self, record):
+        if record.levelno > 20:
+          print record.levelno, record.pathname, record.msg
+    handler = H()
+    logger = logging.getLogger()
+    logger.handlers = []
+    logger.addHandler(handler)
+    logger.setLevel(logging.ERROR)
+
 class Agent(object):
     """Singleton that keeps track of cancellable tasks to run at a given
        timestamp.
index 3c9870c..07b3869 100644 (file)
@@ -202,7 +202,6 @@ class object_proxy(netsvc.Service):
             cr.close()
         return res
 
-object_proxy()
 
 class osv_pool(object):
     """ Model registry for a particular database.
@@ -383,5 +382,8 @@ class osv(osv_base, orm.orm):
         return obj
     createInstance = classmethod(createInstance)
 
+def start_object_proxy():
+    object_proxy()
+
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
index 1d0a446..1becd5e 100644 (file)
@@ -27,7 +27,7 @@ try:
     import Image
 except ImportError:
     import logging
-    logging.getLogger('init').warning('Python Imaging not installed, you can use only .JPG pictures !')
+    logging.warning('Python Imaging not installed, you can use only .JPG pictures !')
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
 
index e19fc52..3b0d0ef 100644 (file)
@@ -348,7 +348,6 @@ class db(netsvc.ExportService):
                 l.notifyChannel('web-services', netsvc.LOG_ERROR, tb_s)
                 raise
         return True
-db()
 
 class _ObjectService(netsvc.ExportService):
      "A common base class for those who have fn(db, uid, password,...) "
@@ -580,7 +579,6 @@ GNU Public Licence.
             logger.warning("Counters of SQL will not be reliable unless DEBUG_SQL is set at the server's config.")
         return sql_db.sql_counter
 
-common()
 
 class objects_proxy(netsvc.ExportService):
     def __init__(self, name="object"):
@@ -604,8 +602,6 @@ class objects_proxy(netsvc.ExportService):
     def new_dispatch(self,method,auth,params):
         pass
 
-objects_proxy()
-
 
 #
 # Wizard ID: 1
@@ -666,7 +662,6 @@ class wizard(netsvc.ExportService):
                 raise Exception, 'AccessDenied'
         else:
             raise Exception, 'WizardNotFound'
-wizard()
 
 #
 # TODO: set a maximum report number per user to avoid DOS attacks
@@ -780,7 +775,13 @@ class report_spool(netsvc.ExportService):
         else:
             raise Exception, 'ReportNotFound'
 
-report_spool()
+
+def start_web_services():
+    db()
+    common()
+    objects_proxy()
+    wizard()
+    report_spool()
 
 
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: