summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2020-12-23 19:47:35 +0200
committerLars Wirzenius <liw@liw.fi>2020-12-23 19:47:35 +0200
commitb4b08d6ff76e4948dda6e4c8c8d36154204650ae (patch)
treed7036df9084c70541575a61553f4863d4969485e
parentbdd56ecad41d75880ea07a2cb3cd233d450cc24d (diff)
downloadobnam2-b4b08d6ff76e4948dda6e4c8c8d36154204650ae.tar.gz
feat! only specify base URL of server, without /chunks
-rw-r--r--client.yaml2
-rw-r--r--src/client.rs16
-rw-r--r--subplot/server.py10
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<Option<ChunkId>> {
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<ChunkId> {
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<ChunkId> {
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<Vec<ChunkId>> {
- 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<DataChunk> {
- 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<GenerationChunk> {
- 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)