public inbox for [email protected]
help / color / mirror / Atom feedFrom: Pradip Parkale <[email protected]>
To: pgadmin-hackers <[email protected]>
Subject: [pgAdmin][RM6385]: Backup on a shared server doesn't seem to work
Date: Tue, 13 Apr 2021 22:35:32 +0530
Message-ID: <CAJ9T6SurWoKa6Z14F3wFGJtQbtFh+gCXt9vULSTciiR5AG4x1Q@mail.gmail.com> (raw)
Hi Hackers,
Please find the attached patch for #6385 Backup on a shared server doesn't
seem to work.
--
Thanks & Regards,
Pradip Parkale
Software Engineer | EnterpriseDB Corporation
Attachments:
[application/octet-stream] RM6385.patch (8.6K, 3-RM6385.patch)
download | inline diff:
diff --git a/web/pgadmin/browser/server_groups/servers/__init__.py b/web/pgadmin/browser/server_groups/servers/__init__.py
index bc0bd4611..00025196b 100644
--- a/web/pgadmin/browser/server_groups/servers/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/__init__.py
@@ -346,7 +346,7 @@ class ServerModule(sg.ServerGroupPluginModule):
host=data.host,
hostaddr=data.hostaddr,
port=data.port,
- maintenance_db=None,
+ maintenance_db=data.maintenance_db,
username=None,
save_password=0,
ssl_mode=data.ssl_mode,
diff --git a/web/pgadmin/browser/server_groups/servers/utils.py b/web/pgadmin/browser/server_groups/servers/utils.py
index e074ea735..34892804c 100644
--- a/web/pgadmin/browser/server_groups/servers/utils.py
+++ b/web/pgadmin/browser/server_groups/servers/utils.py
@@ -12,7 +12,7 @@ from ipaddress import ip_address
from pgadmin.utils.crypto import encrypt, decrypt
import config
-from pgadmin.model import db, Server
+from pgadmin.model import db, Server, SharedServer
def is_valid_ipaddress(address):
@@ -283,8 +283,15 @@ def does_server_exists(sid, user_id):
# **kwargs parameter can be added to function to filter with more
# parameters.
try:
- return True if Server.query.filter_by(
- id=sid, user_id=user_id
- ).first() is not None else False
+ if Server.query.filter_by(id=sid, user_id=user_id).first():
+ server = Server.query.filter_by(
+ id=sid, user_id=user_id
+ ).first()
+ else:
+ server = SharedServer.query.filter_by(
+ id=sid, user_id=user_id
+ ).first()
+
+ return True if server is not None else False
except Exception:
return False
diff --git a/web/pgadmin/tools/backup/__init__.py b/web/pgadmin/tools/backup/__init__.py
index 0d67804dd..aacb2e5d4 100644
--- a/web/pgadmin/tools/backup/__init__.py
+++ b/web/pgadmin/tools/backup/__init__.py
@@ -24,7 +24,7 @@ from pgadmin.utils import PgAdminModule, get_storage_directory, html, \
from pgadmin.utils.ajax import make_json_response, bad_request
from config import PG_DEFAULT_DRIVER
-from pgadmin.model import Server
+from pgadmin.model import Server, SharedServer
from pgadmin.misc.bgprocess import escape_dquotes_process_arg
from pgadmin.utils.constants import MIMETYPE_APP_JS
@@ -115,10 +115,15 @@ class BackupMessage(IProcessDesc):
self.cmd += cmd_arg(arg)
def get_server_details(self):
- # Fetch the server details like hostname, port, roles etc
- s = Server.query.filter_by(
- id=self.sid, user_id=current_user.id
- ).first()
+ if Server.query.filter_by(id=self.sid,
+ user_id=current_user.id).first():
+ s = Server.query.filter_by(
+ id=self.sid, user_id=current_user.id
+ ).first()
+ else:
+ s = SharedServer.query.filter_by(
+ id=self.sid, user_id=current_user.id
+ ).first()
from pgadmin.utils.driver import get_driver
driver = get_driver(PG_DEFAULT_DRIVER)
@@ -417,9 +422,14 @@ def create_backup_objects_job(sid):
return bad_request(errormsg=str(e))
# Fetch the server details like hostname, port, roles etc
- server = Server.query.filter_by(
- id=sid, user_id=current_user.id
- ).first()
+ if Server.query.filter_by(id=sid, user_id=current_user.id).first():
+ server = Server.query.filter_by(
+ id=sid, user_id=current_user.id
+ ).first()
+ else:
+ server = SharedServer.query.filter_by(
+ id=sid, user_id=current_user.id
+ ).first()
if server is None:
return make_json_response(
@@ -521,9 +531,14 @@ def check_utility_exists(sid, backup_obj_type):
Returns:
None
"""
- server = Server.query.filter_by(
- id=sid, user_id=current_user.id
- ).first()
+ if Server.query.filter_by(id=sid, user_id=current_user.id).first():
+ server = Server.query.filter_by(
+ id=sid, user_id=current_user.id
+ ).first()
+ else:
+ server = SharedServer.query.filter_by(
+ id=sid, user_id=current_user.id
+ ).first()
if server is None:
return make_json_response(
diff --git a/web/pgadmin/tools/maintenance/__init__.py b/web/pgadmin/tools/maintenance/__init__.py
index cc84399b2..160573a1c 100644
--- a/web/pgadmin/tools/maintenance/__init__.py
+++ b/web/pgadmin/tools/maintenance/__init__.py
@@ -20,7 +20,7 @@ from pgadmin.utils.ajax import bad_request, make_json_response
from pgadmin.utils.driver import get_driver
from config import PG_DEFAULT_DRIVER
-from pgadmin.model import Server
+from pgadmin.model import Server, SharedServer
from pgadmin.utils.constants import MIMETYPE_APP_JS
MODULE_NAME = 'maintenance'
@@ -209,8 +209,14 @@ def create_maintenance_job(sid, did):
index_name = get_index_name(data)
# Fetch the server details like hostname, port, roles etc
- server = Server.query.filter_by(
- id=sid).first()
+ if Server.query.filter_by(id=sid, user_id=current_user.id).first():
+ server = Server.query.filter_by(
+ id=sid, user_id=current_user.id
+ ).first()
+ else:
+ server = SharedServer.query.filter_by(
+ id=sid, user_id=current_user.id
+ ).first()
if server is None:
return make_json_response(
@@ -300,9 +306,18 @@ def check_utility_exists(sid):
Returns:
None
"""
- server = Server.query.filter_by(
- id=sid, user_id=current_user.id
- ).first()
+ # server = Server.query.filter_by(
+ # id=sid, user_id=current_user.id
+ # ).first()
+
+ if Server.query.filter_by(id=sid, user_id=current_user.id).first():
+ server = Server.query.filter_by(
+ id=sid, user_id=current_user.id
+ ).first()
+ else:
+ server = SharedServer.query.filter_by(
+ id=sid, user_id=current_user.id
+ ).first()
if server is None:
return make_json_response(
diff --git a/web/pgadmin/tools/restore/__init__.py b/web/pgadmin/tools/restore/__init__.py
index ea9a3e82f..3bb9a9c5d 100644
--- a/web/pgadmin/tools/restore/__init__.py
+++ b/web/pgadmin/tools/restore/__init__.py
@@ -22,7 +22,7 @@ from pgadmin.utils import PgAdminModule, get_storage_directory, html, \
from pgadmin.utils.ajax import make_json_response, bad_request
from config import PG_DEFAULT_DRIVER
-from pgadmin.model import Server
+from pgadmin.model import Server, SharedServer
from pgadmin.utils.constants import MIMETYPE_APP_JS
# set template path for sql scripts
@@ -88,9 +88,15 @@ class RestoreMessage(IProcessDesc):
def get_server_details(self):
# Fetch the server details like hostname, port, roles etc
- s = Server.query.filter_by(
- id=self.sid, user_id=current_user.id
- ).first()
+ if Server.query.filter_by(id=self.sid,
+ user_id=current_user.id).first():
+ s = Server.query.filter_by(
+ id=self.sid, user_id=current_user.id
+ ).first()
+ else:
+ s = SharedServer.query.filter_by(
+ id=self.sid, user_id=current_user.id
+ ).first()
from pgadmin.utils.driver import get_driver
driver = get_driver(PG_DEFAULT_DRIVER)
@@ -209,10 +215,14 @@ def _connect_server(sid):
:param sid: Server ID.
:return: if not error occurred then return connection data.
"""
- # Fetch the server details like hostname, port, roles etc
- server = Server.query.filter_by(
- id=sid
- ).first()
+ if Server.query.filter_by(id=sid, user_id=current_user.id).first():
+ server = Server.query.filter_by(
+ id=sid, user_id=current_user.id
+ ).first()
+ else:
+ server = SharedServer.query.filter_by(
+ id=sid, user_id=current_user.id
+ ).first()
if server is None:
return make_json_response(
@@ -466,9 +476,15 @@ def check_utility_exists(sid):
Returns:
None
"""
- server = Server.query.filter_by(
- id=sid, user_id=current_user.id
- ).first()
+ # Fetch the server details like hostname, port, roles etc
+ if Server.query.filter_by(id=sid, user_id=current_user.id).first():
+ server = Server.query.filter_by(
+ id=sid, user_id=current_user.id
+ ).first()
+ else:
+ server = SharedServer.query.filter_by(
+ id=sid, user_id=current_user.id
+ ).first()
if server is None:
return make_json_response(
view thread (6+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected]
Subject: Re: [pgAdmin][RM6385]: Backup on a shared server doesn't seem to work
In-Reply-To: <CAJ9T6SurWoKa6Z14F3wFGJtQbtFh+gCXt9vULSTciiR5AG4x1Q@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox