feat: Make application async

This commit is contained in:
2026-10-04 05:53:13 +02:00
parent 406fa6259b
commit 992615c116
9 changed files with 290 additions and 133 deletions
+6 -6
View File
@@ -1,10 +1,10 @@
use std::net::Ipv4Addr;
use std::process::Command;
use minijinja::Environment;
use optional_struct::{Applicable, optional_struct};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use tokio::process::Command;
use crate::cluster::{Base, Cluster};
use crate::patch::{OptionalPatches, OptionalPatchesString, Patches};
@@ -90,7 +90,7 @@ pub(crate) struct NodeDeserialize {
sops: Secret,
}
#[derive(Debug, Serialize)]
#[derive(Debug, Serialize, Clone)]
#[serde(rename_all = "camelCase")]
pub struct Node {
hostname: String,
@@ -106,9 +106,9 @@ pub struct Node {
}
impl Node {
pub(crate) fn get(
pub(crate) async fn get(
node_name: &str,
env: &Environment,
env: &Environment<'static>,
cluster: &Cluster,
default: &OptionalNodeDeserialize,
base: &Base,
@@ -121,7 +121,7 @@ impl Node {
.to_string();
path.add_extension("yaml");
let content = std::fs::read_to_string(path).unwrap();
let content = tokio::fs::read_to_string(path).await.unwrap();
let node: OptionalNodeDeserialize = serde_yaml::from_str(&content).unwrap();
@@ -172,7 +172,7 @@ impl Node {
};
// Render patches
let patches = patches.render(env, cluster, &node);
let patches = patches.render(env, cluster, &node).await;
Node { patches, ..node }
}