diff --git a/crates/redis/src/lib.rs b/crates/redis/src/lib.rs index 23f58a3bf4..5cc54226b8 100644 --- a/crates/redis/src/lib.rs +++ b/crates/redis/src/lib.rs @@ -4,7 +4,7 @@ mod spin; use std::collections::HashMap; -use anyhow::{Context, Result}; +use anyhow::Result; use async_trait::async_trait; use futures::StreamExt; use redis::{Client, ConnectionLike}; @@ -40,6 +40,13 @@ pub struct RedisTriggerConfig { pub executor: IgnoredAny, } +#[derive(Clone, Debug, Default, Deserialize, Serialize)] +#[serde(deny_unknown_fields)] +struct TriggerMetadata { + r#type: String, + address: String, +} + #[async_trait] impl TriggerExecutor for RedisTrigger { const TRIGGER_TYPE: &'static str = "redis"; @@ -50,8 +57,8 @@ impl TriggerExecutor for RedisTrigger { fn new(engine: TriggerAppEngine) -> Result { let address = engine .app() - .require_metadata("redis_address") - .context("Failed to configure Redis trigger")?; + .require_metadata::("trigger")? + .address; let channel_components = engine .trigger_configs() diff --git a/crates/testing/src/lib.rs b/crates/testing/src/lib.rs index a040c34456..b55d06c5f4 100644 --- a/crates/testing/src/lib.rs +++ b/crates/testing/src/lib.rs @@ -100,7 +100,7 @@ impl TestConfig { "trigger_config": self.http_trigger_config, }, ]); - let metadata = from_json!({"name": "test-app", "redis_address": "test-redis-host"}); + let metadata = from_json!({"name": "test-app", "trigger": {"address": "test-redis-host", "type": "redis"}}); let variables = Default::default(); LockedApp { spin_lock_version: spin_app::locked::FixedVersion,