Ensure that Backup and Restore should work on shared servers as some cases were failing due to initial changes.

Fixes #6385
This commit is contained in:
Pradip Parkale
2021-04-22 17:29:04 +05:30
committed by Akshay Joshi
parent 81e077da5e
commit 8ae8fea6d2
10 changed files with 87 additions and 81 deletions

View File

@@ -20,7 +20,7 @@ from flask_babelex import gettext as _
from flask_security import login_required, current_user
from pgadmin.misc.bgprocess.processes import BatchProcess, IProcessDesc
from pgadmin.utils import PgAdminModule, get_storage_directory, html, \
fs_short_path, document_dir, does_utility_exist
fs_short_path, document_dir, does_utility_exist, get_server
from pgadmin.utils.ajax import make_json_response, bad_request
from config import PG_DEFAULT_DRIVER
@@ -115,15 +115,7 @@ class BackupMessage(IProcessDesc):
self.cmd += cmd_arg(arg)
def get_server_details(self):
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()
s = get_server(self.sid)
from pgadmin.utils.driver import get_driver
driver = get_driver(PG_DEFAULT_DRIVER)
@@ -422,14 +414,7 @@ def create_backup_objects_job(sid):
return bad_request(errormsg=str(e))
# 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()
server = get_server(sid)
if server is None:
return make_json_response(
@@ -474,7 +459,7 @@ def create_backup_objects_job(sid):
escaped_args.append(data['database'])
p = BatchProcess(
desc=BackupMessage(
BACKUP.OBJECT, sid, bfile,
BACKUP.OBJECT, server.id, bfile,
*args,
database=data['database']
),
@@ -485,7 +470,7 @@ def create_backup_objects_job(sid):
desc=BackupMessage(
BACKUP.SERVER if backup_obj_type != 'globals'
else BACKUP.GLOBALS,
sid, bfile,
server.id, bfile,
*args
),
cmd=utility, args=escaped_args
@@ -531,14 +516,7 @@ def check_utility_exists(sid, backup_obj_type):
Returns:
None
"""
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()
server = get_server(sid)
if server is None:
return make_json_response(

View File

@@ -15,7 +15,7 @@ from flask import url_for, Response, render_template, request, current_app
from flask_babelex import gettext as _
from flask_security import login_required, current_user
from pgadmin.misc.bgprocess.processes import BatchProcess, IProcessDesc
from pgadmin.utils import PgAdminModule, html, does_utility_exist
from pgadmin.utils import PgAdminModule, html, does_utility_exist, get_server
from pgadmin.utils.ajax import bad_request, make_json_response
from pgadmin.utils.driver import get_driver
@@ -209,14 +209,8 @@ def create_maintenance_job(sid, did):
index_name = get_index_name(data)
# 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()
server = get_server(sid)
if server is None:
return make_json_response(
@@ -263,7 +257,7 @@ def create_maintenance_job(sid, did):
try:
p = BatchProcess(
desc=Message(sid, data, query),
desc=Message(server.id, data, query),
cmd=utility, args=args
)
manager.export_password_env(p.id)
@@ -306,18 +300,8 @@ def check_utility_exists(sid):
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()
server = get_server(sid)
if server is None:
return make_json_response(

View File

@@ -18,7 +18,7 @@ from flask_babelex import gettext as _
from flask_security import login_required, current_user
from pgadmin.misc.bgprocess.processes import BatchProcess, IProcessDesc
from pgadmin.utils import PgAdminModule, get_storage_directory, html, \
fs_short_path, document_dir, does_utility_exist
fs_short_path, document_dir, does_utility_exist, get_server
from pgadmin.utils.ajax import make_json_response, bad_request
from config import PG_DEFAULT_DRIVER
@@ -87,16 +87,9 @@ class RestoreMessage(IProcessDesc):
self.cmd += cmd_arg(arg)
def get_server_details(self):
# Fetch the server details like hostname, port, roles etc
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()
s = get_server(self.sid)
from pgadmin.utils.driver import get_driver
driver = get_driver(PG_DEFAULT_DRIVER)
@@ -215,14 +208,7 @@ def _connect_server(sid):
:param sid: Server ID.
:return: if not error occurred then return connection data.
"""
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()
server = get_server(sid)
if server is None:
return make_json_response(
@@ -430,7 +416,7 @@ def create_restore_job(sid):
try:
p = BatchProcess(
desc=RestoreMessage(
sid,
server.id,
data['file'].encode('utf-8') if hasattr(
data['file'], 'encode'
) else data['file'],
@@ -477,14 +463,7 @@ def check_utility_exists(sid):
None
"""
# 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()
server = get_server(sid)
if server is None:
return make_json_response(