aboutsummaryrefslogtreecommitdiff
path: root/src/consul_actor.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/consul_actor.rs')
-rw-r--r--src/consul_actor.rs22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/consul_actor.rs b/src/consul_actor.rs
index ba5d704..dcbd79e 100644
--- a/src/consul_actor.rs
+++ b/src/consul_actor.rs
@@ -1,14 +1,17 @@
use std::cmp;
+use std::collections::HashSet;
use std::time::Duration;
-use log::*;
-use tokio::sync::watch;
-use tokio::time::delay_for;
+
use anyhow::Result;
+use log::*;
use serde::{Serialize, Deserialize};
use serde_lexpr::{from_str,error};
-use crate::messages;
+use tokio::sync::watch;
+use tokio::time::delay_for;
+
+use crate::config::RuntimeConfigConsul;
use crate::consul;
-use std::collections::HashSet;
+use crate::messages;
#[derive(Serialize, Deserialize, Debug)]
pub enum DiplonatParameter {
@@ -27,6 +30,7 @@ pub struct ConsulActor {
consul: consul::Consul,
node: String,
retries: u32,
+
tx_open_ports: watch::Sender<messages::PublicExposedPorts>
}
@@ -72,18 +76,18 @@ fn to_open_ports(params: &Vec<DiplonatConsul>) -> messages::PublicExposedPorts {
}
impl ConsulActor {
- pub fn new(url: &str, node: &str) -> Self {
+ pub fn new(config: RuntimeConfigConsul) -> Self {
let (tx, rx) = watch::channel(messages::PublicExposedPorts{
tcp_ports: HashSet::new(),
udp_ports: HashSet::new()
});
return Self {
- consul: consul::Consul::new(url),
+ consul: consul::Consul::new(&config.url),
+ node: config.node_name,
+ retries: 0,
rx_open_ports: rx,
tx_open_ports: tx,
- node: node.to_string(),
- retries: 0,
};
}