summaryrefslogtreecommitdiffstats
path: root/src/commands/db.rs
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@atos.net>2021-05-18 14:24:26 +0200
committerMatthias Beyer <matthias.beyer@atos.net>2021-05-18 14:24:27 +0200
commitec31fafeb0f8afea933e932c765315f210326492 (patch)
tree1620c975ea61f3c38a5a97a6fa9f03e5c312bc72 /src/commands/db.rs
parent416de5dfa882b3f71f758f2b1a3928a03d77be00 (diff)
Fix: Counting should not use helper fn
By using the helper function is_job_successfull(), we resulted in bogus output when there was no successfull and no failed job, because jobs can have an "unknown" state as well. This patch fixes this by counting properly. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
Diffstat (limited to 'src/commands/db.rs')
-rw-r--r--src/commands/db.rs19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/commands/db.rs b/src/commands/db.rs
index 7939b20..d602be0 100644
--- a/src/commands/db.rs
+++ b/src/commands/db.rs
@@ -264,9 +264,20 @@ fn submit(conn_cfg: DbConnectionConfig<'_>, matches: &ArgMatches) -> Result<()>
.with_context(|| anyhow!("Loading jobs for submit = {}", submit_id))?;
let n_jobs = jobs.len();
- let (jobs_success, jobs_err) = {
- let s = jobs.iter().map(is_job_successful).fold(Ok(0), |acc, e| acc.and_then(|a| e.map(|_| a + 1)))?;
- (s, n_jobs - s)
+ let (jobs_unknown, jobs_success, jobs_err) = {
+ let mut unkn = 0;
+ let mut succ = 0;
+ let mut err = 0;
+
+ for j in jobs.iter() {
+ match crate::log::ParsedLog::from_str(&j.log_text)?.is_successfull() {
+ None => unkn += 1,
+ Some(true) => succ += 1,
+ Some(false) => err += 1,
+ }
+ }
+
+ (unkn, succ, err)
};
let out = std::io::stdout();
@@ -277,6 +288,7 @@ fn submit(conn_cfg: DbConnectionConfig<'_>, matches: &ArgMatches) -> Result<()>
Date: {submit_dt}
Jobs: {n_jobs}
Success: {n_jobs_success}
+ Unknown: {n_jobs_unknown}
Errored: {n_jobs_err}
"#,
@@ -284,6 +296,7 @@ fn submit(conn_cfg: DbConnectionConfig<'_>, matches: &ArgMatches) -> Result<()>
submit_dt = submit.submit_time.to_string().cyan(),
n_jobs = n_jobs.to_string().cyan(),
n_jobs_success = jobs_success.to_string().green(),
+ n_jobs_unknown = jobs_unknown.to_string().red(),
n_jobs_err = jobs_err.to_string().red(),
)?;