[REF] openerp-server: better imports.

bzr revid: vmt@openerp.com-20110418155733-gt8shgr0yilo20mw
This commit is contained in:
Vo Minh Thu 2011-04-18 17:57:33 +02:00
parent 255aaa14d2
commit 342f2047cf
2 changed files with 51 additions and 56 deletions

View File

@ -41,9 +41,9 @@ import threading
import traceback import traceback
import time import time
import openerp.release as release import openerp
__author__ = release.author __author__ = openerp.release.author
__version__ = release.version __version__ = openerp.release.version
if os.name == 'posix': if os.name == 'posix':
import pwd import pwd
@ -54,27 +54,26 @@ if os.name == 'posix':
sys.exit(1) sys.exit(1)
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
# import the tools module so that the commandline parameters are parsed # parse the command line
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
import openerp.tools as tools openerp.tools.config.parse_config(sys.argv[1:])
tools.config.parse_config(sys.argv[1:]) config = openerp.tools.config
#---------------------------------------------------------- #----------------------------------------------------------
# get logger # get logger
#---------------------------------------------------------- #----------------------------------------------------------
import openerp.netsvc as netsvc openerp.netsvc.init_logger()
netsvc.init_logger()
logger = logging.getLogger('server') logger = logging.getLogger('server')
logger.info("OpenERP version - %s", release.version) logger.info("OpenERP version - %s", __version__)
for name, value in [('addons_path', tools.config['addons_path']), for name, value in [('addons_path', config['addons_path']),
('database hostname', tools.config['db_host'] or 'localhost'), ('database hostname', config['db_host'] or 'localhost'),
('database port', tools.config['db_port'] or '5432'), ('database port', config['db_port'] or '5432'),
('database user', tools.config['db_user'])]: ('database user', config['db_user'])]:
logger.info("%s - %s", name, value) logger.info("%s - %s", name, value)
# Don't allow if the connection to PostgreSQL done by postgres user # Don't allow if the connection to PostgreSQL done by postgres user
if tools.config['db_user'] == 'postgres': if config['db_user'] == 'postgres':
logger.error("Connecting to the database as 'postgres' user is forbidden, as it present major security issues. Shutting down.") logger.error("Connecting to the database as 'postgres' user is forbidden, as it present major security issues. Shutting down.")
sys.exit(1) sys.exit(1)
@ -83,34 +82,28 @@ if tools.config['db_user'] == 'postgres':
#---------------------------------------------------------- #----------------------------------------------------------
logger.info('initialising distributed objects services') logger.info('initialising distributed objects services')
#---------------------------------------------------------------
# connect to the database and initialize it with base if needed
#---------------------------------------------------------------
import openerp.pooler as pooler
#---------------------------------------------------------- #----------------------------------------------------------
# Load and update databases if requested # Load and update databases if requested
#---------------------------------------------------------- #----------------------------------------------------------
import openerp.service.http_server as http_server if not ( config["stop_after_init"] or \
import openerp.service.netrpc_server as netrpc_server config["translate_in"] or \
config["translate_out"] ):
if not ( tools.config["stop_after_init"] or \ http_server = openerp.service.http_server
tools.config["translate_in"] or \ netrpc_server = openerp.service.netrpc_server
tools.config["translate_out"] ):
http_server.init_servers() http_server.init_servers()
http_server.init_xmlrpc() http_server.init_xmlrpc()
http_server.init_static_http() http_server.init_static_http()
netrpc_server.init_servers() netrpc_server.init_servers()
if tools.config['db_name']: if config['db_name']:
for dbname in tools.config['db_name'].split(','): for dbname in config['db_name'].split(','):
db,pool = pooler.get_db_and_pool(dbname, update_module=tools.config['init'] or tools.config['update'], pooljobs=False) db, pool = openerp.pooler.get_db_and_pool(dbname, update_module=config['init'] or config['update'], pooljobs=False)
cr = db.cursor() cr = db.cursor()
if tools.config["test_file"]: if config["test_file"]:
logger.info('loading test file %s', tools.config["test_file"]) logger.info('loading test file %s', config["test_file"])
tools.convert_yaml_import(cr, 'base', file(tools.config["test_file"]), {}, 'test', True) openerp.tools.convert_yaml_import(cr, 'base', file(config["test_file"]), {}, 'test', True)
cr.rollback() cr.rollback()
pool.get('ir.cron')._poolJobs(db.dbname) pool.get('ir.cron')._poolJobs(db.dbname)
@ -120,33 +113,33 @@ if tools.config['db_name']:
#---------------------------------------------------------- #----------------------------------------------------------
# translation stuff # translation stuff
#---------------------------------------------------------- #----------------------------------------------------------
if tools.config["translate_out"]: if config["translate_out"]:
if tools.config["language"]: if config["language"]:
msg = "language %s" % (tools.config["language"],) msg = "language %s" % (config["language"],)
else: else:
msg = "new language" msg = "new language"
logger.info('writing translation file for %s to %s', msg, tools.config["translate_out"]) logger.info('writing translation file for %s to %s', msg, config["translate_out"])
fileformat = os.path.splitext(tools.config["translate_out"])[-1][1:].lower() fileformat = os.path.splitext(config["translate_out"])[-1][1:].lower()
buf = file(tools.config["translate_out"], "w") buf = file(config["translate_out"], "w")
dbname = tools.config['db_name'] dbname = config['db_name']
cr = pooler.get_db(dbname).cursor() cr = openerp.pooler.get_db(dbname).cursor()
tools.trans_export(tools.config["language"], tools.config["translate_modules"] or ["all"], buf, fileformat, cr) openerp.tools.trans_export(config["language"], config["translate_modules"] or ["all"], buf, fileformat, cr)
cr.close() cr.close()
buf.close() buf.close()
logger.info('translation file written successfully') logger.info('translation file written successfully')
sys.exit(0) sys.exit(0)
if tools.config["translate_in"]: if config["translate_in"]:
context = {'overwrite': tools.config["overwrite_existing_translations"]} context = {'overwrite': config["overwrite_existing_translations"]}
dbname = tools.config['db_name'] dbname = config['db_name']
cr = pooler.get_db(dbname).cursor() cr = openerp.pooler.get_db(dbname).cursor()
tools.trans_load(cr, openerp.tools.trans_load(cr,
tools.config["translate_in"], config["translate_in"],
tools.config["language"], config["language"],
context=context) context=context)
tools.trans_update_res_ids(cr) openerp.tools.trans_update_res_ids(cr)
cr.commit() cr.commit()
cr.close() cr.close()
sys.exit(0) sys.exit(0)
@ -154,7 +147,7 @@ if tools.config["translate_in"]:
#---------------------------------------------------------------------------------- #----------------------------------------------------------------------------------
# if we don't want the server to continue to run after initialization, we quit here # if we don't want the server to continue to run after initialization, we quit here
#---------------------------------------------------------------------------------- #----------------------------------------------------------------------------------
if tools.config["stop_after_init"]: if config["stop_after_init"]:
sys.exit(0) sys.exit(0)
#---------------------------------------------------------- #----------------------------------------------------------
@ -201,10 +194,10 @@ if os.name == 'posix':
signal.signal(signal.SIGQUIT, dumpstacks) signal.signal(signal.SIGQUIT, dumpstacks)
def quit(): def quit():
netsvc.Agent.quit() openerp.netsvc.Agent.quit()
netsvc.Server.quitAll() openerp.netsvc.Server.quitAll()
if tools.config['pidfile']: if config['pidfile']:
os.unlink(tools.config['pidfile']) os.unlink(config['pidfile'])
logger = logging.getLogger('shutdown') logger = logging.getLogger('shutdown')
logger.info("Initiating OpenERP Server shutdown") logger.info("Initiating OpenERP Server shutdown")
logger.info("Hit CTRL-C again or send a second signal to immediately terminate the server...") logger.info("Hit CTRL-C again or send a second signal to immediately terminate the server...")
@ -222,13 +215,13 @@ def quit():
time.sleep(0.05) time.sleep(0.05)
sys.exit(0) sys.exit(0)
if tools.config['pidfile']: if config['pidfile']:
fd = open(tools.config['pidfile'], 'w') fd = open(config['pidfile'], 'w')
pidtext = "%d" % (os.getpid()) pidtext = "%d" % (os.getpid())
fd.write(pidtext) fd.write(pidtext)
fd.close() fd.close()
netsvc.Server.startAll() openerp.netsvc.Server.startAll()
logger.info('OpenERP server is running, waiting for connections...') logger.info('OpenERP server is running, waiting for connections...')

View File

@ -19,6 +19,8 @@
# #
############################################################################## ##############################################################################
import http_server
import netrpc_server
import web_services import web_services