summaryrefslogtreecommitdiffstats
path: root/src/runner/runc/run.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/runner/runc/run.rs')
-rw-r--r--src/runner/runc/run.rs31
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)?)