@@ -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,35 @@ 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
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
100113
101- return "{0} ({1}:{2})" .format (s .name , host , port )
114+ return f"{ s .name } ({ ': ' .join (map (str , filter (None , [
115+ f'{ _ ('Service' )} : { s .service } ' if s .service else None ,
116+ host ,
117+ port
118+ ])))} )"
102119
103120 @property
104121 def message (self ):
@@ -110,6 +127,7 @@ def type_desc(self):
110127 return _ ("Restoring backup on the server" )
111128
112129 def details (self , cmd , args ):
130+ self .arg_list = args
113131 return {
114132 "message" : self .message ,
115133 "cmd" : cmd + self .cmd ,
@@ -274,14 +292,19 @@ def get_restore_util_args(data, manager, server, driver, conn, filepath):
274292 if 'list' in data :
275293 args .append ('--list' )
276294 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- ])
295+ host = manager .local_bind_host if manager .use_ssh_tunnel \
296+ else server .host
297+ port = manager .local_bind_port if manager .use_ssh_tunnel \
298+ else server .port
299+
300+ if host :
301+ args .extend (['--host' , host ])
302+ if port :
303+ args .extend (['--port' , str (port )])
304+ if server .username :
305+ args .extend (['--username' , server .username ])
306+
307+ args .append ('--no-password' )
285308
286309 set_value ('role' , '--role' , data , args )
287310 set_value ('database' , '--dbname' , data , args )
@@ -357,17 +380,23 @@ def get_sql_util_args(data, manager, server, filepath):
357380 :return: args list.
358381 """
359382 restrict_key = secrets .token_hex (32 )
383+ host = manager .local_bind_host if manager .use_ssh_tunnel \
384+ else server .host
385+ port = manager .local_bind_port if manager .use_ssh_tunnel \
386+ else server .port
360387 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' ],
388+ '--dbname' , data ['database' ],
368389 '-c' , f'\\ restrict { restrict_key } ' ,
369390 '--file' , fs_short_path (filepath )
370391 ]
392+ if host :
393+ args .extend (['--host' , host ])
394+
395+ if port :
396+ args .extend (['--port' , str (port )])
397+
398+ if server .username :
399+ args .extend (['--username' , server .username ])
371400
372401 return args
373402
0 commit comments