Consul URL is now a parameter

This commit is contained in:
Quentin 2020-05-09 16:40:10 +02:00
parent 154546a7b4
commit 79102ba463

View file

@ -1,10 +1,11 @@
use std::env; use std::env;
use anyhow::{Result, Context, anyhow}; use anyhow::{Result, Context, Error, anyhow};
use log::*; use log::*;
pub struct DiplonatConfig { pub struct DiplonatConfig {
pub private_ip: String, pub private_ip: String,
pub consul_node_name: String, pub consul_node_name: String,
pub consul_url: String,
pub refresh_time: u32, pub refresh_time: u32,
pub expiration_time: u32 pub expiration_time: u32
} }
@ -14,8 +15,10 @@ pub fn load_env() -> Result<DiplonatConfig> {
let ert = "DIPLONAT_REFRESH_TIME"; let ert = "DIPLONAT_REFRESH_TIME";
let eet = "DIPLONAT_EXPIRATION_TIME"; let eet = "DIPLONAT_EXPIRATION_TIME";
let ecnd = "DIPLONAT_CONSUL_NODE_NAME"; let ecnd = "DIPLONAT_CONSUL_NODE_NAME";
let ecu = "DIPLONAT_CONSUL_URL";
let config = DiplonatConfig { let config = DiplonatConfig {
consul_url: match env::var(ecu) { Ok(e) => e, Err(_) => "http://127.0.0.1:8500".to_string() },
private_ip: env::var(epi) private_ip: env::var(epi)
.with_context(|| format!("{} env var must be defined, eg: 192.168.0.18", epi))?, .with_context(|| format!("{} env var must be defined, eg: 192.168.0.18", epi))?,
refresh_time: env::var(ert) refresh_time: env::var(ert)
@ -34,6 +37,7 @@ pub fn load_env() -> Result<DiplonatConfig> {
return Err(anyhow!("Expiration time (currently: {}s) must be twice bigger than refresh time (currently: {}s)", config.expiration_time, config.refresh_time)) return Err(anyhow!("Expiration time (currently: {}s) must be twice bigger than refresh time (currently: {}s)", config.expiration_time, config.refresh_time))
} }
info!("Consul URL: {}", config.consul_url);
info!("Consul node name: {}", config.consul_node_name); info!("Consul node name: {}", config.consul_node_name);
info!("Private IP address: {}", config.private_ip); info!("Private IP address: {}", config.private_ip);
info!("Refresh time: {} seconds", config.refresh_time); info!("Refresh time: {} seconds", config.refresh_time);