diff options
Diffstat (limited to 'crates/configuration/src')
-rw-r--r-- | crates/configuration/src/state.rs | 4 | ||||
-rw-r--r-- | crates/configuration/src/state/routing/mutate_routing.rs | 20 | ||||
-rw-r--r-- | crates/configuration/src/state/rule/mutate_rule.rs | 22 |
3 files changed, 39 insertions, 7 deletions
diff --git a/crates/configuration/src/state.rs b/crates/configuration/src/state.rs index d8f22d5..f337a54 100644 --- a/crates/configuration/src/state.rs +++ b/crates/configuration/src/state.rs @@ -4,6 +4,7 @@ mod rule; use async_nats::jetstream::Context; use opentelemetry_semantic_conventions::attribute; +use prost::Message; use sqlx::PgPool; use std::{ops::Deref, sync::Arc}; use tracing::{Instrument, info_span, instrument, trace}; @@ -91,10 +92,11 @@ pub async fn publish_reload( span.set_attribute(attribute::MESSAGING_SYSTEM, "nats"); span.set_attribute("otel.kind", "producer"); + let bytes = event.encode_to_vec(); state .services .jetstream - .publish(format!("{prefix}.reload"), event.as_str_name().into()) + .publish(format!("{prefix}.reload"), bytes.into()) .instrument(span) .await .map_err(|e| tonic::Status::internal(e.to_string()))?; diff --git a/crates/configuration/src/state/routing/mutate_routing.rs b/crates/configuration/src/state/routing/mutate_routing.rs index 105cf18..9542ba7 100644 --- a/crates/configuration/src/state/routing/mutate_routing.rs +++ b/crates/configuration/src/state/routing/mutate_routing.rs @@ -4,7 +4,7 @@ use tracing::{Instrument, error, info_span, instrument, trace}; use tracing_opentelemetry::OpenTelemetrySpanExt; use uuid::Uuid; use warden_core::configuration::{ - ReloadEvent, + ConfigKind, ReloadEvent, routing::{ DeleteConfigurationRequest, RoutingConfiguration, UpdateRoutingRequest, mutate_routing_server::MutateRouting, @@ -100,7 +100,14 @@ impl MutateRouting for AppHandle { let (_del_result, _publish_result) = tokio::try_join!( invalidate_cache(self, CacheKey::Routing(&id)), - publish_reload(self, conf, ReloadEvent::Routing) + publish_reload( + self, + conf, + ReloadEvent { + kind: ConfigKind::Routing.into(), + ..Default::default() + } + ) )?; let res = updated.configuration.0; @@ -151,7 +158,14 @@ impl MutateRouting for AppHandle { let (_del_result, _publish_result) = tokio::try_join!( invalidate_cache(self, CacheKey::Routing(&id)), - publish_reload(self, conf, ReloadEvent::Routing) + publish_reload( + self, + conf, + ReloadEvent { + kind: ConfigKind::Routing.into(), + ..Default::default() + } + ) )?; let res = updated.configuration.0; diff --git a/crates/configuration/src/state/rule/mutate_rule.rs b/crates/configuration/src/state/rule/mutate_rule.rs index 7b853aa..9c4f393 100644 --- a/crates/configuration/src/state/rule/mutate_rule.rs +++ b/crates/configuration/src/state/rule/mutate_rule.rs @@ -4,7 +4,7 @@ use tracing::{Instrument, error, info_span}; use tracing_opentelemetry::OpenTelemetrySpanExt; use uuid::Uuid; use warden_core::configuration::{ - ReloadEvent, + ConfigKind, ReloadEvent, rule::{ DeleteRuleConfigurationRequest, RuleConfiguration, UpdateRuleRequest, mutate_rule_configuration_server::MutateRuleConfiguration, @@ -92,7 +92,15 @@ impl MutateRuleConfiguration for AppHandle { version: &config.version, } ), - publish_reload(self, conf, ReloadEvent::Rule) + publish_reload( + self, + conf, + ReloadEvent { + kind: ConfigKind::Rule.into(), + id: Some(config.id.to_owned()), + version: Some(config.version.to_owned()), + } + ) )?; Ok(Response::new(config)) @@ -144,7 +152,15 @@ impl MutateRuleConfiguration for AppHandle { version: &request.version, } ), - publish_reload(self, conf, ReloadEvent::Rule) + publish_reload( + self, + conf, + ReloadEvent { + kind: ConfigKind::Rule.into(), + id: Some(request.id.to_owned()), + version: Some(request.version.to_owned()), + } + ) )?; let res = updated.configuration.0; |