summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/db/models/job.rs5
-rw-r--r--src/endpoint/scheduler.rs8
2 files changed, 10 insertions, 3 deletions
diff --git a/src/db/models/job.rs b/src/db/models/job.rs
index 12af2a9..2828268 100644
--- a/src/db/models/job.rs
+++ b/src/db/models/job.rs
@@ -9,6 +9,7 @@
//
use anyhow::Error;
+use anyhow::Context;
use anyhow::Result;
use diesel::prelude::*;
use diesel::PgConnection;
@@ -79,11 +80,13 @@ impl Job {
diesel::insert_into(jobs::table)
.values(&new_job)
.on_conflict_do_nothing()
- .execute(database_connection)?;
+ .execute(database_connection)
+ .context("Creating job in database")?;
dsl::jobs
.filter(uuid.eq(job_uuid))
.first::<Job>(database_connection)
+ .with_context(|| format!("Finding created job in database: {}", job_uuid))
.map_err(Error::from)
}
diff --git a/src/endpoint/scheduler.rs b/src/endpoint/scheduler.rs
index ecef98b..cb9d04f 100644
--- a/src/endpoint/scheduler.rs
+++ b/src/endpoint/scheduler.rs
@@ -209,15 +209,19 @@ impl JobHandle {
&run_container.container_hash(),
run_container.script(),
&log,
- )?;
+ )
+ .context("Recording job that is ready in database")?;
+
trace!("DB: Job entry for job {} created: {}", job.uuid, job.id);
for env in envs {
- let _ = dbmodels::JobEnv::create(&self.db, &job, &env)?;
+ let _ = dbmodels::JobEnv::create(&self.db, &job, &env)
+ .with_context(|| format!("Creating Environment Variable mapping for Job: {}", job.uuid))?;
}
let res: crate::endpoint::FinalizedContainer = run_container
.finalize(self.staging_store.clone())
.await
+ .context("Finalizing container")
.with_context(|| {
Self::create_job_run_error(
&job.uuid,