jobsets and folders

Former-commit-id: 42d81df7327918aaace728aad803162144734be5
This commit is contained in:
Daniel Løvbrøtte Olsen 2020-04-27 00:49:45 +02:00
parent c5a165cfe3
commit 4c5d8455fb
2 changed files with 15 additions and 5 deletions

View File

@ -108,7 +108,9 @@ fn upload(id: Uuid, video: Data, shared: State<SharedState>) -> Result<String, s
Err(std::io::Error::new(std::io::ErrorKind::NotFound, "Job not found")) Err(std::io::Error::new(std::io::ErrorKind::NotFound, "Job not found"))
} }
else { else {
let filename = format!("results/{name}.{id}.webm", name = shared.jobs.lock().unwrap().get(&id).unwrap().description.file_name, id = id); let list = shared.jobs.lock().unwrap();
let job = list.get(&id).unwrap();
let filename = format!("results/{jobset}/{name}.{id}.webm", jobset = job.jobset, name = job.description.file_name, id = id);
let url = format!("{host}/{id}\n", host = "https://av1.dodsorf.as", id = id); let url = format!("{host}/{id}\n", host = "https://av1.dodsorf.as", id = id);
video.stream_to_file(Path::new(&filename))?; video.stream_to_file(Path::new(&filename))?;
Ok(url) Ok(url)
@ -116,11 +118,11 @@ fn upload(id: Uuid, video: Data, shared: State<SharedState>) -> Result<String, s
} }
#[post("/add_job", format = "json", data = "<message>")] #[post("/add_job/<jobset>", format = "json", data = "<message>")]
fn add_job(message: Json<workunit::WDesc>, shared: State<SharedState>) { fn add_job(message: Json<workunit::WDesc>, jobset: String, shared: State<SharedState>) {
let job = message.into_inner(); let job = message.into_inner();
let id = uuid::Uuid::new_v4(); let id = uuid::Uuid::new_v4();
shared.jobs.lock().unwrap().insert(id, WUnit::new(id, job)); shared.jobs.lock().unwrap().insert(id, WUnit::new(id, jobset, job));
} }
fn main() { fn main() {

View File

@ -6,13 +6,21 @@ use std::net::IpAddr;
#[derive(Default, Debug, Serialize, Deserialize, Clone)] #[derive(Default, Debug, Serialize, Deserialize, Clone)]
pub struct WUnit { pub struct WUnit {
pub id: Uuid, pub id: Uuid,
pub jobset: String,
pub description: WDesc, pub description: WDesc,
pub status: EStatus pub status: EStatus
} }
impl WUnit { impl WUnit {
pub fn new(id: Uuid, description: WDesc) -> Self { pub fn new(id: Uuid, _jobset: String, description: WDesc) -> Self {
let jobset: String = _jobset.chars()
.map(|x| match x {
'.' => '_',
'/' => '-',
_ => x
}).collect();
WUnit { WUnit {
id: id, id: id,
jobset: jobset,
description: description, description: description,
status: EStatus::Queued status: EStatus::Queued
} }