aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlex <lx@deuxfleurs.fr>2025-01-27 18:04:05 +0000
committerAlex <lx@deuxfleurs.fr>2025-01-27 18:04:05 +0000
commitefa6f3d85ee5a4db870aa429f57b946829af8552 (patch)
tree50a38f3e8ce48f3f7f23ca74e5e50a80dad9fba3 /src
parent5e3e1f4453dacc814c79bbec08cd5acadb2ce4d0 (diff)
parent59c153d2804500b51362b20c3c8252383ef0e9ce (diff)
downloadgarage-efa6f3d85ee5a4db870aa429f57b946829af8552.tar.gz
garage-efa6f3d85ee5a4db870aa429f57b946829af8552.zip
Merge pull request 'db-snapshot: allow to set directory where snapshots are stored' (#933) from baptiste/garage:configure_metadata_snapshots_dir into main
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/933
Diffstat (limited to 'src')
-rw-r--r--src/model/snapshot.rs10
-rw-r--r--src/util/config.rs3
2 files changed, 11 insertions, 2 deletions
diff --git a/src/model/snapshot.rs b/src/model/snapshot.rs
index 87756f60..8e8995f9 100644
--- a/src/model/snapshot.rs
+++ b/src/model/snapshot.rs
@@ -41,8 +41,14 @@ pub fn snapshot_metadata(garage: &Garage) -> Result<(), Error> {
}
};
- let mut snapshots_dir = garage.config.metadata_dir.clone();
- snapshots_dir.push("snapshots");
+ let snapshots_dir = match &garage.config.metadata_snapshots_dir {
+ Some(d) => d.clone(),
+ None => {
+ let mut default_snapshots_dir = garage.config.metadata_dir.clone();
+ default_snapshots_dir.push("snapshots");
+ default_snapshots_dir
+ }
+ };
fs::create_dir_all(&snapshots_dir)?;
let mut new_path = snapshots_dir.clone();
diff --git a/src/util/config.rs b/src/util/config.rs
index 01f7350a..b4e2b008 100644
--- a/src/util/config.rs
+++ b/src/util/config.rs
@@ -31,6 +31,9 @@ pub struct Config {
#[serde(default)]
pub use_local_tz: bool,
+ /// Optional directory where metadata snapshots will be store
+ pub metadata_snapshots_dir: Option<PathBuf>,
+
/// Automatic snapshot interval for metadata
#[serde(default)]
pub metadata_auto_snapshot_interval: Option<String>,