Hi,

Here is a patch (first contribution \o/) that solves the issue by importing the 
servers.json anonymously when running in DESKTOP mode.  
There may be a better way to check if we are running in DESKTOP mode or not but 
checking PGADMIN_CONFIG_SERVER_MODE should be enough when running pgadmin4 in 
docker.  

Regards,
Olivier Levitt


________________________________________
From: Ashesh Vashi [ashesh.va...@enterprisedb.com]
Sent: 14 December 2019 05:52
To: Levitt Olivier
Cc: pgadmin-hack...@postgresql.org
Subject: Re: [Pgadmin] [Docker] servers.json import fails when running in 
desktop mode

<http://www.linkedin.com/in/asheshvashi>

On Sat, Dec 14, 2019 at 3:53 AM Levitt Olivier 
<olivier.lev...@insee.fr<mailto:olivier.lev...@insee.fr>> wrote:
Hi,

When running the docker image in desktop mode 
(PGADMIN_CONFIG_SERVER_MODE=False), no user is created. That is expected 
behaviour.
But then the code that imports the servers.json pre-configuration fails as it 
ties the import to the default user.

I think line 40 of entrypoint.sh 
(https://git.postgresql.org/gitweb/?p=pgadmin4.git;a=blob;f=pkg/docker/entrypoint.sh;h=47d14bf2d415777c64b221fb1fc75d61c5e3cecc;hb=HEAD)
 should not specify a user when running in dekstop mode.
I tested it without --user parameter and it successfully imported the 
servers.json configuration.

Should I submit a patch ? First time contributing to Pgadmin :)
Please do.


--

Thanks & Regards,

Ashesh Vashi
EnterpriseDB INDIA: Enterprise PostgreSQL Company<http://www.enterprisedb.com>


http://www.linkedin.com/in/asheshvashi

Regards,
Olivier Levitt


diff --git a/pkg/docker/entrypoint.sh b/pkg/docker/entrypoint.sh
index 47d14bf2d..e8434329d 100755
--- a/pkg/docker/entrypoint.sh
+++ b/pkg/docker/entrypoint.sh
@@ -37,7 +37,13 @@ if [ ! -f /var/lib/pgadmin/pgadmin4.db ]; then
     export PGADMIN_SERVER_JSON_FILE=${PGADMIN_SERVER_JSON_FILE:-/pgadmin4/servers.json}
     # Pre-load any required servers
     if [ -f "${PGADMIN_SERVER_JSON_FILE}" ]; then
-        /usr/local/bin/python /pgadmin4/setup.py --load-servers "${PGADMIN_SERVER_JSON_FILE}" --user ${PGADMIN_DEFAULT_EMAIL}
+        # When running in Desktop mode, no user is created
+        # so we have to import servers anonymously
+        if [ "${PGADMIN_CONFIG_SERVER_MODE}" = "False" ]; then
+            /usr/local/bin/python /pgadmin4/setup.py --load-servers "${PGADMIN_SERVER_JSON_FILE}" 
+        else
+            /usr/local/bin/python /pgadmin4/setup.py --load-servers "${PGADMIN_SERVER_JSON_FILE}" --user ${PGADMIN_DEFAULT_EMAIL}
+        fi
     fi
 fi
 

Reply via email to