summaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/backup.rs17
-rw-r--r--src/cmd/gen_info.rs9
-rw-r--r--src/cmd/inspect.rs9
-rw-r--r--src/cmd/list.rs8
-rw-r--r--src/cmd/list_files.rs8
-rw-r--r--src/cmd/resolve.rs8
-rw-r--r--src/cmd/restore.rs8
-rw-r--r--src/cmd/show_gen.rs8
8 files changed, 66 insertions, 9 deletions
diff --git a/src/cmd/backup.rs b/src/cmd/backup.rs
index 6983de4..db65da0 100644
--- a/src/cmd/backup.rs
+++ b/src/cmd/backup.rs
@@ -1,6 +1,7 @@
//! The `backup` subcommand.
-use crate::backup_run::BackupRun;
+use crate::backup_run::{current_timestamp, BackupRun};
+use crate::chunk::ClientTrust;
use crate::client::BackupClient;
use crate::config::ClientConfig;
use crate::dbgen::{schema_version, FileId, DEFAULT_SCHEMA_MAJOR};
@@ -37,7 +38,12 @@ impl Backup {
eprintln!("backup: schema: {}", schema);
let client = BackupClient::new(config)?;
- let genlist = client.list_generations().await?;
+ let trust = client
+ .get_client_trust()
+ .await?
+ .or_else(|| Some(ClientTrust::new("FIXME", None, current_timestamp(), vec![])))
+ .unwrap();
+ let genlist = client.list_generations(&trust);
let temp = tempdir()?;
let oldtemp = temp.path().join("old.db");
@@ -64,6 +70,13 @@ impl Backup {
}
};
+ let mut trust = trust;
+ trust.append_backup(outcome.gen_id.as_chunk_id());
+ trust.finalize(current_timestamp());
+ let trust = trust.to_data_chunk()?;
+ let trust_id = client.upload_chunk(trust).await?;
+ info!("uploaded new client-trust {}", trust_id);
+
for w in outcome.warnings.iter() {
println!("warning: {}", w);
}
diff --git a/src/cmd/gen_info.rs b/src/cmd/gen_info.rs
index 2ce1f64..0aec103 100644
--- a/src/cmd/gen_info.rs
+++ b/src/cmd/gen_info.rs
@@ -1,5 +1,6 @@
//! The `gen-info` subcommand.
+use crate::chunk::ClientTrust;
use crate::client::BackupClient;
use crate::config::ClientConfig;
use crate::error::ObnamError;
@@ -28,7 +29,13 @@ impl GenInfo {
let client = BackupClient::new(config)?;
- let genlist = client.list_generations().await?;
+ let trust = client
+ .get_client_trust()
+ .await?
+ .or_else(|| Some(ClientTrust::new("FIXME", None, "".to_string(), vec![])))
+ .unwrap();
+
+ let genlist = client.list_generations(&trust);
let gen_id = genlist.resolve(&self.gen_ref)?;
info!("generation id is {}", gen_id.as_chunk_id());
diff --git a/src/cmd/inspect.rs b/src/cmd/inspect.rs
index d5a75c6..02801ae 100644
--- a/src/cmd/inspect.rs
+++ b/src/cmd/inspect.rs
@@ -1,5 +1,7 @@
//! The `inspect` subcommand.
+use crate::backup_run::current_timestamp;
+use crate::chunk::ClientTrust;
use crate::client::BackupClient;
use crate::config::ClientConfig;
use crate::error::ObnamError;
@@ -27,7 +29,12 @@ impl Inspect {
async fn run_async(&self, config: &ClientConfig) -> Result<(), ObnamError> {
let temp = NamedTempFile::new()?;
let client = BackupClient::new(config)?;
- let genlist = client.list_generations().await?;
+ let trust = client
+ .get_client_trust()
+ .await?
+ .or_else(|| Some(ClientTrust::new("FIXME", None, current_timestamp(), vec![])))
+ .unwrap();
+ let genlist = client.list_generations(&trust);
let gen_id = genlist.resolve(&self.gen_id)?;
info!("generation id is {}", gen_id.as_chunk_id());
diff --git a/src/cmd/list.rs b/src/cmd/list.rs
index f176594..bbb9c91 100644
--- a/src/cmd/list.rs
+++ b/src/cmd/list.rs
@@ -1,5 +1,6 @@
//! The `list` subcommand.
+use crate::chunk::ClientTrust;
use crate::client::BackupClient;
use crate::config::ClientConfig;
use crate::error::ObnamError;
@@ -19,8 +20,13 @@ impl List {
async fn run_async(&self, config: &ClientConfig) -> Result<(), ObnamError> {
let client = BackupClient::new(config)?;
+ let trust = client
+ .get_client_trust()
+ .await?
+ .or_else(|| Some(ClientTrust::new("FIXME", None, "".to_string(), vec![])))
+ .unwrap();
- let generations = client.list_generations().await?;
+ let generations = client.list_generations(&trust);
for finished in generations.iter() {
println!("{} {}", finished.id(), finished.ended());
}
diff --git a/src/cmd/list_files.rs b/src/cmd/list_files.rs
index 9126564..fb4764d 100644
--- a/src/cmd/list_files.rs
+++ b/src/cmd/list_files.rs
@@ -1,6 +1,7 @@
//! The `list-files` subcommand.
use crate::backup_reason::Reason;
+use crate::chunk::ClientTrust;
use crate::client::BackupClient;
use crate::config::ClientConfig;
use crate::error::ObnamError;
@@ -28,8 +29,13 @@ impl ListFiles {
let temp = NamedTempFile::new()?;
let client = BackupClient::new(config)?;
+ let trust = client
+ .get_client_trust()
+ .await?
+ .or_else(|| Some(ClientTrust::new("FIXME", None, "".to_string(), vec![])))
+ .unwrap();
- let genlist = client.list_generations().await?;
+ let genlist = client.list_generations(&trust);
let gen_id = genlist.resolve(&self.gen_id)?;
let gen = client.fetch_generation(&gen_id, temp.path()).await?;
diff --git a/src/cmd/resolve.rs b/src/cmd/resolve.rs
index 3b9570a..12432cc 100644
--- a/src/cmd/resolve.rs
+++ b/src/cmd/resolve.rs
@@ -1,5 +1,6 @@
//! The `resolve` subcommand.
+use crate::chunk::ClientTrust;
use crate::client::BackupClient;
use crate::config::ClientConfig;
use crate::error::ObnamError;
@@ -22,7 +23,12 @@ impl Resolve {
async fn run_async(&self, config: &ClientConfig) -> Result<(), ObnamError> {
let client = BackupClient::new(config)?;
- let generations = client.list_generations().await?;
+ let trust = client
+ .get_client_trust()
+ .await?
+ .or_else(|| Some(ClientTrust::new("FIXME", None, "".to_string(), vec![])))
+ .unwrap();
+ let generations = client.list_generations(&trust);
match generations.resolve(&self.generation) {
Err(err) => {
diff --git a/src/cmd/restore.rs b/src/cmd/restore.rs
index 43d9679..4a637da 100644
--- a/src/cmd/restore.rs
+++ b/src/cmd/restore.rs
@@ -1,6 +1,7 @@
//! The `restore` subcommand.
use crate::backup_reason::Reason;
+use crate::chunk::ClientTrust;
use crate::client::{BackupClient, ClientError};
use crate::config::ClientConfig;
use crate::db::DatabaseError;
@@ -46,8 +47,13 @@ impl Restore {
let temp = NamedTempFile::new()?;
let client = BackupClient::new(config)?;
+ let trust = client
+ .get_client_trust()
+ .await?
+ .or_else(|| Some(ClientTrust::new("FIXME", None, "".to_string(), vec![])))
+ .unwrap();
- let genlist = client.list_generations().await?;
+ let genlist = client.list_generations(&trust);
let gen_id = genlist.resolve(&self.gen_id)?;
info!("generation id is {}", gen_id.as_chunk_id());
diff --git a/src/cmd/show_gen.rs b/src/cmd/show_gen.rs
index 006e0e0..970a165 100644
--- a/src/cmd/show_gen.rs
+++ b/src/cmd/show_gen.rs
@@ -1,5 +1,6 @@
//! The `show-generation` subcommand.
+use crate::chunk::ClientTrust;
use crate::client::BackupClient;
use crate::config::ClientConfig;
use crate::error::ObnamError;
@@ -27,8 +28,13 @@ impl ShowGeneration {
async fn run_async(&self, config: &ClientConfig) -> Result<(), ObnamError> {
let temp = NamedTempFile::new()?;
let client = BackupClient::new(config)?;
+ let trust = client
+ .get_client_trust()
+ .await?
+ .or_else(|| Some(ClientTrust::new("FIXME", None, "".to_string(), vec![])))
+ .unwrap();
- let genlist = client.list_generations().await?;
+ let genlist = client.list_generations(&trust);
let gen_id = genlist.resolve(&self.gen_id)?;
let gen = client.fetch_generation(&gen_id, temp.path()).await?;
let mut files = gen.files()?;