Make server_environment_files optional
This commit is contained in:
parent
9371d19fbf
commit
d9ad47f40d
|
|
@ -18,6 +18,7 @@
|
||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
|
import logging
|
||||||
import os
|
import os
|
||||||
import configparser
|
import configparser
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
|
|
@ -28,8 +29,15 @@ from odoo.tools.config import config as system_base_config
|
||||||
|
|
||||||
from .system_info import get_server_environment
|
from .system_info import get_server_environment
|
||||||
|
|
||||||
from odoo.addons import server_environment_files
|
_logger = logging.getLogger(__name__)
|
||||||
_dir = os.path.dirname(server_environment_files.__file__)
|
|
||||||
|
try:
|
||||||
|
from odoo.addons import server_environment_files
|
||||||
|
_dir = os.path.dirname(server_environment_files.__file__)
|
||||||
|
except ImportError:
|
||||||
|
_logger.info('not using server_environment_files for configuration,'
|
||||||
|
' no directory found')
|
||||||
|
_dir = None
|
||||||
|
|
||||||
ENV_VAR_NAMES = ('SERVER_ENV_CONFIG', 'SERVER_ENV_CONFIG_SECRET')
|
ENV_VAR_NAMES = ('SERVER_ENV_CONFIG', 'SERVER_ENV_CONFIG_SECRET')
|
||||||
|
|
||||||
|
|
@ -46,13 +54,15 @@ if not system_base_config.get('running_env', False):
|
||||||
"[options]\nrunning_env = dev"
|
"[options]\nrunning_env = dev"
|
||||||
)
|
)
|
||||||
|
|
||||||
ck_path = os.path.join(_dir, system_base_config['running_env'])
|
ck_path = None
|
||||||
|
if _dir:
|
||||||
|
ck_path = os.path.join(_dir, system_base_config['running_env'])
|
||||||
|
|
||||||
if not os.path.exists(ck_path):
|
if not os.path.exists(ck_path):
|
||||||
raise Exception(
|
raise Exception(
|
||||||
"Provided server environment does not exist, "
|
"Provided server environment does not exist, "
|
||||||
"please add a folder %s" % ck_path
|
"please add a folder %s" % ck_path
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def setboolean(obj, attr, _bool=None):
|
def setboolean(obj, attr, _bool=None):
|
||||||
|
|
@ -82,8 +92,7 @@ def _listconf(env_path):
|
||||||
return files
|
return files
|
||||||
|
|
||||||
|
|
||||||
def _load_config():
|
def _load_config_from_server_env_files(config_p):
|
||||||
"""Load the configuration and return a ConfigParser instance."""
|
|
||||||
default = os.path.join(_dir, 'default')
|
default = os.path.join(_dir, 'default')
|
||||||
running_env = os.path.join(_dir,
|
running_env = os.path.join(_dir,
|
||||||
system_base_config['running_env'])
|
system_base_config['running_env'])
|
||||||
|
|
@ -92,17 +101,18 @@ def _load_config():
|
||||||
else:
|
else:
|
||||||
conf_files = _listconf(running_env)
|
conf_files = _listconf(running_env)
|
||||||
|
|
||||||
config_p = configparser.SafeConfigParser()
|
|
||||||
# options are case-sensitive
|
|
||||||
config_p.optionxform = str
|
|
||||||
try:
|
try:
|
||||||
config_p.read(conf_files)
|
config_p.read(conf_files)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise Exception('Cannot read config files "%s": %s' % (conf_files, e))
|
raise Exception('Cannot read config files "%s": %s' % (conf_files, e))
|
||||||
|
|
||||||
|
|
||||||
|
def _load_config_from_rcfile(config_p):
|
||||||
config_p.read(system_base_config.rcfile)
|
config_p.read(system_base_config.rcfile)
|
||||||
config_p.remove_section('options')
|
config_p.remove_section('options')
|
||||||
|
|
||||||
|
|
||||||
|
def _load_config_from_env(config_p):
|
||||||
for varname in ENV_VAR_NAMES:
|
for varname in ENV_VAR_NAMES:
|
||||||
env_config = os.getenv(varname)
|
env_config = os.getenv(varname)
|
||||||
if env_config:
|
if env_config:
|
||||||
|
|
@ -114,6 +124,16 @@ def _load_config():
|
||||||
% (varname, err,)
|
% (varname, err,)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _load_config():
|
||||||
|
"""Load the configuration and return a ConfigParser instance."""
|
||||||
|
config_p = configparser.SafeConfigParser()
|
||||||
|
# options are case-sensitive
|
||||||
|
config_p.optionxform = str
|
||||||
|
if _dir:
|
||||||
|
_load_config_from_server_env_files(config_p)
|
||||||
|
_load_config_from_rcfile(config_p)
|
||||||
|
_load_config_from_env(config_p)
|
||||||
return config_p
|
return config_p
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue