mirror of
https://github.com/sadoyan/aralez.git
synced 2026-04-29 22:38:36 +08:00
COnfig parameters update
This commit is contained in:
@@ -70,6 +70,7 @@ pub async fn start(fp: String, mut toreturn: Sender<Configuration>) {
|
||||
headers: Default::default(),
|
||||
consul: None,
|
||||
typecfg: "".to_string(),
|
||||
extraparams: config.extraparams.clone(),
|
||||
globals: Default::default(),
|
||||
};
|
||||
|
||||
@@ -94,62 +95,6 @@ pub async fn start(fp: String, mut toreturn: Sender<Configuration>) {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
async fn http_request(url: String, whitelist: Option<Vec<String>>) -> Option<UpstreamsDashMap> {
|
||||
let client = reqwest::Client::new();
|
||||
let to = Duration::from_secs(1);
|
||||
let upstreams = UpstreamsDashMap::new();
|
||||
let excludes = vec!["consul", "nomad", "nomad-client"];
|
||||
let ss = url.clone() + "/v1/catalog/service";
|
||||
let response = client.get(ss.clone() + "s").timeout(to).send().await;
|
||||
match response {
|
||||
Ok(r) => {
|
||||
let json = r.json::<HashMap<String, Vec<String>>>().await;
|
||||
match json {
|
||||
Ok(_j) => {
|
||||
for (k, _v) in _j {
|
||||
match whitelist.clone() {
|
||||
Some(whitelist) => {
|
||||
if whitelist.iter().any(|i| *i == k) {
|
||||
let mut pref: String = ss.clone() + "/";
|
||||
pref.push_str(&k);
|
||||
let list = get_by_http(pref).await;
|
||||
match list {
|
||||
Some(list) => {
|
||||
upstreams.insert(k.to_string(), list);
|
||||
}
|
||||
None => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
None => {
|
||||
if !excludes.iter().any(|&i| i == k) {
|
||||
let mut pref: String = ss.clone() + "/";
|
||||
pref.push_str(&k);
|
||||
let list = get_by_http(pref).await;
|
||||
match list {
|
||||
Some(list) => {
|
||||
upstreams.insert(k.to_string(), list);
|
||||
}
|
||||
None => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// print_upstreams(&upstreams);
|
||||
Some(upstreams)
|
||||
}
|
||||
Err(_) => None,
|
||||
}
|
||||
}
|
||||
Err(e) => {
|
||||
println!("Error: {:?}", e);
|
||||
None
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
async fn consul_request(url: String, whitelist: Option<Vec<ServiceMapping>>, token: Option<String>) -> Option<UpstreamsDashMap> {
|
||||
let upstreams = UpstreamsDashMap::new();
|
||||
let ss = url.clone() + "/v1/catalog/service/";
|
||||
|
||||
@@ -22,7 +22,6 @@ pub async fn start(fp: String, mut toreturn: Sender<Configuration>) {
|
||||
}
|
||||
None => {}
|
||||
}
|
||||
|
||||
let _watcher_handle = task::spawn_blocking({
|
||||
let parent_dir = parent_dir.to_path_buf(); // Move directory path into the closure
|
||||
move || {
|
||||
|
||||
@@ -13,6 +13,11 @@ pub struct ServiceMapping {
|
||||
pub real: String,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub struct Extraparams {
|
||||
pub stickysessions: bool,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub struct Consul {
|
||||
pub servers: Option<Vec<String>>,
|
||||
@@ -22,6 +27,7 @@ pub struct Consul {
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
struct Config {
|
||||
provider: String,
|
||||
stickysessions: bool,
|
||||
upstreams: Option<HashMap<String, HostConfig>>,
|
||||
globals: Option<HashMap<String, Vec<String>>>,
|
||||
consul: Option<Consul>,
|
||||
@@ -43,6 +49,7 @@ pub struct Configuration {
|
||||
pub headers: Headers,
|
||||
pub consul: Option<Consul>,
|
||||
pub typecfg: String,
|
||||
pub extraparams: Extraparams,
|
||||
pub globals: Option<DashMap<String, Vec<String>>>,
|
||||
}
|
||||
|
||||
@@ -53,6 +60,7 @@ pub fn load_configuration(d: &str, kind: &str) -> Option<Configuration> {
|
||||
headers: Default::default(),
|
||||
consul: None,
|
||||
typecfg: "".to_string(),
|
||||
extraparams: Extraparams { stickysessions: false },
|
||||
globals: Default::default(),
|
||||
};
|
||||
toreturn.upstreams = UpstreamsDashMap::new();
|
||||
@@ -97,7 +105,7 @@ pub fn load_configuration(d: &str, kind: &str) -> Option<Configuration> {
|
||||
}
|
||||
global_headers.insert("/".to_string(), hl);
|
||||
toreturn.headers.insert("GLOBAL_HEADERS".to_string(), global_headers);
|
||||
|
||||
toreturn.extraparams.stickysessions = parsed.stickysessions;
|
||||
let cfg = DashMap::new();
|
||||
if let Some(k) = globals.get("authorization") {
|
||||
cfg.insert("authorization".to_string(), k.to_owned());
|
||||
@@ -166,7 +174,6 @@ pub fn load_configuration(d: &str, kind: &str) -> Option<Configuration> {
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
pub struct AppConfig {
|
||||
pub sticky_sessions: bool,
|
||||
pub hc_interval: u16,
|
||||
pub hc_method: String,
|
||||
pub upstreams_conf: String,
|
||||
|
||||
Reference in New Issue
Block a user