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()
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``
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)
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.
cr.close()
return res
-object_proxy()
class osv_pool(object):
""" Model registry for a particular database.
return obj
createInstance = classmethod(createInstance)
+def start_object_proxy():
+ object_proxy()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
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:
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,...) "
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"):
def new_dispatch(self,method,auth,params):
pass
-objects_proxy()
-
#
# Wizard ID: 1
raise Exception, 'AccessDenied'
else:
raise Exception, 'WizardNotFound'
-wizard()
#
# TODO: set a maximum report number per user to avoid DOS attacks
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: