Skip to content

Commit

Permalink
consistency cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeremy Andrews committed Jul 14, 2021
1 parent 307955b commit 9ace78a
Show file tree
Hide file tree
Showing 2 changed files with 115 additions and 110 deletions.
137 changes: 27 additions & 110 deletions src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -967,8 +967,11 @@ impl GooseDefaultType<GooseLogFormat> for GooseAttack {
/// Used internally to configure [`GooseConfiguration`] values based on precedence rules.
#[derive(Debug, Clone)]
pub(crate) struct GooseValue<'a, T> {
/// The optional value to set.
pub(crate) value: Option<T>,
/// Filter using this value if true.
pub(crate) filter: bool,
/// An optional INFO level Goose log message.
pub(crate) message: &'a str,
}

Expand Down Expand Up @@ -1249,24 +1252,22 @@ impl GooseConfiguration {
]);

// Configure `run_time`.
if let Some(run_time) = self.get_value(vec![
// Use --run-time if set.
GooseValue {
value: Some(util::parse_timespan(&self.run_time)),
filter: util::parse_timespan(&self.run_time) == 0,
message: "run_time",
},
// Otherwise use GooseDefault if set and not on Worker.
GooseValue {
value: defaults.run_time,
filter: defaults.run_time.is_none() || self.worker,
message: "run_time",
},
]) {
self.run_time = run_time.to_string();
} else {
self.run_time = 0.to_string();
}
self.run_time = self
.get_value(vec![
// Use --run-time if set.
GooseValue {
value: Some(util::parse_timespan(&self.run_time)),
filter: util::parse_timespan(&self.run_time) == 0,
message: "run_time",
},
// Otherwise use GooseDefault if set and not on Worker.
GooseValue {
value: defaults.run_time,
filter: defaults.run_time.is_none() || self.worker,
message: "run_time",
},
])
.map_or_else(|| "0".to_string(), |v| v.to_string());

// Configure `hatch_rate`.
self.hatch_rate = self
Expand Down Expand Up @@ -1559,16 +1560,20 @@ impl GooseConfiguration {
.unwrap_or(false);

// Configure `expect_workers`.
if let Some(value) = self.get_value(vec![
self.expect_workers = self.get_value(vec![
// Use --expect-workers if configured.
GooseValue {
value: self.expect_workers,
filter: self.expect_workers.is_none(),
message: "expect_workers",
},
// Use GooseDefault if not already set and not Worker.
GooseValue {
value: defaults.expect_workers,
filter: !self.expect_workers.is_some() && self.worker,
message: "expect_workers",
},
]) {
self.expect_workers = Some(value);
}
]);

// Configure `no_hash_check`.
self.no_hash_check = self
Expand All @@ -1588,94 +1593,6 @@ impl GooseConfiguration {
])
.unwrap_or(false);

// Set `request_format`.
self.request_format = self.get_value(vec![
// Use --request-format if set.
GooseValue {
value: self.request_format.clone(),
filter: self.request_format.is_none(),
message: "request_format",
},
// Otherwise use GooseDefault if set and not on Manager.
GooseValue {
value: defaults.request_format.clone(),
filter: defaults.request_format.is_none() || self.manager,
message: "request_format",
},
// Otherwise default to GooseLogFormat::Json if not on Manager.
GooseValue {
value: Some(GooseLogFormat::Json),
filter: self.manager,
message: "",
},
]);

// Set `task_format`.
self.task_format = self.get_value(vec![
// Use --task-format if set.
GooseValue {
value: self.task_format.clone(),
filter: self.task_format.is_none(),
message: "task_format",
},
// Otherwise use GooseDefault if set and not on Manager.
GooseValue {
value: defaults.task_format.clone(),
filter: defaults.task_format.is_none() || self.manager,
message: "task_format",
},
// Otherwise default to GooseLogFormat::Json if not on Manager.
GooseValue {
value: Some(GooseLogFormat::Json),
filter: self.manager,
message: "",
},
]);

// Set `error_format`.
self.error_format = self.get_value(vec![
// Use --error-format if set.
GooseValue {
value: self.error_format.clone(),
filter: self.error_format.is_none(),
message: "error_format",
},
// Otherwise use GooseDefault if set and not on Manager.
GooseValue {
value: defaults.error_format.clone(),
filter: defaults.error_format.is_none() || self.manager,
message: "error_format",
},
// Otherwise default to GooseLogFormat::Json if not on Manager.
GooseValue {
value: Some(GooseLogFormat::Json),
filter: self.manager,
message: "",
},
]);

// Set `debug_format`.
self.debug_format = self.get_value(vec![
// Use --debug-format if set.
GooseValue {
value: self.debug_format.clone(),
filter: self.debug_format.is_none(),
message: "debug_format",
},
// Otherwise use GooseDefault if set and not on Manager.
GooseValue {
value: defaults.debug_format.clone(),
filter: defaults.debug_format.is_none() || self.manager,
message: "debug_format",
},
// Otherwise default to GooseLogFormat::Json if not on Manager.
GooseValue {
value: Some(GooseLogFormat::Json),
filter: self.manager,
message: "",
},
]);

// Set `manager_bind_host` on Manager.
self.manager_bind_host = self
.get_value(vec![
Expand Down
88 changes: 88 additions & 0 deletions src/logger.rs
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,28 @@ impl GooseConfiguration {
])
.unwrap_or_else(|| "".to_string());

// Set `debug_format`.
self.debug_format = self.get_value(vec![
// Use --debug-format if set.
GooseValue {
value: self.debug_format.clone(),
filter: self.debug_format.is_none(),
message: "",
},
// Otherwise use GooseDefault if set and not on Manager.
GooseValue {
value: defaults.debug_format.clone(),
filter: defaults.debug_format.is_none() || self.manager,
message: "",
},
// Otherwise default to GooseLogFormat::Json if not on Manager.
GooseValue {
value: Some(GooseLogFormat::Json),
filter: self.manager,
message: "",
},
]);

// Configure error_log path if enabled.
self.error_log = self
.get_value(vec![
Expand All @@ -445,6 +467,28 @@ impl GooseConfiguration {
])
.unwrap_or_else(|| "".to_string());

// Set `error_format`.
self.error_format = self.get_value(vec![
// Use --error-format if set.
GooseValue {
value: self.error_format.clone(),
filter: self.error_format.is_none(),
message: "",
},
// Otherwise use GooseDefault if set and not on Manager.
GooseValue {
value: defaults.error_format.clone(),
filter: defaults.error_format.is_none() || self.manager,
message: "",
},
// Otherwise default to GooseLogFormat::Json if not on Manager.
GooseValue {
value: Some(GooseLogFormat::Json),
filter: self.manager,
message: "",
},
]);

// Configure request_log path if enabled.
self.request_log = self
.get_value(vec![
Expand All @@ -463,6 +507,28 @@ impl GooseConfiguration {
])
.unwrap_or_else(|| "".to_string());

// Set `request_format`.
self.request_format = self.get_value(vec![
// Use --request-format if set.
GooseValue {
value: self.request_format.clone(),
filter: self.request_format.is_none(),
message: "",
},
// Otherwise use GooseDefault if set and not on Manager.
GooseValue {
value: defaults.request_format.clone(),
filter: defaults.request_format.is_none() || self.manager,
message: "",
},
// Otherwise default to GooseLogFormat::Json if not on Manager.
GooseValue {
value: Some(GooseLogFormat::Json),
filter: self.manager,
message: "",
},
]);

// Configure task_log path if enabled.
self.task_log = self
.get_value(vec![
Expand All @@ -480,6 +546,28 @@ impl GooseConfiguration {
},
])
.unwrap_or_else(|| "".to_string());

// Set `task_format`.
self.task_format = self.get_value(vec![
// Use --task-format if set.
GooseValue {
value: self.task_format.clone(),
filter: self.task_format.is_none(),
message: "",
},
// Otherwise use GooseDefault if set and not on Manager.
GooseValue {
value: defaults.task_format.clone(),
filter: defaults.task_format.is_none() || self.manager,
message: "",
},
// Otherwise default to GooseLogFormat::Json if not on Manager.
GooseValue {
value: Some(GooseLogFormat::Json),
filter: self.manager,
message: "",
},
]);
}

/// Spawns the logger thread if one or more loggers are enabled.
Expand Down

0 comments on commit 9ace78a

Please sign in to comment.