wip rm devices

This commit is contained in:
swrup 2026-03-12 13:23:27 +01:00
parent eff2cb8e67
commit 49f07de7a2
3 changed files with 36 additions and 69 deletions

View file

@ -64,25 +64,6 @@ let routes =
in
tos @ status_info @ management
let caqti_get_ok = function
| Error e -> Fmt.failwith "%a" Caqti_error.pp e
| Ok v -> v
let test (module Conn : Caqti_miou.CONNECTION) =
let minus_req =
let open Caqti_request.Infix in
let open Caqti_type in
(t2 int int ->! int) "SELECT ? - ?"
in
let a = 22 in
let b = 17 in
let c = Conn.find minus_req (22, 17) |> caqti_get_ok in
assert (a - b = c);
Logs.app (fun f -> f "%d - %d = %d" a b c);
()
let disconnect (module Conn : Caqti_miou.CONNECTION) = Conn.disconnect ()
module RNG = Mirage_crypto_rng.Fortuna
let () =
@ -101,31 +82,42 @@ let () =
@@ fun rng storage (stack, tcp, udp) () ->
let@ () = fun () -> Mirage_crypto_rng_mkernel.kill rng in
let@ () = fun () -> Mnet.kill stack in
(* -- setup db connection -- *)
let hed, he = Mnet_happy_eyeballs.create tcp in
let@ () = fun () -> Mnet_happy_eyeballs.kill hed in
let dns = Mnet_dns.create (udp_db, he) in
let dns = Mnet_dns.create (udp, he) in
let t = Mnet_dns.transport dns in
let@ () = fun () -> Mnet_dns.Transport.kill t in
Caqti_miou.Switch.run @@ fun sw ->
Logs.app (fun m -> m "Connecting to the database");
let db_connection =
let config = Caqti_connect_config.default in
let r = Caqti_mnet.connect ~config ~sw stack tcp dns db_uri in
caqti_get_ok r
in
let@ () = fun () -> disconnect db_connection in
Logs.app (fun m -> m "Connected");
test db_connection;
Logs.app (fun m -> m "Test OK");
(* -- *)
(* -- start webserver -- *)
let devices = [] in
Caqti_miou.Switch.run @@ fun sw ->
let db_conn =
let db_uri = Config.Exchangedb_postgres.config in
(* IMPROVE: use caqti pool
[connect_pool] with parameter [?post_connect] for preflight *)
match Caqti_mnet.connect ~sw stack tcp dns db_uri with
| Error err ->
Fmt.failwith "Database connection failure: %a." Caqti_error.pp err
| Ok conn -> conn
in
let@ () =
fun () ->
let (module Conn : Pg.CONN) = db_conn in
Conn.disconnect ()
in
let () = Pg.preflight db_conn in
Logs.info (fun m -> m "database connection initialized");
(* -- *)
let keys : (module Keys.S) =
let (module Conn : Pg.CONN) = db_conn in
let (module Fs : Fat.FS) =
(module struct
let t = storage
end)
in
(module Keys.Make (Conn) (Fs))
in
(* -- *)
let cfg = Vifu.Config.v Config.Exchange.port in
let db_device = Devices.db_connection sw in
let keys_device = Devices.keys storage (Vifu.Device.value db_device) in
let devices = Vifu.Devices.[ db_device; keys_device ] in
Vifu.run ~cfg ~devices tcp routes ()
Vifu.run ~cfg tcp routes (db_conn, keys)
(*
Miou_unix.run @@ fun () ->