def create_basebackup(self, site, connection_info, basebackup_path, callback_queue=None, metadata=None): connection_string, _ = replication_connection_string_and_slot_using_pgpass( connection_info) pg_version_server = self.check_pg_server_version( connection_string, site) if not self.check_pg_versions_ok(site, pg_version_server, "pg_basebackup"): if callback_queue: callback_queue.put({"success": False}) return thread = PGBaseBackup( config=self.config, site=site, connection_info=connection_info, basebackup_path=basebackup_path, compression_queue=self.compression_queue, transfer_queue=self.transfer_queue, callback_queue=callback_queue, pg_version_server=pg_version_server, metrics=self.metrics, metadata=metadata, ) thread.start() self.basebackups[site] = thread
def receivexlog_listener(self, site, connection_info, wal_directory): connection_string, slot = replication_connection_string_and_slot_using_pgpass(connection_info) pg_version_server = self.check_pg_server_version(connection_string, site) if not self.check_pg_versions_ok(site, pg_version_server, "pg_receivexlog"): return self.inotify.add_watch(wal_directory) thread = PGReceiveXLog( config=self.config, connection_string=connection_string, wal_location=wal_directory, site=site, slot=slot, pg_version_server=pg_version_server) thread.start() self.receivexlogs[site] = thread
def receivexlog_listener(self, site, connection_info, xlog_directory): connection_string, slot = replication_connection_string_and_slot_using_pgpass(connection_info) pg_version_server = self.check_pg_server_version(connection_string) if pg_version_server: self.config["backup_sites"][site]["pg_version"] = pg_version_server if not self.check_pg_versions_ok(pg_version_server, "pg_receivexlog"): return self.inotify.add_watch(xlog_directory) thread = PGReceiveXLog( config=self.config, connection_string=connection_string, xlog_location=xlog_directory, slot=slot, pg_version_server=pg_version_server) thread.start() self.receivexlogs[site] = thread
def start_walreceiver(self, site, chosen_backup_node, last_flushed_lsn): connection_string, slot = replication_connection_string_and_slot_using_pgpass(chosen_backup_node) pg_version_server = self.check_pg_server_version(connection_string, site) if not WALReceiver: self.log.error("Could not import WALReceiver, incorrect psycopg2 version?") return thread = WALReceiver( config=self.config, connection_string=connection_string, compression_queue=self.compression_queue, replication_slot=slot, pg_version_server=pg_version_server, site=site, last_flushed_lsn=last_flushed_lsn, metrics=self.metrics) thread.start() self.walreceivers[site] = thread
def create_basebackup(self, site, connection_info, basebackup_path, callback_queue=None): connection_string, _ = replication_connection_string_and_slot_using_pgpass(connection_info) pg_version_server = self.check_pg_server_version(connection_string, site) if not self.check_pg_versions_ok(site, pg_version_server, "pg_basebackup"): if callback_queue: callback_queue.put({"success": False}) return thread = PGBaseBackup( config=self.config, site=site, connection_info=connection_info, basebackup_path=basebackup_path, compression_queue=self.compression_queue, transfer_queue=self.transfer_queue, callback_queue=callback_queue, pg_version_server=pg_version_server, metrics=self.metrics) thread.start() self.basebackups[site] = thread