Skip to content

Commit 3ac07b2

Browse files
committed
fix(spin-redis-engine): Fix error during startup
Fixes the following error: $ spin build up --follow-all <..> Successfully ran the build command for the Spin components. Error: Failed to configure Redis trigger Caused by: metadata error: missing required "redis_address" Error: exit status: 1 Refs: spinframework#763. Closes spinframework#799. Signed-off-by: Konstantin Shabanov <[email protected]>
1 parent 78765cd commit 3ac07b2

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

crates/redis/src/lib.rs

+10-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ mod spin;
44

55
use std::collections::HashMap;
66

7-
use anyhow::{Context, Result};
7+
use anyhow::Result;
88
use async_trait::async_trait;
99
use futures::StreamExt;
1010
use redis::{Client, ConnectionLike};
@@ -40,6 +40,13 @@ pub struct RedisTriggerConfig {
4040
pub executor: IgnoredAny,
4141
}
4242

43+
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
44+
#[serde(deny_unknown_fields)]
45+
struct TriggerMetadata {
46+
r#type: String,
47+
address: String,
48+
}
49+
4350
#[async_trait]
4451
impl TriggerExecutor for RedisTrigger {
4552
const TRIGGER_TYPE: &'static str = "redis";
@@ -50,8 +57,8 @@ impl TriggerExecutor for RedisTrigger {
5057
fn new(engine: TriggerAppEngine<Self>) -> Result<Self> {
5158
let address = engine
5259
.app()
53-
.require_metadata("redis_address")
54-
.context("Failed to configure Redis trigger")?;
60+
.require_metadata::<TriggerMetadata>("trigger")?
61+
.address;
5562

5663
let channel_components = engine
5764
.trigger_configs()

crates/testing/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ impl TestConfig {
100100
"trigger_config": self.http_trigger_config,
101101
},
102102
]);
103-
let metadata = from_json!({"name": "test-app", "redis_address": "test-redis-host"});
103+
let metadata = from_json!({"name": "test-app", "trigger": {"address": "test-redis-host", "type": "redis"}});
104104
let variables = Default::default();
105105
LockedApp {
106106
spin_lock_version: spin_app::locked::FixedVersion,

0 commit comments

Comments
 (0)