Merge pull request #92 from DeterminateSystems/colemickens/startup-noti-file
startup notification: create_dir_all parent dir, add context for io ops
This commit is contained in:
commit
c1924ba94a
|
@ -369,7 +369,10 @@ impl Api {
|
|||
let url = self.construct_url(&format!("caches/{}", allocation.0 .0));
|
||||
|
||||
tokio::task::spawn(async move {
|
||||
let permit = concurrency_limit.acquire().await.unwrap();
|
||||
let permit = concurrency_limit
|
||||
.acquire()
|
||||
.await
|
||||
.expect("failed to acquire concurrency semaphore permit");
|
||||
|
||||
tracing::trace!(
|
||||
"Starting uploading chunk {}-{}",
|
||||
|
@ -411,7 +414,9 @@ impl Api {
|
|||
future::join_all(futures)
|
||||
.await
|
||||
.into_iter()
|
||||
.try_for_each(|join_result| join_result.unwrap())?;
|
||||
.try_for_each(|join_result| {
|
||||
join_result.expect("failed collecting a join result during parallel upload")
|
||||
})?;
|
||||
|
||||
tracing::debug!("Received all chunks for cache {:?}", allocation.0);
|
||||
|
||||
|
|
|
@ -72,7 +72,9 @@ impl GhaCache {
|
|||
self.channel_tx
|
||||
.send(Request::Shutdown)
|
||||
.expect("Cannot send shutdown message");
|
||||
worker_result.await.unwrap()
|
||||
worker_result
|
||||
.await
|
||||
.expect("failed to read result from gha worker")
|
||||
} else {
|
||||
Ok(())
|
||||
}
|
||||
|
@ -189,7 +191,7 @@ async fn upload_path(
|
|||
|
||||
let narinfo = path_info_to_nar_info(store.clone(), &path_info, format!("nar/{}", nar_path))
|
||||
.to_string()
|
||||
.unwrap();
|
||||
.expect("failed to convert path into to nar info");
|
||||
|
||||
tracing::debug!("Uploading '{}'", narinfo_path);
|
||||
|
||||
|
@ -224,7 +226,17 @@ fn path_info_to_nar_info(store: Arc<NixStore>, path_info: &ValidPathInfo, url: S
|
|||
references: path_info
|
||||
.references
|
||||
.iter()
|
||||
.map(|r| r.file_name().unwrap().to_str().unwrap().to_owned())
|
||||
.map(|r| {
|
||||
r.file_name()
|
||||
.and_then(|n| n.to_str())
|
||||
.unwrap_or_else(|| {
|
||||
panic!(
|
||||
"failed to convert nar_info reference to string: {}",
|
||||
r.display()
|
||||
)
|
||||
})
|
||||
.to_owned()
|
||||
})
|
||||
.collect(),
|
||||
system: None,
|
||||
deriver: None,
|
||||
|
|
|
@ -392,8 +392,33 @@ async fn main_cli() -> Result<()> {
|
|||
|
||||
tracing::debug!("Startup notification via file at {startup_notification_file_path:?}");
|
||||
|
||||
let mut notification_file = File::create(&startup_notification_file_path).await?;
|
||||
notification_file.write_all(file_contents).await?;
|
||||
if let Some(parent_dir) = startup_notification_file_path.parent() {
|
||||
tokio::fs::create_dir_all(parent_dir)
|
||||
.await
|
||||
.with_context(|| {
|
||||
format!(
|
||||
"failed to create parent directory for startup notification file path: {}",
|
||||
startup_notification_file_path.display()
|
||||
)
|
||||
})?;
|
||||
}
|
||||
let mut notification_file = File::create(&startup_notification_file_path)
|
||||
.await
|
||||
.with_context(|| {
|
||||
format!(
|
||||
"failed to create startup notification file to path: {}",
|
||||
startup_notification_file_path.display()
|
||||
)
|
||||
})?;
|
||||
notification_file
|
||||
.write_all(file_contents)
|
||||
.await
|
||||
.with_context(|| {
|
||||
format!(
|
||||
"failed to write startup notification file to path: {}",
|
||||
startup_notification_file_path.display()
|
||||
)
|
||||
})?;
|
||||
|
||||
tracing::debug!("Created startup notification file at {startup_notification_file_path:?}");
|
||||
}
|
||||
|
@ -437,8 +462,16 @@ fn init_logging() -> Result<LogGuard> {
|
|||
let filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| {
|
||||
#[cfg(debug_assertions)]
|
||||
return EnvFilter::new("info")
|
||||
.add_directive("magic_nix_cache=debug".parse().unwrap())
|
||||
.add_directive("gha_cache=debug".parse().unwrap());
|
||||
.add_directive(
|
||||
"magic_nix_cache=debug"
|
||||
.parse()
|
||||
.expect("failed to parse magix_nix_cache directive"),
|
||||
)
|
||||
.add_directive(
|
||||
"gha_cache=debug"
|
||||
.parse()
|
||||
.expect("failed to parse gha_cahce directive"),
|
||||
);
|
||||
|
||||
#[cfg(not(debug_assertions))]
|
||||
return EnvFilter::new("info");
|
||||
|
|
Loading…
Reference in a new issue