mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Added support for mounting shared storage in server mode. #5014
This commit is contained in:
@@ -51,7 +51,8 @@ from pgadmin.tools.sqleditor.utils.query_history import QueryHistory
|
||||
from pgadmin.tools.sqleditor.utils.macros import get_macros,\
|
||||
get_user_macros, set_macros
|
||||
from pgadmin.utils.constants import MIMETYPE_APP_JS, \
|
||||
SERVER_CONNECTION_CLOSED, ERROR_MSG_TRANS_ID_NOT_FOUND, ERROR_FETCHING_DATA
|
||||
SERVER_CONNECTION_CLOSED, ERROR_MSG_TRANS_ID_NOT_FOUND, \
|
||||
ERROR_FETCHING_DATA, MY_STORAGE
|
||||
from pgadmin.model import Server, ServerGroup
|
||||
from pgadmin.tools.schema_diff.node_registry import SchemaDiffRegistry
|
||||
from pgadmin.settings import get_setting
|
||||
@@ -1808,7 +1809,9 @@ def load_file():
|
||||
file_path = unquote(file_data['file_name'])
|
||||
|
||||
# retrieve storage directory path
|
||||
storage_manager_path = get_storage_directory()
|
||||
storage_manager_path = get_storage_directory(
|
||||
shared_storage=file_data['storage'])
|
||||
|
||||
try:
|
||||
Filemanager.check_access_permission(storage_manager_path, file_path)
|
||||
except Exception as e:
|
||||
@@ -1850,7 +1853,13 @@ def save_file():
|
||||
file_data = json.loads(request.data)
|
||||
|
||||
# retrieve storage directory path
|
||||
storage_manager_path = get_storage_directory()
|
||||
last_storage = Preferences.module('file_manager').preference(
|
||||
'last_storage').get()
|
||||
if last_storage != MY_STORAGE:
|
||||
storage_manager_path = get_storage_directory(
|
||||
shared_storage=last_storage)
|
||||
else:
|
||||
storage_manager_path = get_storage_directory()
|
||||
|
||||
# generate full path of file
|
||||
file_path = unquote(file_data['file_name'])
|
||||
|
||||
@@ -439,8 +439,8 @@ export default function QueryToolComponent({params, pgWindow, pgAdmin, selectedN
|
||||
'supported_types': ['*', 'sql'], // file types allowed
|
||||
'dialog_type': 'select_file', // open select file dialog
|
||||
};
|
||||
pgAdmin.Tools.FileManager.show(fileParams, (fileName)=>{
|
||||
eventBus.current.fireEvent(QUERY_TOOL_EVENTS.LOAD_FILE, fileName);
|
||||
pgAdmin.Tools.FileManager.show(fileParams, (fileName, storage)=>{
|
||||
eventBus.current.fireEvent(QUERY_TOOL_EVENTS.LOAD_FILE, fileName, storage);
|
||||
}, null, modal);
|
||||
}],
|
||||
[QUERY_TOOL_EVENTS.TRIGGER_SAVE_FILE, (isSaveAs=false)=>{
|
||||
|
||||
@@ -350,9 +350,10 @@ export default function Query() {
|
||||
}
|
||||
});
|
||||
|
||||
eventBus.registerListener(QUERY_TOOL_EVENTS.LOAD_FILE, (fileName)=>{
|
||||
eventBus.registerListener(QUERY_TOOL_EVENTS.LOAD_FILE, (fileName, storage)=>{
|
||||
queryToolCtx.api.post(url_for('sqleditor.load_file'), {
|
||||
'file_name': decodeURI(fileName),
|
||||
'storage': storage
|
||||
}, {transformResponse: [(data, headers) => {
|
||||
if(headers['content-type'].includes('application/json')) {
|
||||
return JSON.parse(data);
|
||||
|
||||
Reference in New Issue
Block a user