diff options
-rw-r--r-- | src/db/models/job.rs | 5 | ||||
-rw-r--r-- | src/endpoint/scheduler.rs | 8 |
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, |