fix: complete fips unit fallback coverage
This commit is contained in:
@@ -56,12 +56,12 @@ pub(in crate::api::rpc) async fn save_pending_seed_encrypted(
|
||||
Ok(true)
|
||||
}
|
||||
|
||||
/// Best-effort: install fips.yaml + start archipelago-fips.service after the
|
||||
/// seed onboarding has written the fips_key to disk. Runs in a detached task
|
||||
/// so the user-facing RPC returns immediately — the systemctl calls can take
|
||||
/// a few seconds the first time on slow hardware. Any failure is logged but
|
||||
/// does not break onboarding; the user can still hit fips.install manually
|
||||
/// from the dashboard as an escape hatch.
|
||||
/// Best-effort: install fips.yaml + start the available FIPS systemd unit after
|
||||
/// seed onboarding has written the fips_key to disk. Runs in a detached task so
|
||||
/// the user-facing RPC returns immediately — the systemctl calls can take a few
|
||||
/// seconds the first time on slow hardware. Any failure is logged but does not
|
||||
/// break onboarding; the user can still hit fips.install manually from the
|
||||
/// dashboard as an escape hatch.
|
||||
fn spawn_post_onboarding_fips_activate(data_dir: std::path::PathBuf) {
|
||||
tokio::spawn(async move {
|
||||
let identity_dir = data_dir.join("identity");
|
||||
@@ -78,11 +78,12 @@ fn spawn_post_onboarding_fips_activate(data_dir: std::path::PathBuf) {
|
||||
tracing::warn!("post-onboarding fips config install failed: {}", e);
|
||||
return;
|
||||
}
|
||||
if let Err(e) = crate::fips::service::activate(crate::fips::SERVICE_UNIT).await {
|
||||
tracing::warn!("post-onboarding archipelago-fips activate failed: {}", e);
|
||||
let unit = crate::fips::service::activation_unit().await;
|
||||
if let Err(e) = crate::fips::service::activate(unit).await {
|
||||
tracing::warn!("post-onboarding FIPS activate failed via {}: {}", unit, e);
|
||||
return;
|
||||
}
|
||||
tracing::info!("archipelago-fips auto-activated post-onboarding");
|
||||
tracing::info!("FIPS auto-activated post-onboarding via {}", unit);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -138,8 +139,8 @@ impl RpcHandler {
|
||||
// Initialize identity index at 0.
|
||||
crate::seed::save_identity_index(&self.config.data_dir, 0).await?;
|
||||
|
||||
// fips_key is now on disk — auto-activate archipelago-fips so the
|
||||
// user doesn't have to hit an "Activate" button. Detached task;
|
||||
// fips_key is now on disk — auto-activate FIPS so the user doesn't
|
||||
// have to hit a manual Start button. Detached task;
|
||||
// the onboarding RPC returns immediately.
|
||||
spawn_post_onboarding_fips_activate(self.config.data_dir.clone());
|
||||
|
||||
|
||||
@@ -891,7 +891,7 @@ impl Server {
|
||||
// Post-onboarding auto-activation for archipelago-fips. Runs once
|
||||
// at startup: if fips_key is on disk, install /etc/fips/fips.yaml
|
||||
// (schema-refreshed) and start the service. This removes the
|
||||
// need for a user-facing "Activate" button — the node comes up
|
||||
// need for a user-facing manual Start button — the node comes up
|
||||
// with FIPS running whenever the seed has been onboarded. Also
|
||||
// self-heals legacy raw-byte fips.key files (load_fips_keys
|
||||
// rewrites them as bech32 nsec the first time they're read).
|
||||
|
||||
Reference in New Issue
Block a user