aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Auvolat <lx@deuxfleurs.fr>2025-02-18 19:34:56 +0100
committerAlex Auvolat <lx@deuxfleurs.fr>2025-02-18 19:39:59 +0100
commit0a2e809cb9c03e837c3fa79f266385e94d2ba3a7 (patch)
tree20a3beab1d7cb5be5b08871ed949ba80ed8ea4b1
parente0f8a72a81ce058d78f15d3affcfe7b4e88c7d76 (diff)
downloadgarage-v1.99-internal.tar.gz
garage-v1.99-internal.zip
admin api: avoid overwriting redirect rules in UpdateBucketv1.99.0-internalv1.99-internal
-rw-r--r--src/api/admin/bucket.rs8
-rw-r--r--src/garage/admin/bucket.rs8
2 files changed, 12 insertions, 4 deletions
diff --git a/src/api/admin/bucket.rs b/src/api/admin/bucket.rs
index 9a98488e..6edc4aeb 100644
--- a/src/api/admin/bucket.rs
+++ b/src/api/admin/bucket.rs
@@ -419,13 +419,17 @@ pub async fn handle_update_bucket(
if let Some(wa) = req.website_access {
if wa.enabled {
+ let (redirect_all, routing_rules) = match state.website_config.get() {
+ Some(wc) => (wc.redirect_all.clone(), wc.routing_rules.clone()),
+ None => (None, Vec::new()),
+ };
state.website_config.update(Some(WebsiteConfig {
index_document: wa.index_document.ok_or_bad_request(
"Please specify indexDocument when enabling website access.",
)?,
error_document: wa.error_document,
- redirect_all: None,
- routing_rules: Vec::new(),
+ redirect_all,
+ routing_rules,
}));
} else {
if wa.index_document.is_some() || wa.error_document.is_some() {
diff --git a/src/garage/admin/bucket.rs b/src/garage/admin/bucket.rs
index 9afb90d0..0ff436c9 100644
--- a/src/garage/admin/bucket.rs
+++ b/src/garage/admin/bucket.rs
@@ -390,11 +390,15 @@ impl AdminRpcHandler {
}
let website = if query.allow {
+ let (redirect_all, routing_rules) = match bucket_state.website_config.get() {
+ Some(wc) => (wc.redirect_all.clone(), wc.routing_rules.clone()),
+ None => (None, Vec::new()),
+ };
Some(WebsiteConfig {
index_document: query.index_document.clone(),
error_document: query.error_document.clone(),
- redirect_all: None,
- routing_rules: Vec::new(),
+ redirect_all,
+ routing_rules,
})
} else {
None