summaryrefslogtreecommitdiffstats
path: root/src/commands/db.rs
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@atos.net>2021-01-19 13:24:20 +0100
committerMatthias Beyer <mail@beyermatthias.de>2021-01-19 15:51:08 +0100
commit3388d715d2089bc967f4a4fcb49a6eb395d203a1 (patch)
treec1bb0d16c1f84c07e6990eb94b4fe239c7a20a20 /src/commands/db.rs
parent7654b507521997b5380e9e89ecda154dc800a4df (diff)
Collect environment variables into comma-seperated list
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
Diffstat (limited to 'src/commands/db.rs')
-rw-r--r--src/commands/db.rs28
1 files changed, 17 insertions, 11 deletions
diff --git a/src/commands/db.rs b/src/commands/db.rs
index 0a78aa9..eb37fa8 100644
--- a/src/commands/db.rs
+++ b/src/commands/db.rs
@@ -300,8 +300,7 @@ fn jobs(conn_cfg: DbConnectionConfig, matches: &ArgMatches) -> Result<()> {
"success",
"package",
"version",
- "Env Name",
- "Env Value",
+ "Env",
]);
let conn = crate::db::establish_connection(conn_cfg)?;
let jobs = matches
@@ -364,28 +363,35 @@ fn jobs(conn_cfg: DbConnectionConfig, matches: &ArgMatches) -> Result<()> {
})?;
let data = jobs
+ .iter()
+ .group_by(|(job, submit, ep, package, _)| {
+ (job, submit, ep, package)
+ });
+
+ let data = data
.into_iter()
- .map(|(job, submit, ep, package, o_env)| {
+ .map(|((job, submit, ep, package), grouped)| {
+ let envs = grouped
+ .filter_map(|opt| opt.4.as_ref())
+ .map(|tpl| format!("{}={}", tpl.1.name, tpl.1.value))
+ .join(", ");
+
let success = crate::log::ParsedLog::build_from(&job.log_text)?
.is_successfull()
.map(|b| if b { "yes" } else { "no" })
.map(String::from)
.unwrap_or_else(|| String::from("unknown"));
- let env = o_env
- .map(|tpl| (tpl.1.name, tpl.1.value))
- .unwrap_or_default();
Ok(vec![
format!("{}", job.id),
submit.uuid.to_string(),
job.uuid.to_string(),
submit.submit_time.to_string(),
- ep.name,
+ ep.name.clone(),
success,
- package.name,
- package.version,
- env.0,
- env.1,
+ package.name.clone(),
+ package.version.clone(),
+ envs,
])
})
.collect::<Result<Vec<_>>>()?;