From 3bf55c8e932db489e44e49948bbe7f8601402245 Mon Sep 17 00:00:00 2001 From: Vlad Lazar Date: Fri, 25 Jul 2025 12:22:25 +0100 Subject: [PATCH] review: bail out instead of panicking --- storage_controller/src/hadron_token.rs | 25 +++++++++++++------------ storage_controller/src/main.rs | 3 ++- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/storage_controller/src/hadron_token.rs b/storage_controller/src/hadron_token.rs index 85a5159cc4..b0a00b8646 100644 --- a/storage_controller/src/hadron_token.rs +++ b/storage_controller/src/hadron_token.rs @@ -1,4 +1,4 @@ -use anyhow::Result; +use anyhow::{Result, bail}; use camino::Utf8Path; use jsonwebtoken::EncodingKey; use std::fs; @@ -13,17 +13,18 @@ pub struct HadronTokenGenerator { } impl HadronTokenGenerator { - pub fn new(path: &Utf8Path) -> Self { - let key_data = fs::read(path).unwrap_or_else(|e| { - panic!("Error reading private key file {:?}. Error: {:?}", path, e) - }); - let encoding_key = EncodingKey::from_rsa_pem(&key_data).unwrap_or_else(|e| { - panic!( - "Error reading private key file {:?} as RSA private key. Error: {:?}", - path, e - ) - }); - Self { encoding_key } + pub fn new(path: &Utf8Path) -> anyhow::Result { + let key_data = match fs::read(path) { + Ok(ok) => ok, + Err(e) => bail!("Error reading private key file {path:?}. Error: {e}"), + }; + let encoding_key = match EncodingKey::from_rsa_pem(&key_data) { + Ok(ok) => ok, + Err(e) => { + bail!("Error reading private key file {path:?} as RSA private key. Error: {e}") + } + }; + Ok(Self { encoding_key }) } pub fn generate_tenant_scope_token(&self, tenant_id: TenantId) -> Result { diff --git a/storage_controller/src/main.rs b/storage_controller/src/main.rs index 1f3ee336db..734feee8ea 100644 --- a/storage_controller/src/main.rs +++ b/storage_controller/src/main.rs @@ -330,7 +330,8 @@ impl Secrets { token_generator: args .private_key_path .as_ref() - .map(|path| HadronTokenGenerator::new(path)), + .map(|path| HadronTokenGenerator::new(path)) + .transpose()?, }; Ok(this)