summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2020-11-18 06:50:42 +0000
committerLars Wirzenius <liw@liw.fi>2020-11-18 06:50:42 +0000
commitd96bdc1b6ac6138eeb127dae966ba2575f54083a (patch)
treed6e6ee6ca6f0ecfbba1311879e87e77a720a49c9
parent24ffcb0083750bb77963a1ab8e3205290c2c7190 (diff)
parentb5ddc105852b63651916f322ce855baf61d129d0 (diff)
downloadobnam2-d96bdc1b6ac6138eeb127dae966ba2575f54083a.tar.gz
Merge branch 'url' into 'main'
feat! change client config to take a base URL instead of host, port See merge request larswirzenius/obnam!13
-rw-r--r--client.yaml3
-rw-r--r--src/client.rs11
-rw-r--r--src/cmd/backup.rs2
-rw-r--r--src/cmd/list.rs2
-rw-r--r--src/cmd/restore.rs5
-rw-r--r--subplot/client.py6
-rw-r--r--subplot/server.py12
7 files changed, 18 insertions, 23 deletions
diff --git a/client.yaml b/client.yaml
index 42d2d3d..fbe0b54 100644
--- a/client.yaml
+++ b/client.yaml
@@ -1,4 +1,3 @@
-server_name: localhost
-server_port: 8888
+server_url: http://localhost:8888/chunks
root: /home/liw/pers/debian-ansible
dbname: foo.db
diff --git a/src/client.rs b/src/client.rs
index ecfc42c..d7dca36 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -13,8 +13,7 @@ use std::path::{Path, PathBuf};
#[derive(Debug, Deserialize, Clone)]
pub struct ClientConfig {
- pub server_name: String,
- pub server_port: u16,
+ pub server_url: String,
pub dbname: PathBuf,
pub root: PathBuf,
}
@@ -46,12 +45,14 @@ pub struct BackupClient {
}
impl BackupClient {
- pub fn new(host: &str, port: u16) -> anyhow::Result<Self> {
+ pub fn new(base_url: &str) -> anyhow::Result<Self> {
let client = Client::builder()
.danger_accept_invalid_certs(true)
.build()?;
- let base_url = format!("http://{}:{}/chunks", host, port,);
- Ok(Self { client, base_url })
+ Ok(Self {
+ client,
+ base_url: base_url.to_string(),
+ })
}
pub fn upload_filesystem_entry(
diff --git a/src/cmd/backup.rs b/src/cmd/backup.rs
index 308eafb..71f5aac 100644
--- a/src/cmd/backup.rs
+++ b/src/cmd/backup.rs
@@ -5,7 +5,7 @@ use std::path::Path;
pub fn backup(config: &Path, buffer_size: usize) -> anyhow::Result<()> {
let config = ClientConfig::read_config(config)?;
- let client = BackupClient::new(&config.server_name, config.server_port)?;
+ let client = BackupClient::new(&config.server_url)?;
{
let mut gen = Generation::create(&config.dbname)?;
diff --git a/src/cmd/list.rs b/src/cmd/list.rs
index 1972144..1741bce 100644
--- a/src/cmd/list.rs
+++ b/src/cmd/list.rs
@@ -3,7 +3,7 @@ use std::path::Path;
pub fn list(config: &Path) -> anyhow::Result<()> {
let config = ClientConfig::read_config(&config)?;
- let client = BackupClient::new(&config.server_name, config.server_port)?;
+ let client = BackupClient::new(&config.server_url)?;
for gen_id in client.list_generations()? {
println!("{}", gen_id);
diff --git a/src/cmd/restore.rs b/src/cmd/restore.rs
index 6e2690c..8aa0345 100644
--- a/src/cmd/restore.rs
+++ b/src/cmd/restore.rs
@@ -12,7 +12,7 @@ use structopt::StructOpt;
pub fn restore(config: &Path, gen_id: &str, dbname: &Path, to: &Path) -> anyhow::Result<()> {
let config = Config::read_config(&config).unwrap();
- let client = BackupClient::new(&config.server_name, config.server_port)?;
+ let client = BackupClient::new(&config.server_url)?;
let gen_chunk = client.fetch_generation(&gen_id)?;
debug!("gen: {:?}", gen_chunk);
{
@@ -50,8 +50,7 @@ struct Opt {
#[derive(Debug, Deserialize, Clone)]
pub struct Config {
- pub server_name: String,
- pub server_port: u16,
+ pub server_url: String,
}
impl Config {
diff --git a/subplot/client.py b/subplot/client.py
index f159e74..7556986 100644
--- a/subplot/client.py
+++ b/subplot/client.py
@@ -14,13 +14,11 @@ def install_obnam(ctx):
def configure_client(ctx, filename=None):
get_file = globals()["get_file"]
- assert ctx.get("server_name") is not None
- assert ctx.get("server_port") is not None
+ assert ctx.get("server_url") is not None
config = get_file(filename)
config = yaml.safe_load(config)
- config["server_name"] = ctx["server_name"]
- config["server_port"] = ctx["server_port"]
+ config["server_url"] = ctx["server_url"]
with open(filename, "w") as f:
yaml.safe_dump(config, stream=f)
diff --git a/subplot/server.py b/subplot/server.py
index c159798..5952cb2 100644
--- a/subplot/server.py
+++ b/subplot/server.py
@@ -33,9 +33,7 @@ def start_chunk_server(ctx):
logging.debug(f"Picked randomly port for obnam-server: {config['port']}")
ctx["config"] = config
- ctx["server_name"] = "localhost"
- ctx["server_port"] = port
- ctx["url"] = f"http://localhost:{port}"
+ ctx["server_url"] = f"http://localhost:{port}/chunks"
start_daemon(
ctx,
@@ -55,7 +53,7 @@ def stop_chunk_server(ctx):
def post_file(ctx, filename=None, path=None, header=None, json=None):
- url = f"{ctx['url']}/chunks"
+ url = f"{ctx['server_url']}"
headers = {header: json}
data = open(filename, "rb").read()
_request(ctx, requests.post, url, headers=headers, data=data)
@@ -67,12 +65,12 @@ def get_chunk_via_var(ctx, var=None):
def get_chunk_by_id(ctx, chunk_id=None):
- url = f"{ctx['url']}/chunks/{chunk_id}"
+ url = f"{ctx['server_url']}/{chunk_id}"
_request(ctx, requests.get, url)
def find_chunks_with_sha(ctx, sha=None):
- url = f"{ctx['url']}/chunks?sha256={sha}"
+ url = f"{ctx['server_url']}?sha256={sha}"
_request(ctx, requests.get, url)
@@ -82,7 +80,7 @@ def delete_chunk_via_var(ctx, var=None):
def delete_chunk_by_id(ctx, chunk_id=None):
- url = f"{ctx['url']}/chunks/{chunk_id}"
+ url = f"{ctx['server_url']}/{chunk_id}"
_request(ctx, requests.delete, url)