at master 1.1 kB view raw
1{ pkgs, ... }: 2let 3 role = "test"; 4 password = "secret"; 5 conn = "local"; 6in 7{ 8 name = "pgmanage"; 9 meta = with pkgs.lib.maintainers; { 10 maintainers = [ basvandijk ]; 11 }; 12 nodes = { 13 one = 14 { config, pkgs, ... }: 15 { 16 services = { 17 postgresql = { 18 enable = true; 19 initialScript = pkgs.writeText "pg-init-script" '' 20 CREATE ROLE ${role} SUPERUSER LOGIN PASSWORD '${password}'; 21 ''; 22 }; 23 pgmanage = { 24 enable = true; 25 connections = { 26 ${conn} = 27 "hostaddr=127.0.0.1 port=${toString config.services.postgresql.settings.port} dbname=postgres"; 28 }; 29 }; 30 }; 31 }; 32 }; 33 34 testScript = '' 35 start_all() 36 one.wait_for_unit("default.target") 37 one.require_unit_state("pgmanage.service", "active") 38 39 # Test if we can log in. 40 one.wait_until_succeeds( 41 "curl 'http://localhost:8080/pgmanage/auth' --data 'action=login&connname=${conn}&username=${role}&password=${password}' --fail" 42 ) 43 ''; 44}