diff --git a/openerp/service/common.py b/openerp/service/common.py index 685d602a10d..d7d58c2850f 100644 --- a/openerp/service/common.py +++ b/openerp/service/common.py @@ -1,9 +1,7 @@ # -*- coding: utf-8 -*- import logging -import threading -import openerp.osv.orm # TODO use openerp.exceptions import openerp.release import openerp.tools @@ -19,11 +17,10 @@ RPC_VERSION_1 = { } def dispatch(method, params): - if method in ['login', 'about', 'timezone_get', 'get_server_environment', - 'login_message','get_stats', 'check_connectivity', - 'list_http_services', 'version', 'authenticate']: + if method in ['login', 'about', 'timezone_get', + 'version', 'authenticate']: pass - elif method in ['get_available_updates', 'get_migration_scripts', 'set_loglevel', 'get_os_time', 'get_sqlcount']: + elif method in ['set_loglevel']: passwd = params[0] params = params[1:] security.check_super(passwd) @@ -64,136 +61,9 @@ def exp_about(extended=False): def exp_timezone_get(db, login, password): return openerp.tools.misc.get_server_timezone() -def exp_get_available_updates(contract_id, contract_password): - import openerp.tools.maintenance as tm - try: - rc = tm.remote_contract(contract_id, contract_password) - if not rc.id: - raise tm.RemoteContractException('This contract does not exist or is not active') - - return rc.get_available_updates(rc.id, openerp.modules.get_modules_with_version()) - - except tm.RemoteContractException, e: - raise openerp.osv.orm.except_orm('Migration Error', str(e)) - - -def exp_get_migration_scripts(contract_id, contract_password): - import openerp.tools.maintenance as tm - try: - rc = tm.remote_contract(contract_id, contract_password) - if not rc.id: - raise tm.RemoteContractException('This contract does not exist or is not active') - if rc.status != 'full': - raise tm.RemoteContractException('Can not get updates for a partial contract') - - _logger.info('starting migration with contract %s', rc.name) - - zips = rc.retrieve_updates(rc.id, openerp.modules.get_modules_with_version()) - - from shutil import rmtree, copytree, copy - - backup_directory = os.path.join(openerp.tools.config['root_path'], 'backup', time.strftime('%Y-%m-%d-%H-%M')) - if zips and not os.path.isdir(backup_directory): - _logger.info('create a new backup directory to store the old modules: %s', backup_directory) - os.makedirs(backup_directory) - - for module in zips: - _logger.info('upgrade module %s', module) - mp = openerp.modules.get_module_path(module) - if mp: - if os.path.isdir(mp): - copytree(mp, os.path.join(backup_directory, module)) - if os.path.islink(mp): - os.unlink(mp) - else: - rmtree(mp) - else: - copy(mp + 'zip', backup_directory) - os.unlink(mp + '.zip') - - try: - try: - base64_decoded = base64.decodestring(zips[module]) - except Exception: - _logger.error('unable to read the module %s', module) - raise - - zip_contents = StringIO(base64_decoded) - zip_contents.seek(0) - try: - try: - openerp.tools.extract_zip_file(zip_contents, openerp.tools.config['addons_path'] ) - except Exception: - _logger.error('unable to extract the module %s', module) - rmtree(module) - raise - finally: - zip_contents.close() - except Exception: - _logger.error('restore the previous version of the module %s', module) - nmp = os.path.join(backup_directory, module) - if os.path.isdir(nmp): - copytree(nmp, openerp.tools.config['addons_path']) - else: - copy(nmp+'.zip', openerp.tools.config['addons_path']) - raise - - return True - except tm.RemoteContractException, e: - raise openerp.osv.orm.except_orm('Migration Error', str(e)) - except Exception, e: - _logger.exception('Exception in get_migration_script:') - raise - -def exp_get_server_environment(): - os_lang = '.'.join( [x for x in locale.getdefaultlocale() if x] ) - if not os_lang: - os_lang = 'NOT SET' - environment = '\nEnvironment Information : \n' \ - 'System : %s\n' \ - 'OS Name : %s\n' \ - %(platform.platform(), platform.os.name) - if os.name == 'posix': - if platform.system() == 'Linux': - lsbinfo = os.popen('lsb_release -a').read() - environment += '%s'% lsbinfo - else: - environment += 'Your System is not lsb compliant\n' - environment += 'Operating System Release : %s\n' \ - 'Operating System Version : %s\n' \ - 'Operating System Architecture : %s\n' \ - 'Operating System Locale : %s\n'\ - 'Python Version : %s\n'\ - 'OpenERP-Server Version : %s'\ - %(platform.release(), platform.version(), platform.architecture()[0], - os_lang, platform.python_version(), openerp.release.version) - return environment - -def exp_login_message(): - return openerp.tools.config.get('login_message', False) - def exp_set_loglevel(loglevel, logger=None): # TODO Previously, the level was set on the now deprecated # `openerp.netsvc.Logger` class. return True -def exp_get_stats(): - res = "OpenERP server: %d threads\n" % threading.active_count() - res += netsvc.Server.allStats() - return res - -def exp_list_http_services(): - return http_server.list_http_services() - -def exp_check_connectivity(): - return bool(sql_db.db_connect('postgres')) - -def exp_get_os_time(): - return os.times() - -def exp_get_sqlcount(): - if not logging.getLogger('openerp.sql_db').isEnabledFor(logging.DEBUG): - _logger.warning("Counters of SQL will not be reliable unless logger openerp.sql_db is set to level DEBUG or higer.") - return sql_db.sql_counter - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/tools/config.py b/openerp/tools/config.py index 0ef288a7a3a..cc3c187c775 100644 --- a/openerp/tools/config.py +++ b/openerp/tools/config.py @@ -66,7 +66,6 @@ class configmanager(object): self.options = { 'admin_passwd': 'admin', 'csv_internal_sep': ',', - 'login_message': False, 'publisher_warranty_url': 'http://services.openerp.com/publisher-warranty/', 'reportgz': False, 'root_path': None, diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index c145209e2f1..bfc0ce20d6e 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -642,21 +642,6 @@ def icons(*a, **kw): global __icons_list return [(x, x) for x in __icons_list ] -def extract_zip_file(zip_file, outdirectory): - zf = zipfile.ZipFile(zip_file, 'r') - out = outdirectory - for path in zf.namelist(): - tgt = os.path.join(out, path) - tgtdir = os.path.dirname(tgt) - if not os.path.exists(tgtdir): - os.makedirs(tgtdir) - - if not tgt.endswith(os.sep): - fp = open(tgt, 'wb') - fp.write(zf.read(path)) - fp.close() - zf.close() - def detect_ip_addr(): """Try a very crude method to figure out a valid external IP or hostname for the current machine. Don't rely on this