Skip to content

Commit 35bad68

Browse files
committed
fix: make runner config props optional in api (#3063)
1 parent a6f9cc0 commit 35bad68

File tree

5 files changed

+61
-11
lines changed

5 files changed

+61
-11
lines changed

out/openapi.json

Lines changed: 13 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
pub mod list;
2+
pub mod runner_configs;
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
use std::collections::HashMap;
2+
3+
use gas::prelude::*;
4+
use utoipa::ToSchema;
5+
6+
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
7+
#[serde(rename_all = "snake_case")]
8+
pub enum RunnerConfig {
9+
Serverless {
10+
url: String,
11+
headers: Option<HashMap<String, String>>,
12+
/// Seconds.
13+
request_lifespan: u32,
14+
slots_per_runner: u32,
15+
min_runners: Option<u32>,
16+
max_runners: u32,
17+
runners_margin: Option<u32>,
18+
},
19+
}
20+
21+
impl Into<rivet_types::runner_configs::RunnerConfig> for RunnerConfig {
22+
fn into(self) -> rivet_types::runner_configs::RunnerConfig {
23+
match self {
24+
RunnerConfig::Serverless {
25+
url,
26+
headers,
27+
request_lifespan,
28+
slots_per_runner,
29+
min_runners,
30+
max_runners,
31+
runners_margin,
32+
} => rivet_types::runner_configs::RunnerConfig::Serverless {
33+
url,
34+
headers: headers.unwrap_or_default(),
35+
request_lifespan,
36+
slots_per_runner,
37+
min_runners: min_runners.unwrap_or_default(),
38+
max_runners,
39+
runners_margin: runners_margin.unwrap_or_default(),
40+
},
41+
}
42+
}
43+
}

packages/core/api-peer/src/runner_configs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ pub struct UpsertPath {
8787

8888
#[derive(Deserialize, Serialize)]
8989
#[serde(deny_unknown_fields)]
90-
pub struct UpsertRequest(pub rivet_types::runner_configs::RunnerConfig);
90+
pub struct UpsertRequest(pub rivet_api_types::namespaces::runner_configs::RunnerConfig);
9191

9292
#[derive(Deserialize, Serialize, ToSchema)]
9393
#[schema(as = RunnerConfigsUpsertResponse)]
@@ -109,7 +109,7 @@ pub async fn upsert(
109109
ctx.op(namespace::ops::runner_config::upsert::Input {
110110
namespace_id: namespace.namespace_id,
111111
name: path.runner_name,
112-
config: body.0,
112+
config: body.0.into(),
113113
})
114114
.await?;
115115

packages/core/api-public/src/runner_configs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ async fn list_inner(
100100
#[serde(deny_unknown_fields)]
101101
#[schema(as = RunnerConfigsUpsertRequest)]
102102
pub struct UpsertRequest(
103-
#[schema(inline)] HashMap<String, rivet_types::runner_configs::RunnerConfig>,
103+
#[schema(inline)] HashMap<String, rivet_api_types::namespaces::runner_configs::RunnerConfig>,
104104
);
105105

106106
#[utoipa::path(
@@ -151,7 +151,7 @@ async fn upsert_inner(
151151
ctx.op(namespace::ops::runner_config::upsert_default::Input {
152152
namespace_id: namespace.namespace_id,
153153
name: path.runner_name.clone(),
154-
config: default_config,
154+
config: default_config.into(),
155155
})
156156
.await?;
157157
}

0 commit comments

Comments
 (0)