From b4b08d6ff76e4948dda6e4c8c8d36154204650ae Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Wed, 23 Dec 2020 19:47:35 +0200 Subject: feat! only specify base URL of server, without /chunks --- client.yaml | 2 +- src/client.rs | 16 ++++++++++------ subplot/server.py | 10 +++++----- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/client.yaml b/client.yaml index 2bc88a1..dd60c9c 100644 --- a/client.yaml +++ b/client.yaml @@ -1,3 +1,3 @@ -server_url: https://localhost:8888/chunks +server_url: https://localhost:8888 root: /home/liw/tmp/Foton log: obnam.log diff --git a/src/client.rs b/src/client.rs index 41b8ae2..af8d65e 100644 --- a/src/client.rs +++ b/src/client.rs @@ -90,11 +90,15 @@ impl BackupClient { &self.base_url } + fn chunks_url(&self) -> String { + format!("{}/chunks", self.base_url()) + } + pub fn has_chunk(&self, meta: &ChunkMeta) -> anyhow::Result> { trace!("has_chunk: url={:?}", self.base_url()); let req = self .client - .get(self.base_url()) + .get(&self.chunks_url()) .query(&[("sha256", meta.sha256())]) .build()?; @@ -123,7 +127,7 @@ impl BackupClient { pub fn upload_chunk(&self, meta: ChunkMeta, chunk: DataChunk) -> anyhow::Result { let res = self .client - .post(self.base_url()) + .post(&self.chunks_url()) .header("chunk-meta", meta.to_json()) .body(chunk.data().to_vec()) .send()?; @@ -145,7 +149,7 @@ impl BackupClient { ) -> anyhow::Result { let res = self .client - .post(self.base_url()) + .post(&self.chunks_url()) .header("chunk-meta", meta.to_json()) .body(serde_json::to_string(&gen)?) .send()?; @@ -176,7 +180,7 @@ impl BackupClient { } pub fn list_generations(&self) -> anyhow::Result> { - let url = format!("{}/?generation=true", self.base_url()); + let url = format!("{}?generation=true", &self.chunks_url()); trace!("list_generations: url={:?}", url); let req = self.client.get(&url).build()?; let res = self.client.execute(req)?; @@ -189,7 +193,7 @@ impl BackupClient { } pub fn fetch_chunk(&self, chunk_id: &ChunkId) -> anyhow::Result { - let url = format!("{}/{}", self.base_url(), chunk_id); + let url = format!("{}/{}", &self.chunks_url(), chunk_id); trace!("fetch_chunk: url={:?}", url); let req = self.client.get(&url).build()?; let res = self.client.execute(req)?; @@ -203,7 +207,7 @@ impl BackupClient { } pub fn fetch_generation(&self, gen_id: &str) -> anyhow::Result { - let url = format!("{}/{}", self.base_url(), gen_id); + let url = format!("{}/{}", &self.chunks_url(), gen_id); trace!("fetch_generation: url={:?}", url); let req = self.client.get(&url).build()?; let res = self.client.execute(req)?; diff --git a/subplot/server.py b/subplot/server.py index 7abe498..b07e944 100644 --- a/subplot/server.py +++ b/subplot/server.py @@ -38,7 +38,7 @@ def start_chunk_server(ctx): yaml.safe_dump(config, stream=open(filename, "w")) logging.debug(f"Picked randomly port for obnam-server: {config['address']}") - ctx["server_url"] = f"https://{config['address']}/chunks" + ctx["server_url"] = f"https://{config['address']}" start_daemon( ctx, @@ -58,7 +58,7 @@ def stop_chunk_server(ctx): def post_file(ctx, filename=None, path=None, header=None, json=None): - url = f"{ctx['server_url']}" + url = f"{ctx['server_url']}/chunks" headers = {header: json} data = open(filename, "rb").read() _request(ctx, requests.post, url, headers=headers, data=data) @@ -70,12 +70,12 @@ def get_chunk_via_var(ctx, var=None): def get_chunk_by_id(ctx, chunk_id=None): - url = f"{ctx['server_url']}/{chunk_id}" + url = f"{ctx['server_url']}/chunks/{chunk_id}" _request(ctx, requests.get, url) def find_chunks_with_sha(ctx, sha=None): - url = f"{ctx['server_url']}?sha256={sha}" + url = f"{ctx['server_url']}/chunks?sha256={sha}" _request(ctx, requests.get, url) @@ -85,7 +85,7 @@ def delete_chunk_via_var(ctx, var=None): def delete_chunk_by_id(ctx, chunk_id=None): - url = f"{ctx['server_url']}/{chunk_id}" + url = f"{ctx['server_url']}/chunks/{chunk_id}" _request(ctx, requests.delete, url) -- cgit v1.2.1