diff --git a/src/kube_cache.rs b/src/kube_cache.rs index 7219a7e..ae54ce8 100644 --- a/src/kube_cache.rs +++ b/src/kube_cache.rs @@ -131,6 +131,7 @@ impl MinecraftAPI for McApi { dep: deployment, srv: service, server_addr: addr.to_string(), + server_port: port.to_string(), cache: self.cache.clone(), }); } @@ -158,7 +159,16 @@ impl MinecraftAPI for McApi { tracing::info!("starting watcher"); loop { tokio::time::sleep(frequency).await; - let server = api.query_server(&addr, &port).await.unwrap(); + let server = match api.query_server(&addr, &port).await { + Ok(x) => x, + Err(e) => { + tracing::error!( + err = format!("{}", e.context), + "could not query server" + ); + return; + } + }; let status_json = match server.query_description().await { Ok(x) => x, Err(e) => { @@ -214,6 +224,7 @@ pub struct Server { dep: Deployment, srv: Service, server_addr: String, + server_port: String, cache: KubeCache, } impl fmt::Debug for Server { @@ -301,7 +312,7 @@ impl MinecraftServerHandle for Server { } fn get_internal_address(&self) -> Option { - Some(format!("localhost:{}", self.get_port()?)) + Some(format!("localhost:{}", self.get_internal_port()?)) } fn get_addr(&self) -> Option { @@ -350,11 +361,14 @@ impl MinecraftServerHandle for Server { } } - fn get_port(&self) -> Option { + fn get_internal_port(&self) -> Option { let a = self.srv.clone().spec.unwrap().ports.unwrap(); let port = a.iter().find(|x| x.name.clone().unwrap() == "mc-router")?; port.node_port.map(|x| x.to_string()) } + fn get_port(&self) -> Option { + Some(self.server_port.clone()) + } fn get_motd(&self) -> Option { let all_container_motds = self diff --git a/src/mc_server.rs b/src/mc_server.rs index 2756a7c..6951954 100644 --- a/src/mc_server.rs +++ b/src/mc_server.rs @@ -67,6 +67,7 @@ pub trait MinecraftServerHandle: Clone { async fn stop(&self) -> Result<(), OpaqueError>; async fn query_status(&self) -> Result; fn get_internal_address(&self) -> Option; + fn get_internal_port(&self) -> Option; fn get_addr(&self) -> Option; fn get_port(&self) -> Option; fn get_motd(&self) -> Option;