Add geoip config reading
This commit is contained in:
parent
d4d22ec674
commit
acf6dc1cb1
2 changed files with 25 additions and 2 deletions
|
@ -55,6 +55,13 @@ server_settings:
|
||||||
# presence of multiple IPs.
|
# presence of multiple IPs.
|
||||||
# external_ip: ~
|
# external_ip: ~
|
||||||
|
|
||||||
|
# Settings for geo IP analytics
|
||||||
|
metric_settings:
|
||||||
|
# Whether to enable geo IP analytics
|
||||||
|
# enable_geoip: false
|
||||||
|
# geoip_license_key: none
|
||||||
|
|
||||||
|
|
||||||
# These settings are unique to the Rust client, and may be ignored or behave
|
# These settings are unique to the Rust client, and may be ignored or behave
|
||||||
# differently from the official client.
|
# differently from the official client.
|
||||||
extended_options:
|
extended_options:
|
||||||
|
@ -88,4 +95,4 @@ extended_options:
|
||||||
# when the MD@H program is stopped, all cached files are irrecoverable.
|
# when the MD@H program is stopped, all cached files are irrecoverable.
|
||||||
# Practically speaking, this isn't all too useful (and definitely hurts
|
# Practically speaking, this isn't all too useful (and definitely hurts
|
||||||
# performance), but for peace of mind, this may be useful.
|
# performance), but for peace of mind, this may be useful.
|
||||||
# ephemeral_disk_encryption: false
|
# ephemeral_disk_encryption: false
|
||||||
|
|
|
@ -91,6 +91,7 @@ pub struct Config {
|
||||||
pub unstable_options: Vec<UnstableOptions>,
|
pub unstable_options: Vec<UnstableOptions>,
|
||||||
pub override_upstream: Option<Url>,
|
pub override_upstream: Option<Url>,
|
||||||
pub enable_metrics: bool,
|
pub enable_metrics: bool,
|
||||||
|
pub geoip_license_key: Option<ClientSecret>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Config {
|
impl Config {
|
||||||
|
@ -184,6 +185,13 @@ impl Config {
|
||||||
// Unstable options (and related) should never be in yaml config
|
// Unstable options (and related) should never be in yaml config
|
||||||
unstable_options: cli_args.unstable_options,
|
unstable_options: cli_args.unstable_options,
|
||||||
override_upstream: cli_args.override_upstream,
|
override_upstream: cli_args.override_upstream,
|
||||||
|
geoip_license_key: file_args.metric_settings.and_then(|args| {
|
||||||
|
if args.enable_geoip.unwrap_or_default() {
|
||||||
|
args.geoip_license_key
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
|
}),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -230,7 +238,8 @@ struct YamlArgs {
|
||||||
// Naming is legacy
|
// Naming is legacy
|
||||||
max_cache_size_in_mebibytes: Mebibytes,
|
max_cache_size_in_mebibytes: Mebibytes,
|
||||||
server_settings: YamlServerSettings,
|
server_settings: YamlServerSettings,
|
||||||
// This implementation custom options
|
metric_settings: Option<YamlMetricSettings>,
|
||||||
|
// This implementation's custom options
|
||||||
extended_options: Option<YamlExtendedOptions>,
|
extended_options: Option<YamlExtendedOptions>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -247,6 +256,12 @@ struct YamlServerSettings {
|
||||||
external_ip: Option<IpAddr>,
|
external_ip: Option<IpAddr>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Deserialize)]
|
||||||
|
struct YamlMetricSettings {
|
||||||
|
enable_geoip: Option<bool>,
|
||||||
|
geoip_license_key: Option<ClientSecret>,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Deserialize, Default)]
|
#[derive(Deserialize, Default)]
|
||||||
struct YamlExtendedOptions {
|
struct YamlExtendedOptions {
|
||||||
memory_quota: Option<Mebibytes>,
|
memory_quota: Option<Mebibytes>,
|
||||||
|
@ -393,6 +408,7 @@ mod config {
|
||||||
hostname: None,
|
hostname: None,
|
||||||
external_ip: None,
|
external_ip: None,
|
||||||
},
|
},
|
||||||
|
metric_settings: None,
|
||||||
extended_options: Some(YamlExtendedOptions {
|
extended_options: Some(YamlExtendedOptions {
|
||||||
memory_quota: Some(Mebibytes::new(50)),
|
memory_quota: Some(Mebibytes::new(50)),
|
||||||
cache_type: Some(CacheType::Lru),
|
cache_type: Some(CacheType::Lru),
|
||||||
|
|
Loading…
Reference in a new issue