diff options
Diffstat (limited to 'src/runner/runc/run.rs')
-rw-r--r-- | src/runner/runc/run.rs | 31 |
1 files changed, 3 insertions, 28 deletions
diff --git a/src/runner/runc/run.rs b/src/runner/runc/run.rs index 9fd88f7..c0d9aa1 100644 --- a/src/runner/runc/run.rs +++ b/src/runner/runc/run.rs @@ -4,42 +4,17 @@ use std::{ }; use nix::mount::{self, MsFlags}; -use serde::{Deserialize, Serialize}; use sha2::Digest; use tee_readwrite::TeeWriter; use crate::{ paths, runner, types::*, - util::{self, tar}, + util::{self, error::*, tar}, }; use super::spec; -#[derive(Debug, Deserialize, Serialize)] -pub enum Error { - Code(i32), - String(String), -} - -impl From<io::Error> for Error { - fn from(error: io::Error) -> Self { - match error.raw_os_error() { - Some(code) => Error::Code(code), - None => Error::String(error.to_string()), - } - } -} - -impl From<Error> for io::Error { - fn from(error: Error) -> Self { - match error { - Error::Code(code) => io::Error::from_raw_os_error(code), - Error::String(string) => io::Error::new(io::ErrorKind::Other, string), - } - } -} - fn init_task(task: &runner::Task) -> io::Result<()> { let mut dir = fs::DirBuilder::new(); dir.recursive(true); @@ -160,7 +135,7 @@ fn collect_output(task: runner::Task) -> io::Result<OutputHash> { Ok(hash) } -pub fn handle_task(task: runner::Task) -> Result<OutputHash, Error> { +pub fn handle_task(task: runner::Task) -> Result<OutputHash> { init_task(&task)?; unpack_dependencies(&task)?; @@ -180,7 +155,7 @@ pub fn handle_task(task: runner::Task) -> Result<OutputHash, Error> { .status()?; if !status.success() { - return Err(Error::String("Task failed".to_string())); + return Err(Error::new("Task failed")); } Ok(collect_output(task)?) |