From 3a3efe5a969d136a10bc31f07e8223f3ea5ed88c Mon Sep 17 00:00:00 2001 From: Dmitry Rodionov Date: Thu, 29 Sep 2022 15:25:41 +0300 Subject: [PATCH] wip backup script --- control_plane/src/local_env.rs | 2 +- hack/demo.py | 47 ++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 hack/demo.py diff --git a/control_plane/src/local_env.rs b/control_plane/src/local_env.rs index f4fbc99420..8ce9220002 100644 --- a/control_plane/src/local_env.rs +++ b/control_plane/src/local_env.rs @@ -285,7 +285,7 @@ impl LocalEnv { branch_name: &str, tenant_id: TenantId, ) -> Option { - self.branch_name_mappings + dbg!(&self.branch_name_mappings) .get(branch_name)? .iter() .find(|(mapped_tenant_id, _)| mapped_tenant_id == &tenant_id) diff --git a/hack/demo.py b/hack/demo.py new file mode 100644 index 0000000000..9c819dbbb2 --- /dev/null +++ b/hack/demo.py @@ -0,0 +1,47 @@ +import json +from pathlib import Path +import subprocess +import testgres +import sys + + +def from_backup_at(backup_dir: Path): + manifest = json.loads((backup_dir / "data" / "backup_manifest").read_text()) + start_lsn = manifest["WAL-Ranges"][0]["Start-LSN"] + end_lsn = manifest["WAL-Ranges"][0]["End-LSN"] + + cmd = ( + "target/debug/neon_local timeline import " + f"--tenant-id {tenant_id} " + f"--base-lsn {start_lsn} " + f"--end-lsn {end_lsn} " + f"--base-tarfile {backup_dir / 'data' / 'base.tar'} " + f"--timeline-id {timeline_id} " + f"--node-name {node_name}" + ) + + r = subprocess.check_output(cmd.split()) + print(r) + + +def main(tenant_id, timeline_id, node_name): + node = testgres.get_new_node() + node.init(allow_streaming=True).start() + node.pgbench_init(scale=2) + + backup = node.backup(backup_format="t") + backup_dir = Path(backup.base_dir) + + from_backup_at(backup_dir) + print(backup_dir) + + +if __name__ == "__main__": + tenant_id = "56fc742b0993a7adfd63fe37daa8a6ed" # sys.argv[1] + timeline_id = "56fc742b0993a7adfd63fe37daa8a7ed" # sys.argv[2] + node_name = sys.argv[3] + + dir = sys.argv[4] + from_backup_at(Path(dir)) + + # main(tenant_id, timeline_id, node_name)