From 3f8fb4a01f5cc0412637c7126a1717833b4ccd7d Mon Sep 17 00:00:00 2001 From: Tamipes Date: Mon, 8 Jun 2026 01:00:37 +0200 Subject: [PATCH] fix: `docker-image` would not build due to syntax mistake --- docker.nix | 14 ++++++++------ src/kube_cache.rs | 8 +------- src/main.rs | 31 +++++++++++++++++++------------ 3 files changed, 28 insertions(+), 25 deletions(-) diff --git a/docker.nix b/docker.nix index 1a9d13c..3b1d442 100644 --- a/docker.nix +++ b/docker.nix @@ -5,11 +5,13 @@ dockerTools.buildLayeredImage { contents = [ my-crate ]; - config.Entrypoint = [ ("/bin/" + my-crate.pname) ]; - Labels = { - "org.opencontainers.image.title" = "Minecraft Ingress"; - "org.opencontainers.image.source" = "https://git.tami.moe/tamipes/mc-ingress"; - "org.opencontainers.image.vendor" = "Tamipes"; - "org.opencontainers.image.version" = my-crate.version; + config = { + Entrypoint = [ ("/bin/" + my-crate.pname) ]; + Labels = { + "org.opencontainers.image.title" = "Minecraft Ingress"; + "org.opencontainers.image.source" = "https://git.tami.moe/tamipes/mc-ingress"; + "org.opencontainers.image.vendor" = "Tamipes"; + "org.opencontainers.image.version" = my-crate.version; + }; }; } diff --git a/src/kube_cache.rs b/src/kube_cache.rs index 9a762ea..b48ef26 100644 --- a/src/kube_cache.rs +++ b/src/kube_cache.rs @@ -80,9 +80,6 @@ impl KubeCache { async fn get_srv(&self, name: &str) -> Result { self.srv_api.get(name).await } - async fn list_deploys(&self) -> Vec> { - self.dep_cache.state() - } async fn list_srvs(&self) -> ObjectList { // let lp: ListParams = ListParams::default(); let lp: ListParams = ListParams::default().labels(MAIN_LABEL); @@ -90,10 +87,7 @@ impl KubeCache { } pub async fn query_dep(&self, addr: &str, port: &str) -> Option> { - let deploys = self.list_deploys().await; - deploys - .into_iter() - .find(|x| filter_label_value(x.as_ref(), addr, port)) + self.dep_cache.find(|x| filter_label_value(x, addr, port)) } pub async fn query_srv(&self, addr: &str, port: &str) -> Option { diff --git a/src/main.rs b/src/main.rs index 87bcb9e..6e7f9bc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -101,10 +101,10 @@ async fn main() { tokio::select! { result = api_task => { - tracing::error!("The api tokio:spawn'ed task run to completion, which should not happen!"); + tracing::error!("The api tokio:spawn'ed task ran to completion, which should not happen!"); } result = conn_task => { - tracing::error!("The connection handling tokio:spawn'ed task run to completion, which should not happen!"); + tracing::error!("The connection handling tokio:spawn'ed task ran to completion, which should not happen!"); } } } @@ -171,8 +171,8 @@ where let span = tracing::span!( tracing::Level::INFO, "login_username_extract", - server_addr = handshake.get_server_address(), - server_port = handshake.server_port.get_value() + join_addr = handshake.get_server_address(), + join_port = handshake.server_port.get_value() ); let packet = Packet::parse(&mut client_stream) @@ -195,7 +195,7 @@ where Ok(()) } -#[tracing::instrument(level = "info", fields(server_addr = handshake.get_server_address(),server_port = handshake.server_port.get_value()),skip(client_stream, handshake, api))] +#[tracing::instrument(level = "info", fields(join_addr = handshake.get_server_address(),join_port = handshake.server_port.get_value()),skip(client_stream, handshake, api))] async fn handle_status( client_stream: &mut TcpStream, handshake: &Handshake, @@ -212,7 +212,7 @@ where ))); }; - let server_addr = handshake.get_server_address(); + let join_addr = handshake.get_server_address(); let mut status_struct = StatusStructNew::create(); status_struct.version.protocol = handshake.protocol_version.get_int(); @@ -229,7 +229,7 @@ where status_struct.players.max = 0; status_struct.players.online = 0; status_struct.description.text = format!( - "Could not find §kserver§r: §f§o{server_addr}§r\nMinecraft Ingress - {BYE_MESSAGE}" + "Could not find §kserver§r: §f§o{join_addr}§r\nMinecraft Ingress - {BYE_MESSAGE}" ); mc_server::complete_status_request(client_stream, status_struct) @@ -289,7 +289,7 @@ where return mc_server::handle_ping(client_stream).await; } -#[tracing::instrument(level = "info", fields(server_addr = handshake.get_server_address(),server_port = handshake.server_port.get_value(),username = login_start.name.get_value()),skip(client_stream, handshake, api, login_start))] +#[tracing::instrument(level = "info", fields(join_addr = handshake.get_server_address(),join_port = handshake.server_port.get_value(),username = login_start.name.get_value()),skip(client_stream, handshake, api, login_start))] async fn handle_login( client_stream: &mut TcpStream, handshake: &Handshake, @@ -304,13 +304,16 @@ where &handshake.get_server_address(), &handshake.server_port.get_value().to_string(), ) - .await - .map_err(|e| e.set_level(tracing::Level::WARN))?; + .await; - let status = server.query_status().await?; + let status = match server.as_ref() { + Ok(x) => x.query_status().await?, + Err(e) => ServerDeploymentStatus::Unavailable(e.get_kind().to_string()), + }; tracing::debug!(msg = "server status", status = ?status); match status { ServerDeploymentStatus::Connectable(mut server_stream) => { + let server = server?; api.start_watch(server.clone(), OFFLINE_TIMER).await?; // referenced from: @@ -357,14 +360,18 @@ where } } ServerDeploymentStatus::PodOk | ServerDeploymentStatus::Starting => { + tracing::info!(?status, "server is starting... disconnecting client"); mc_server::send_disconnect(client_stream, format!("[\"\",{{\"text\":\"The server is still starting up...\n wait a bit more please ^^\n\n\"}},{{\"text\":\"{BYE_MESSAGE}\"}}]").as_str()).await?; } ServerDeploymentStatus::Offline => { + let server = server?; server.start().await?; api.start_watch(server.clone(), OFFLINE_TIMER).await?; mc_server::send_disconnect(client_stream, format!("[\"\",{{\"text\":\"Okayy, §2starting§r the server!\n\n\"}},{{\"text\":\"{BYE_MESSAGE}\"}}]").as_str()).await?; } - ServerDeploymentStatus::Unavailable(_) => unreachable!(), + ServerDeploymentStatus::Unavailable(_) => { + tracing::info!(?status, "tried connecting, droppping connection"); + } } Ok(()) }