diff --git a/server_environment/__init__.py b/server_environment/__init__.py deleted file mode 100644 index 765b02b..0000000 --- a/server_environment/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Adapted by Nicolas Bessi. Copyright Camptocamp SA -# Based on Florent Xicluna original code. Copyright Wingo SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -############################################################################## -from .serv_config import serv_config, setboolean diff --git a/server_environment/__openerp__.py b/server_environment/__openerp__.py deleted file mode 100644 index f4c3b29..0000000 --- a/server_environment/__openerp__.py +++ /dev/null @@ -1,86 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Adapted by Nicolas Bessi. Copyright Camptocamp SA -# Based on Florent Xicluna original code. Copyright Wingo SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -############################################################################## - -{ - "name": "server configuration environment files", - "version": "1.0", - "depends": ["base", "server_environment_files"], - "author": "Camptocamp", - "description": """\ -Environment file pattern for OpenERP -==================================== - -This module provides a classical configuration by environnement file -pattern into OpenERP. Based on code written by WinGo and Camptocamp. - -This module allows you to use the classical environment file pattern -by reading a directive call `running_env` in the OpenERP configuration -file:: - - [options] - running_env=dev / prod / etc. - -We intended to add a server command line but there is no correct way -to do it. - -This method allows you to keep your settings into a module instead of -using config files that might be mixed with openerprc or altered. It -is an alternative way to the base config file for such configuration -needs . All your configurations will be read only and accessible -under the admin menu. If you are not in the 'dev' environment you -will not be able to see the values contained in keys named 'passw'. - -At the current time, the module does not allow to set low level -attributes such as database server, etc. . - -The first goal of the module is to ensure that OpenERP will never mess -up the external system. Once installed, profile is mandatory. We do -not want to launch an instance in the dev environment on a production -server. - -The configuration files are stored in the `server_environment_files` -module, and user config parser module syntax. Look at the module to -get some examples. The `default` configuration are stored in the -`default/` directory. You can add one directory for each environment -you want to define, named after the environment. All config defined in -non-default environments will override or complement the default -config. If your attibutes contain `passw`, it will only be shown in -the `dev` environment. - -Example usage -------------- - -:: - - from server_environment import serv_config - for key, value in serv_config.items('external_service.ftp'): - print (key, value) - - serv_config.get('external_service.ftp', 'tls') - """, - "website": "http://www.camptocamp.com", - "category": "Tools", - "data": [ - 'serv_config.xml', - ], - "installable": True, - "active": False, -} diff --git a/server_environment/i18n/server_environment.pot b/server_environment/i18n/server_environment.pot deleted file mode 100644 index c83ab22..0000000 --- a/server_environment/i18n/server_environment.pot +++ /dev/null @@ -1,16 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-03-14 17:41+0000\n" -"PO-Revision-Date: 2014-03-14 17:41+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - diff --git a/server_environment/serv_config.py b/server_environment/serv_config.py deleted file mode 100644 index 033cc91..0000000 --- a/server_environment/serv_config.py +++ /dev/null @@ -1,195 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Adapted by Nicolas Bessi. Copyright Camptocamp SA -# Based on Florent Xicluna original code. Copyright Wingo SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -############################################################################## - -import os -import ConfigParser -from lxml import etree - -from openerp.osv import fields, orm -from openerp.tools.config import config as system_base_config - -from .system_info import get_server_environment - -from openerp.addons import server_environment_files -_dir = os.path.dirname(server_environment_files.__file__) - -# Same dict as RawConfigParser._boolean_states -_boolean_states = {'1': True, 'yes': True, 'true': True, 'on': True, - '0': False, 'no': False, 'false': False, 'off': False} - -if not system_base_config.get('running_env', False): - raise Exception( - "The parameter 'running_env' has not be set neither in base config " - "file option -c or in openerprc.\n" - "We strongly recommend against using the rc file but instead use an " - "explicit config file with this content:\n" - "[options]\nrunning_env = dev" - ) - -ck_path = os.path.join(_dir, system_base_config['running_env']) - -if not os.path.exists(ck_path): - raise Exception( - "Provided server environment does not exist, " - "please add a folder %s" % ck_path - ) - - -def setboolean(obj, attr, _bool=_boolean_states): - """Replace the attribute with a boolean.""" - res = _bool[getattr(obj, attr).lower()] - setattr(obj, attr, res) - return res - - -# Borrowed from MarkupSafe -def _escape(s): - """Convert the characters &<>'" in string s to HTML-safe sequences.""" - return (str(s).replace('&', '&') - .replace('>', '>') - .replace('<', '<') - .replace("'", ''') - .replace('"', '"')) - - -def _listconf(env_path): - """List configuration files in a folder.""" - files = [os.path.join(env_path, name) - for name in sorted(os.listdir(env_path)) - if name.endswith('.conf')] - return files - - -def _load_config(): - """Load the configuration and return a ConfigParser instance.""" - default = os.path.join(_dir, 'default') - running_env = os.path.join(_dir, - system_base_config['running_env']) - if os.path.isdir(default): - conf_files = _listconf(default) + _listconf(running_env) - else: - conf_files = _listconf(running_env) - - config_p = ConfigParser.SafeConfigParser() - # options are case-sensitive - config_p.optionxform = str - try: - config_p.read(conf_files) - except Exception, e: - raise Exception('Cannot read config files "%s": %s' % (conf_files, e)) - - return config_p - -serv_config = _load_config() - - -class _Defaults(dict): - __slots__ = () - - def __setitem__(self, key, value): - func = lambda *a: str(value) - return dict.__setitem__(self, key, func) - - -class ServerConfiguration(orm.TransientModel): - """Display server configuration.""" - _name = 'server.config' - _columns = {} - _conf_defaults = _Defaults() - - def __init__(self, pool, cr): - super(ServerConfiguration, self).__init__(pool, cr) - self.running_env = system_base_config['running_env'] - # Only show passwords in development - self.show_passwords = self.running_env in ('dev',) - self._arch = None - self._build_osv() - - def _group(self, items, prefix): - """Return an XML chunk which represents a group of fields.""" - names = [] - for k, v in items: - key = '%s\\%s' % (prefix, k) - # Mask passwords - if 'passw' in k and not self.show_passwords: - v = '**********' - self._columns[key] = fields.char(k, size=1024) - self._conf_defaults[key] = v - names.append(key) - - return ('' + - ''.join(['' % - _escape(name) for name in names]) + - '') - - def _build_osv(self): - """Build the view for the current configuration.""" - arch = ('' - '
' - '') - - # OpenERP server configuration - rcfile = system_base_config.rcfile - items = sorted(system_base_config.options.items()) - arch += '' - arch += '' % _escape(rcfile) - arch += self._group(items, prefix='openerp') - arch += '' - - arch += '' - for section in sorted(serv_config.sections()): - items = sorted(serv_config.items(section)) - arch += '' % _escape(section) - arch += self._group(items, prefix=section) - arch += '' - - # System information - arch += '' - arch += '' - arch += self._group(get_server_environment(), prefix='system') - arch += '' - - arch += '
' - self._arch = etree.fromstring(arch) - - def fields_view_get(self, cr, uid, view_id=None, view_type='form', - context=None, toolbar=False, submenu=False): - """Overwrite the default method to render the custom view.""" - res = super(ServerConfiguration, self).fields_view_get(cr, uid, - view_id, - view_type, - context, - toolbar) - if view_type == 'form': - arch_node = self._arch - xarch, xfields = self._view_look_dom_arch(cr, uid, - arch_node, - view_id, - context=context) - res['arch'] = xarch - res['fields'] = xfields - return res - - def default_get(self, cr, uid, fields_list, context=None): - res = {} - for key in self._conf_defaults: - res[key] = self._conf_defaults[key]() - return res diff --git a/server_environment/serv_config.xml b/server_environment/serv_config.xml deleted file mode 100644 index 7227b67..0000000 --- a/server_environment/serv_config.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - diff --git a/server_environment/system_info.py b/server_environment/system_info.py deleted file mode 100644 index 5c5875e..0000000 --- a/server_environment/system_info.py +++ /dev/null @@ -1,62 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Adapted by Nicolas Bessi. Copyright Camptocamp SA -# Based on Florent Xicluna original code. Copyright Wingo SA -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -############################################################################## - -import locale -import os -import platform -import subprocess - -from openerp import release -from openerp.tools.config import config - - -def _get_output(cmd): - bindir = config['root_path'] - p = subprocess.Popen(cmd, shell=True, cwd=bindir, stdout=subprocess.PIPE) - return p.communicate()[0].rstrip() - - -def get_server_environment(): - # inspired by server/bin/service/web_services.py - try: - rev_id = _get_output('bzr revision-info') - except Exception, e: - rev_id = 'Exception: %s' % (e,) - - os_lang = '.'.join([x for x in locale.getdefaultlocale() if x]) - if not os_lang: - os_lang = 'NOT SET' - if os.name == 'posix' and platform.system() == 'Linux': - lsbinfo = _get_output('lsb_release -a') - else: - lsbinfo = 'not lsb compliant' - return ( - ('platform', platform.platform()), - ('os.name', os.name), - ('lsb_release', lsbinfo), - ('release', platform.release()), - ('version', platform.version()), - ('architecture', platform.architecture()[0]), - ('locale', os_lang), - ('python', platform.python_version()), - ('openerp', release.version), - ('revision', rev_id), - )