feat: add discovery
All checks were successful
continuous-integration/drone/push Build is passing

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
2024-11-24 17:12:15 +01:00
parent c4434fd841
commit ee323e99e8
20 changed files with 1482 additions and 117 deletions

View File

@@ -1,5 +1,9 @@
use std::{ops::Deref, sync::Arc};
use crate::api::Discovery;
use super::{config::AgentConfig, discovery_client::DiscoveryClient, grpc_client::GrpcClient};
#[derive(Clone)]
pub struct AgentState(Arc<State>);
@@ -23,10 +27,24 @@ impl Deref for AgentState {
}
}
pub struct State {}
pub struct State {
pub grpc: GrpcClient,
pub config: AgentConfig,
pub discovery: Discovery,
}
impl State {
pub async fn new() -> anyhow::Result<Self> {
Ok(Self {})
let config = AgentConfig::new().await?;
let discovery = DiscoveryClient::new(&config.discovery);
let discovery = discovery.discover().await?;
let grpc = GrpcClient::new(&discovery.process_host);
Ok(Self {
grpc,
config,
discovery,
})
}
}