From 9ea1f1a8321341ebf00fd0a336eb5c25737e7373 Mon Sep 17 00:00:00 2001 From: Erin Power Date: Wed, 18 Sep 2024 14:06:06 +0200 Subject: [PATCH] Add HashedTokenRouter back as alias for TokenRouter --- src/filters.rs | 2 +- src/filters/set.rs | 1 + src/filters/token_router.rs | 21 +++++++++++++++++++++ src/xds.rs | 3 --- 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/filters.rs b/src/filters.rs index 938ade78bb..0efa40e343 100644 --- a/src/filters.rs +++ b/src/filters.rs @@ -66,7 +66,7 @@ pub use self::{ registry::FilterRegistry, set::{FilterMap, FilterSet}, timestamp::Timestamp, - token_router::TokenRouter, + token_router::{HashedTokenRouter, TokenRouter}, write::WriteContext, }; diff --git a/src/filters/set.rs b/src/filters/set.rs index cf88ab9d85..fbcb715777 100644 --- a/src/filters/set.rs +++ b/src/filters/set.rs @@ -51,6 +51,7 @@ impl FilterSet { filters::Debug::factory(), filters::Drop::factory(), filters::Firewall::factory(), + filters::HashedTokenRouter::factory(), filters::LoadBalancer::factory(), filters::LocalRateLimit::factory(), filters::Match::factory(), diff --git a/src/filters/token_router.rs b/src/filters/token_router.rs index 9304a2f74b..b9dee65d01 100644 --- a/src/filters/token_router.rs +++ b/src/filters/token_router.rs @@ -75,6 +75,27 @@ impl Filter for TokenRouter { } } +pub struct HashedTokenRouter(TokenRouter); + +impl StaticFilter for HashedTokenRouter { + const NAME: &'static str = "quilkin.filters.token_router.v1alpha1.HashedTokenRouter"; + type Configuration = Config; + type BinaryConfiguration = proto::TokenRouter; + + fn try_from_config(config: Option) -> Result { + Ok(Self(TokenRouter { + config: config.unwrap_or_default(), + })) + } +} + +#[async_trait::async_trait] +impl Filter for HashedTokenRouter { + async fn read(&self, ctx: &mut ReadContext) -> Result<(), FilterError> { + self.0.sync_read(ctx) + } +} + pub enum RouterError { NoTokenFound, NoEndpointMatch { token: bytes::Bytes }, diff --git a/src/xds.rs b/src/xds.rs index 05c93a3366..dff0c17b2e 100644 --- a/src/xds.rs +++ b/src/xds.rs @@ -78,8 +78,6 @@ impl Resource { } }; - let len = config.value.len(); - let json_value = match crate::filters::FilterRegistry::get_factory(&filter.name) .ok_or_else(|| { crate::filters::CreationError::NotFound(filter.name.clone()) @@ -88,7 +86,6 @@ impl Resource { { Ok(jv) => jv, Err(err) => { - tracing::error!("wtf {} {len} {err:#}", filter.name); return Err(err.into()); } };