Hi,

PFA minor patch to fix the issue where user gets error when try to run
backup/restore etc in pgAdmin4 WSGI mode.

Error in Apache log:

[Mon Apr 03 05:22:26.641789 2017] [wsgi:error] [pid 72351:tid
140303938864896] [remote ::1:28430] File
"/opt/web/pgadmin/utils/driver/psycopg2/__init__.py", line 1664, in utility
[Mon Apr 03 05:22:26.641818 2017] [wsgi:error] [pid 72351:tid
140303938864896] [remote ::1:28430] return
self.server_cls.utility(operation, self.sversion)
[Mon Apr 03 05:22:26.641883 2017] [wsgi:error] [pid 72351:tid
140303938864896] [remote ::1:28430] File
"/opt/web/pgadmin/browser/server_groups/servers/types.py", line 120, in
utility
[Mon Apr 03 05:22:26.641921 2017] [wsgi:error] [pid 72351:tid
140303938864896] [remote ::1:28430] bin_path =
self.utility_path.get().replace("$DIR",
os.path.dirname(sys.modules['__main__'].__file__))
[Mon Apr 03 05:22:26.641958 2017] [wsgi:error] [pid 72351:tid
140303938864896] [remote ::1:28430] AttributeError: 'module' object has no
attribute '__file__'


In WSGI, we get sys.modules['__main__'] as built-in object.


'__main__': <module '__main__' (built-in)>,
'pgadmin.browser.server_groups.servers.databases.schemas.tables.rules':
<module
'pgadmin.browser.server_groups.servers.databases.schemas.tables.rules' from
'/opt/PEM/server/share/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/rules/__init__.py'>,
--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
diff --git a/web/pgadmin/browser/server_groups/servers/types.py 
b/web/pgadmin/browser/server_groups/servers/types.py
index fa7154b..24cb0b3 100644
--- a/web/pgadmin/browser/server_groups/servers/types.py
+++ b/web/pgadmin/browser/server_groups/servers/types.py
@@ -112,8 +112,9 @@ class ServerType(object):
                     operation
                 ))
             )
-
-        bin_path = self.utility_path.get().replace("$DIR", 
os.path.dirname(sys.modules['__main__'].__file__))
+        bin_path = self.utility_path.get()
+        if "$DIR" in bin_path:
+            bin_path = bin_path.replace("$DIR", 
os.path.dirname(sys.modules['__main__'].__file__))
 
         return os.path.abspath(os.path.join(
             bin_path,
-- 
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to