@@ -64,6 +64,7 @@ def __init__(self, _sid, _bfile, *_args, **_kwargs):
6464 self .bfile = _bfile
6565 self .database = _kwargs ['database' ] if 'database' in _kwargs else None
6666 self .cmd = ''
67+ self .arg_list = None
6768
6869 def cmd_arg (x ):
6970 if x :
@@ -86,19 +87,39 @@ def cmd_arg(x):
8687 self .cmd += cmd_arg (arg )
8788
8889 def get_server_name (self ):
90+ args = self .arg_list
8991 s = get_server (self .sid )
9092
9193 if s is None :
9294 return _ ("Not available" )
9395
94- from pgadmin .utils .driver import get_driver
95- driver = get_driver (PG_DEFAULT_DRIVER )
96- manager = driver .connection_manager (self .sid )
96+ host , port = None , None
9797
98- host = manager .local_bind_host if manager .use_ssh_tunnel else s .host
99- port = manager .local_bind_port if manager .use_ssh_tunnel else s .port
100-
101- return "{0} ({1}:{2})" .format (s .name , host , port )
98+ if args and isinstance (args , list ):
99+ def get_arg (val ):
100+ if val in args and args .index (val ) + 1 < len (args ):
101+ return args [args .index (val ) + 1 ]
102+ return None
103+ host , port = get_arg ('--host' ), get_arg ('--port' )
104+ else :
105+ from pgadmin .utils .driver import get_driver
106+ driver = get_driver (PG_DEFAULT_DRIVER )
107+ manager = driver .connection_manager (self .sid )
108+
109+ host = manager .local_bind_host if manager .use_ssh_tunnel \
110+ else s .host
111+ port = manager .local_bind_port if manager .use_ssh_tunnel \
112+ else s .port
113+
114+ return "{0} ({1})" .format (
115+ s .name ,
116+ ': ' .join (map (str , filter (None , [
117+ '{0}: {1}' .format (_ ('Service' ), s .service )
118+ if s .service else None ,
119+ host ,
120+ port
121+ ])))
122+ ) if (s .service or host or port ) else s .name
102123
103124 @property
104125 def message (self ):
@@ -110,6 +131,7 @@ def type_desc(self):
110131 return _ ("Restoring backup on the server" )
111132
112133 def details (self , cmd , args ):
134+ self .arg_list = args
113135 return {
114136 "message" : self .message ,
115137 "cmd" : cmd + self .cmd ,
@@ -274,14 +296,19 @@ def get_restore_util_args(data, manager, server, driver, conn, filepath):
274296 if 'list' in data :
275297 args .append ('--list' )
276298 else :
277- args .extend ([
278- '--host' ,
279- manager .local_bind_host if manager .use_ssh_tunnel else server .host ,
280- '--port' ,
281- str (manager .local_bind_port ) if manager .use_ssh_tunnel
282- else str (server .port ),
283- '--username' , server .username , '--no-password'
284- ])
299+ host = manager .local_bind_host if manager .use_ssh_tunnel \
300+ else server .host
301+ port = manager .local_bind_port if manager .use_ssh_tunnel \
302+ else server .port
303+
304+ if host :
305+ args .extend (['--host' , host ])
306+ if port :
307+ args .extend (['--port' , str (port )])
308+ if server .username :
309+ args .extend (['--username' , server .username ])
310+
311+ args .append ('--no-password' )
285312
286313 set_value ('role' , '--role' , data , args )
287314 set_value ('database' , '--dbname' , data , args )
@@ -357,17 +384,23 @@ def get_sql_util_args(data, manager, server, filepath):
357384 :return: args list.
358385 """
359386 restrict_key = secrets .token_hex (32 )
387+ host = manager .local_bind_host if manager .use_ssh_tunnel \
388+ else server .host
389+ port = manager .local_bind_port if manager .use_ssh_tunnel \
390+ else server .port
360391 args = [
361- '--host' ,
362- manager .local_bind_host if manager .use_ssh_tunnel else server .host ,
363- '--port' ,
364- str (manager .local_bind_port ) if manager .use_ssh_tunnel
365- else str (server .port ),
366- '--username' , server .username , '--dbname' ,
367- data ['database' ],
392+ '--dbname' , data ['database' ],
368393 '-c' , f'\\ restrict { restrict_key } ' ,
369394 '--file' , fs_short_path (filepath )
370395 ]
396+ if host :
397+ args .extend (['--host' , host ])
398+
399+ if port :
400+ args .extend (['--port' , str (port )])
401+
402+ if server .username :
403+ args .extend (['--username' , server .username ])
371404
372405 return args
373406
0 commit comments