diff options
author | Quentin Dufour <quentin@deuxfleurs.fr> | 2020-05-21 22:25:33 +0200 |
---|---|---|
committer | Quentin Dufour <quentin@deuxfleurs.fr> | 2020-05-21 22:25:33 +0200 |
commit | 8c43611eb5bbaeb42f19da8d8ed521df208bfada (patch) | |
tree | c207e950744f451424e139e97aaf852c2d8ff949 /src/config.rs | |
parent | 4da459ce8ba49f98084a8ce32f600470ff883ec5 (diff) | |
download | diplonat-8c43611eb5bbaeb42f19da8d8ed521df208bfada.tar.gz diplonat-8c43611eb5bbaeb42f19da8d8ed521df208bfada.zip |
Broken Diplonat
Diffstat (limited to 'src/config.rs')
-rw-r--r-- | src/config.rs | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/src/config.rs b/src/config.rs deleted file mode 100644 index c335e8d..0000000 --- a/src/config.rs +++ /dev/null @@ -1,48 +0,0 @@ -use std::env; -use anyhow::{Result, Context, anyhow}; -use log::*; - -pub struct DiplonatConfig { - pub private_ip: String, - pub consul_node_name: String, - pub consul_url: String, - pub refresh_time: u32, - pub expiration_time: u32 -} - -pub fn load_env() -> Result<DiplonatConfig> { - let epi = "DIPLONAT_PRIVATE_IP"; - let ert = "DIPLONAT_REFRESH_TIME"; - let eet = "DIPLONAT_EXPIRATION_TIME"; - let ecnd = "DIPLONAT_CONSUL_NODE_NAME"; - let ecu = "DIPLONAT_CONSUL_URL"; - - 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) - .with_context(|| format!("{} env var must be defined, eg: 192.168.0.18", epi))?, - refresh_time: env::var(ert) - .with_context(|| format!("{} env var must be defined, eg: 60", ert))? - .parse() - .with_context(|| format!("{} env var must be an integer, eg: 60", ert))?, - expiration_time: env::var(eet) - .with_context(|| format!("{} env var must be defined, eg: 300", eet))? - .parse() - .with_context(|| format!("{} env var must be an integer, eg: 300", eet))?, - consul_node_name: env::var(ecnd) - .with_context(|| format!("{} env var must be defined", ecnd))? - }; - - if config.refresh_time * 2 > config.expiration_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!("Private IP address: {}", config.private_ip); - info!("Refresh time: {} seconds", config.refresh_time); - info!("Expiration time: {} seconds", config.expiration_time); - return Ok(config); -} - - |