RE: [Pgadmin] [Docker] servers.json import fails when running in desktop mode

Levitt Olivier <[email protected]> Mon, 16 Dec 2019 09:48:14 +0000
Newsgroups gmane.comp.db.postgresql.pgadmin.devel
Message-ID <74F4D0C2ACDFA04BA40C6475ADAE217529FA40C2@pdexchbalwst03.ad.insee.intra>
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 [[email protected]]
Sent: 14 December 2019 05:52
To: Levitt Olivier
Cc: [email protected]
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 <[email protected]<mailto:[email protected]>> 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
import_servers_on_desktop_mode.diff (text/x-patch, 978 B)
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