| 59 | |
| 60 | |
| 61 | class RestoreMessage(IProcessDesc): |
| 62 | def __init__(self, _sid, _bfile, *_args, **_kwargs): |
| 63 | self.sid = _sid |
| 64 | self.bfile = _bfile |
| 65 | self.database = _kwargs['database'] if 'database' in _kwargs else None |
| 66 | self.cmd = '' |
| 67 | self.arg_list = None |
| 68 | |
| 69 | def cmd_arg(x): |
| 70 | if x: |
| 71 | x = x.replace('\\', '\\\\') |
| 72 | x = x.replace('"', '\\"') |
| 73 | x = x.replace('""', '\\"') |
| 74 | return ' "' + x + '"' |
| 75 | return '' |
| 76 | |
| 77 | for arg in _args: |
| 78 | if arg and RESTRICT_COMMAND in arg: |
| 79 | # Find the index where \restrict ends |
| 80 | idx = arg.find(RESTRICT_COMMAND) + len(RESTRICT_COMMAND) |
| 81 | # Keep the prefix and mask everything after it |
| 82 | masked_arg = arg[:idx + 1] + "x" * (len(arg) - idx - 1) |
| 83 | self.cmd += cmd_arg(masked_arg) |
| 84 | elif arg and len(arg) >= 2 and arg.startswith('--'): |
| 85 | self.cmd += ' ' + arg |
| 86 | else: |
| 87 | self.cmd += cmd_arg(arg) |
| 88 | |
| 89 | def get_server_name(self): |
| 90 | args = self.arg_list |
| 91 | s = get_server(self.sid) |
| 92 | |
| 93 | if s is None: |
| 94 | return _("Not available") |
| 95 | |
| 96 | host, port = None, None |
| 97 | |
| 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, |
no outgoing calls