diff --git a/crates/ecstore/src/bucket/metadata.rs b/crates/ecstore/src/bucket/metadata.rs index 7d4983aba..c82903bb9 100644 --- a/crates/ecstore/src/bucket/metadata.rs +++ b/crates/ecstore/src/bucket/metadata.rs @@ -724,7 +724,7 @@ impl BucketMetadata { return Err(Error::other("errServerNotInitialized")); }; - self.parse_all_configs(store.clone())?; + self.parse_all_configs()?; let mut buf: Vec = vec![0; 4]; @@ -752,7 +752,7 @@ impl BucketMetadata { Ok(()) } - fn parse_all_configs(&mut self, _api: Arc) -> Result<()> { + fn parse_all_configs(&mut self) -> Result<()> { if let Err(e) = self.parse_policy_config() { tracing::warn!(bucket = %self.name, config = "policy", error = %e, "parse_all_configs: failed to parse"); } @@ -881,11 +881,9 @@ pub async fn load_bucket_metadata_parse(api: Arc, bucket: &str, parse: bm.default_timestamps(); if parse { - bm.parse_all_configs(api)?; + bm.parse_all_configs()?; } - // TODO: parse_all_configs - Ok(bm) } @@ -939,6 +937,23 @@ mod test { assert_eq!(bm.name, new.name); } + #[test] + fn parse_all_configs_parses_stored_configs_without_store_dependency() { + let mut bm = BucketMetadata::new("test-bucket"); + bm.policy_config_json = br#"{"Version":"2012-10-17","Statement":[]}"#.to_vec(); + bm.bucket_targets_config_json = + br#"{"targets":[{"endpoint":"s3.amazonaws.com","targetbucket":"target-bucket","arn":"arn:aws:s3:::target-bucket"}]}"# + .to_vec(); + + bm.parse_all_configs().unwrap(); + + assert!(bm.policy_config.is_some()); + let bucket_targets = bm.bucket_target_config.unwrap(); + assert_eq!(bucket_targets.targets.len(), 1); + assert_eq!(bucket_targets.targets[0].endpoint, "s3.amazonaws.com"); + assert_eq!(bucket_targets.targets[0].target_bucket, "target-bucket"); + } + #[tokio::test] async fn marshal_msg_complete_example() { // Create a complete BucketMetadata with various configurations