From b8e9cd478a5e37db2584c7aa05eb98a3e48e4ab5 Mon Sep 17 00:00:00 2001 From: Simon Lejeune Date: Fri, 18 Nov 2016 14:39:46 +0100 Subject: [PATCH] [FIX] Odoo 8.0-10.0: override of config file pg credentials We tried to remove usage of environment variables to set the connection parameters to the postgres database but we omit the case when they're set in the config file related to a3d207f Fixes #80 --- 10.0/entrypoint.sh | 19 ++++++++++++++++--- 8.0/entrypoint.sh | 19 ++++++++++++++++--- 9.0/entrypoint.sh | 19 ++++++++++++++++--- 3 files changed, 48 insertions(+), 9 deletions(-) diff --git a/10.0/entrypoint.sh b/10.0/entrypoint.sh index 9fe792f..576a165 100755 --- a/10.0/entrypoint.sh +++ b/10.0/entrypoint.sh @@ -2,13 +2,26 @@ set -e -# set the postgres database host, port, user and password +# set the postgres database host, port, user and password according to the environment +# and pass them as arguments to the odoo process if not present in the config file : ${HOST:=${DB_PORT_5432_TCP_ADDR:='db'}} : ${PORT:=${DB_PORT_5432_TCP_PORT:=5432}} : ${USER:=${DB_ENV_POSTGRES_USER:=${POSTGRES_USER:='odoo'}}} : ${PASSWORD:=${DB_ENV_POSTGRES_PASSWORD:=${POSTGRES_PASSWORD:='odoo'}}} -# pass them as arguments to the odoo process -DB_ARGS=("--db_user" $USER "--db_password" $PASSWORD "--db_host" $HOST "--db_port" $PORT) + +DB_ARGS=() +function check_config() { + param="$1" + value="$2" + if ! grep -q -E "^\s*\b${param}\b\s*=" "$ODOO_RC" ; then + DB_ARGS+=("--${param}") + DB_ARGS+=("${value}") + fi; +} +check_config "db_host" "$HOST" +check_config "db_port" "$PORT" +check_config "db_user" "$USER" +check_config "db_password" "$PASSWORD" case "$1" in -- | odoo) diff --git a/8.0/entrypoint.sh b/8.0/entrypoint.sh index 50e82bc..3e1ab0f 100755 --- a/8.0/entrypoint.sh +++ b/8.0/entrypoint.sh @@ -2,13 +2,26 @@ set -e -# set the postgres database host, port, user and password +# set the postgres database host, port, user and password according to the environment +# and pass them as arguments to the odoo process if not present in the config file : ${HOST:=${DB_PORT_5432_TCP_ADDR:='db'}} : ${PORT:=${DB_PORT_5432_TCP_PORT:=5432}} : ${USER:=${DB_ENV_POSTGRES_USER:=${POSTGRES_USER:='odoo'}}} : ${PASSWORD:=${DB_ENV_POSTGRES_PASSWORD:=${POSTGRES_PASSWORD:='odoo'}}} -# pass them as arguments to the odoo process -DB_ARGS=("--db_user" $USER "--db_password" $PASSWORD "--db_host" $HOST "--db_port" $PORT) + +DB_ARGS=() +function check_config() { + param="$1" + value="$2" + if ! grep -q -E "^\s*\b${param}\b\s*=" "$OPENERP_SERVER" ; then + DB_ARGS+=("--${param}") + DB_ARGS+=("${value}") + fi; +} +check_config "db_host" "$HOST" +check_config "db_port" "$PORT" +check_config "db_user" "$USER" +check_config "db_password" "$PASSWORD" case "$1" in -- | openerp-server) diff --git a/9.0/entrypoint.sh b/9.0/entrypoint.sh index 50e82bc..3e1ab0f 100755 --- a/9.0/entrypoint.sh +++ b/9.0/entrypoint.sh @@ -2,13 +2,26 @@ set -e -# set the postgres database host, port, user and password +# set the postgres database host, port, user and password according to the environment +# and pass them as arguments to the odoo process if not present in the config file : ${HOST:=${DB_PORT_5432_TCP_ADDR:='db'}} : ${PORT:=${DB_PORT_5432_TCP_PORT:=5432}} : ${USER:=${DB_ENV_POSTGRES_USER:=${POSTGRES_USER:='odoo'}}} : ${PASSWORD:=${DB_ENV_POSTGRES_PASSWORD:=${POSTGRES_PASSWORD:='odoo'}}} -# pass them as arguments to the odoo process -DB_ARGS=("--db_user" $USER "--db_password" $PASSWORD "--db_host" $HOST "--db_port" $PORT) + +DB_ARGS=() +function check_config() { + param="$1" + value="$2" + if ! grep -q -E "^\s*\b${param}\b\s*=" "$OPENERP_SERVER" ; then + DB_ARGS+=("--${param}") + DB_ARGS+=("${value}") + fi; +} +check_config "db_host" "$HOST" +check_config "db_port" "$PORT" +check_config "db_user" "$USER" +check_config "db_password" "$PASSWORD" case "$1" in -- | openerp-server)