summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-11-13 17:21:57 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-11-13 17:25:25 +0100
commit1558a2817081d9110eff20f5d429125e460d9a81 (patch)
tree52f5cddc9b4e8f248f5367601074e9af76019821
parent4eca99a67c87dde25024877b8fc390ab67dde23c (diff)
Add uuid field to "job" table
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--migrations/2020-11-13-161449_add_job_uuid/down.sql5
-rw-r--r--migrations/2020-11-13-161449_add_job_uuid/up.sql5
-rw-r--r--src/commands/db.rs4
-rw-r--r--src/db/models/job.rs4
-rw-r--r--src/endpoint/scheduler.rs2
-rw-r--r--src/schema.rs1
6 files changed, 18 insertions, 3 deletions
diff --git a/migrations/2020-11-13-161449_add_job_uuid/down.sql b/migrations/2020-11-13-161449_add_job_uuid/down.sql
new file mode 100644
index 0000000..d775ff6
--- /dev/null
+++ b/migrations/2020-11-13-161449_add_job_uuid/down.sql
@@ -0,0 +1,5 @@
+-- This file should undo anything in `up.sql`
+ALTER TABLE
+ jobs
+DROP COLUMN
+ uuid
diff --git a/migrations/2020-11-13-161449_add_job_uuid/up.sql b/migrations/2020-11-13-161449_add_job_uuid/up.sql
new file mode 100644
index 0000000..798a1b6
--- /dev/null
+++ b/migrations/2020-11-13-161449_add_job_uuid/up.sql
@@ -0,0 +1,5 @@
+-- Your SQL goes here
+ALTER TABLE
+ jobs
+ADD COLUMN
+ uuid UUID NOT NULL UNIQUE
diff --git a/src/commands/db.rs b/src/commands/db.rs
index 087cd85..c96ef7b 100644
--- a/src/commands/db.rs
+++ b/src/commands/db.rs
@@ -213,7 +213,7 @@ fn jobs(conn_cfg: DbConnectionConfig, matches: &ArgMatches) -> Result<()> {
use crate::schema::jobs::dsl;
let csv = matches.is_present("csv");
- let hdrs = mk_header(vec!["id", "submit uuid", "time", "endpoint", "success"]);
+ let hdrs = mk_header(vec!["id", "submit uuid", "job uuid", "time", "endpoint", "success"]);
let conn = crate::db::establish_connection(conn_cfg)?;
let jobs = matches.value_of("submit_uuid")
.map(uuid::Uuid::parse_str)
@@ -244,7 +244,7 @@ fn jobs(conn_cfg: DbConnectionConfig, matches: &ArgMatches) -> Result<()> {
})
.unwrap_or_else(|| String::from("unknown"));
- Ok(vec![format!("{}", job.id), submit.uuid.to_string(), submit.submit_time.to_string(), ep.name, success])
+ Ok(vec![format!("{}", job.id), submit.uuid.to_string(), job.uuid.to_string(), submit.submit_time.to_string(), ep.name, success])
})
.collect::<Result<Vec<_>>>()?;
diff --git a/src/db/models/job.rs b/src/db/models/job.rs
index fd3b862..12fba7b 100644
--- a/src/db/models/job.rs
+++ b/src/db/models/job.rs
@@ -19,6 +19,7 @@ pub struct Job {
pub container_hash: String,
pub script_text: String,
pub log_text: String,
+ pub uuid: ::uuid::Uuid,
}
#[derive(Debug, Insertable)]
@@ -31,10 +32,12 @@ struct NewJob<'a> {
pub container_hash: &'a str,
pub script_text: &'a str,
pub log_text: &'a str,
+ pub uuid: &'a ::uuid::Uuid,
}
impl Job {
pub fn create(database_connection: &PgConnection,
+ job_uuid: &::uuid::Uuid,
submit: &Submit,
endpoint: &Endpoint,
package: &Package,
@@ -44,6 +47,7 @@ impl Job {
log: &str,
) -> Result<()> {
let new_job = NewJob {
+ uuid: job_uuid,
submit_id: submit.id,
endpoint_id: endpoint.id,
package_id: package.id,
diff --git a/src/endpoint/scheduler.rs b/src/endpoint/scheduler.rs
index 6bbb438..541082a 100644
--- a/src/endpoint/scheduler.rs
+++ b/src/endpoint/scheduler.rs
@@ -151,7 +151,7 @@ impl JobHandle {
let log = logres.with_context(|| anyhow!("Collecting logs for job on '{}'", ep.name()))?;
let (paths, container_hash, script) = res.with_context(|| anyhow!("Running job on '{}'", ep.name()))?;
- dbmodels::Job::create(&self.db, &self.submit, &endpoint, &package, &image, &container_hash, &script, &log)?;
+ dbmodels::Job::create(&self.db, &job_id, &self.submit, &endpoint, &package, &image, &container_hash, &script, &log)?;
Ok(paths)
}
diff --git a/src/schema.rs b/src/schema.rs
index 0baaf47..aa777a6 100644
--- a/src/schema.rs
+++ b/src/schema.rs
@@ -68,6 +68,7 @@ table! {
container_hash -> Varchar,
script_text -> Text,
log_text -> Text,
+ uuid -> Uuid,
}
}