From af885e4a7c74ba4c92747a97469c551c27cd5efc Mon Sep 17 00:00:00 2001 From: swrup Date: Tue, 24 Feb 2026 16:59:18 +0100 Subject: [PATCH] warn instead of fail --- src/keys.ml | 58 ++++++++++++++++++++++------------------------------- 1 file changed, 24 insertions(+), 34 deletions(-) diff --git a/src/keys.ml b/src/keys.ml index c4b5f83b..53e1a188 100644 --- a/src/keys.ml +++ b/src/keys.ml @@ -55,46 +55,36 @@ module Make (Conn : Pg.CONN) : S = struct let signkeys () : Signkey.t list result = let now = Timestamp.of_ptime @@ Ptime_clock.now () in - let* l = Pg.get_signkeys conn ~now |> unwrap_err_caqti in - let* () = - list_iter - (fun sk -> - match Sm_eddsa.find_key sk.Signkey.pub with - | None -> - Fmt.error - "signkeys found in database are missing from secmod, (unclean \ - database/secmod state?)" - | Some _ -> Ok ()) + let+ l = Pg.get_signkeys conn ~now |> unwrap_err_caqti in + let missing_l, l = + List.partition + (fun sk -> Option.is_none @@ Sm_eddsa.find_key sk.Signkey.pub) l in - Ok l + match missing_l with + | [] -> l + | _ -> + Logs.warn (fun m -> + m + "signkeys found in database are missing from secmod, (unclean \ + database/secmod state?)"); + l let denominations () = - let* l = Pg.get_denominations conn () |> unwrap_err_caqti in - let* () = - list_iter - (fun dn -> - match Sm_rsa.find_key dn.Denomination.pub with - | None -> - Fmt.error - "denominations found in database are missing from secmod, \ - (unclean database/secmod state?)" - | Some _ -> Ok ()) + let+ l = Pg.get_denominations conn () |> unwrap_err_caqti in + let missing_l, l = + List.partition + (fun dn -> Option.is_none @@ Sm_rsa.find_key dn.Denomination.pub) l in - Ok l - - (* TODO db-sm - don't fail and just warn? - have something to run tests with clean db+sm *) - (* test if database/secmod state looks ok *) - let () = - let res = - let* _sk_l = signkeys () in - let* _dn_l = denominations () in - Ok () - in - match res with Error e -> Fmt.failwith "%s" e | Ok () -> () + match missing_l with + | [] -> l + | _ -> + Logs.warn (fun m -> + m + "denominations found in database are missing from secmod, \ + (unclean database/secmod state?)"); + l let make_future_sk ~pub ~start ~expire = let stamp_start = Timestamp.of_absolute start in