From b427243d8b432bda7f5ebf08bb9c38943ddfb82a Mon Sep 17 00:00:00 2001 From: conorbros Date: Mon, 4 Sep 2023 17:50:53 +1000 Subject: [PATCH] review feedback --- docs/src/transforms.md | 3 +++ shotover-proxy/tests/test-configs/tee/log.yaml | 2 +- .../test-configs/tee/log_with_mismatch.yaml | 2 +- shotover/src/transforms/tee.rs | 16 ++++++++++------ 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/docs/src/transforms.md b/docs/src/transforms.md index cd32c00b8..0243e0961 100644 --- a/docs/src/transforms.md +++ b/docs/src/transforms.md @@ -524,6 +524,9 @@ The response from the down-chain transform is returned back up-chain but various # If the responses returned by the sub chain do not equal the responses returned by down-chain then return an error. # behavior: FailOnMismatch # + # If the responses returned by the sub chain do not equal the responses returned by down-chain then log the mismatch at the warning level. + # behavior: LogOnMismatch + # # If the responses returned by the sub chain do not equal the responses returned by down-chain, # then the original message is also sent down the SubchainOnMismatch sub chain. # This is useful for logging failed messages. diff --git a/shotover-proxy/tests/test-configs/tee/log.yaml b/shotover-proxy/tests/test-configs/tee/log.yaml index 2e34240d0..9b61dcba6 100644 --- a/shotover-proxy/tests/test-configs/tee/log.yaml +++ b/shotover-proxy/tests/test-configs/tee/log.yaml @@ -7,7 +7,7 @@ sources: chain_config: redis_chain: - Tee: - behavior: LogMismatch + behavior: LogWarningOnMismatch buffer_size: 10000 chain: - QueryTypeFilter: diff --git a/shotover-proxy/tests/test-configs/tee/log_with_mismatch.yaml b/shotover-proxy/tests/test-configs/tee/log_with_mismatch.yaml index eedbd7911..361d88ea0 100644 --- a/shotover-proxy/tests/test-configs/tee/log_with_mismatch.yaml +++ b/shotover-proxy/tests/test-configs/tee/log_with_mismatch.yaml @@ -7,7 +7,7 @@ sources: chain_config: redis_chain: - Tee: - behavior: LogMismatch + behavior: LogWarningOnMismatch buffer_size: 10000 chain: - QueryTypeFilter: diff --git a/shotover/src/transforms/tee.rs b/shotover/src/transforms/tee.rs index cd3011a6c..110c8d864 100644 --- a/shotover/src/transforms/tee.rs +++ b/shotover/src/transforms/tee.rs @@ -18,7 +18,7 @@ pub struct TeeBuilder { pub enum ConsistencyBehaviorBuilder { Ignore, - LogMismatch, + LogWarningOnMismatch, FailOnMismatch, SubchainOnMismatch(TransformChainBuilder), } @@ -48,7 +48,9 @@ impl TransformBuilder for TeeBuilder { tx: self.tx.build_buffered(self.buffer_size), behavior: match &self.behavior { ConsistencyBehaviorBuilder::Ignore => ConsistencyBehavior::Ignore, - ConsistencyBehaviorBuilder::LogMismatch => ConsistencyBehavior::LogMismatch, + ConsistencyBehaviorBuilder::LogWarningOnMismatch => { + ConsistencyBehavior::LogWarningOnMismatch + } ConsistencyBehaviorBuilder::FailOnMismatch => ConsistencyBehavior::FailOnMismatch, ConsistencyBehaviorBuilder::SubchainOnMismatch(chain) => { ConsistencyBehavior::SubchainOnMismatch(chain.build_buffered(self.buffer_size)) @@ -99,7 +101,7 @@ pub struct Tee { pub enum ConsistencyBehavior { Ignore, - LogMismatch, + LogWarningOnMismatch, FailOnMismatch, SubchainOnMismatch(BufferedChain), } @@ -117,7 +119,7 @@ pub struct TeeConfig { #[serde(deny_unknown_fields)] pub enum ConsistencyBehaviorConfig { Ignore, - LogMismatch, + LogWarningOnMismatch, FailOnMismatch, SubchainOnMismatch(TransformChainConfig), } @@ -132,7 +134,9 @@ impl TransformConfig for TeeConfig { Some(ConsistencyBehaviorConfig::FailOnMismatch) => { ConsistencyBehaviorBuilder::FailOnMismatch } - Some(ConsistencyBehaviorConfig::LogMismatch) => ConsistencyBehaviorBuilder::LogMismatch, + Some(ConsistencyBehaviorConfig::LogWarningOnMismatch) => { + ConsistencyBehaviorBuilder::LogWarningOnMismatch + } Some(ConsistencyBehaviorConfig::SubchainOnMismatch(mismatch_chain)) => { ConsistencyBehaviorBuilder::SubchainOnMismatch( mismatch_chain @@ -203,7 +207,7 @@ impl Transform for Tee { Ok(chain_response) } - ConsistencyBehavior::LogMismatch => { + ConsistencyBehavior::LogWarningOnMismatch => { let (tee_result, chain_result) = tokio::join!( self.tx .process_request(requests_wrapper.clone(), self.timeout_micros),