diff options
author | Lars Wirzenius <liw@liw.fi> | 2022-03-23 05:53:51 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2022-03-23 05:53:51 +0000 |
commit | f44770ab64d465c099ca893a0536e467052f9d3b (patch) | |
tree | e45cfffc298033cc34c8b9d7bed894e4696c55f8 /src/cmd/backup.rs | |
parent | 4a9b26903d48d622f7f2a01eb54eec88e92da868 (diff) | |
parent | d692b1877a18e83e23cfbcad1b5e9f91f561e7c1 (diff) | |
download | obnam2-f44770ab64d465c099ca893a0536e467052f9d3b.tar.gz |
Merge branch 'liw/trust-root' into 'main'
Add chunk that lists all generations
Closes #62 and #34
See merge request obnam/obnam!224
Diffstat (limited to 'src/cmd/backup.rs')
-rw-r--r-- | src/cmd/backup.rs | 17 |
1 files changed, 15 insertions, 2 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); } |