at 24.11-pre 2.7 kB view raw
1import ./make-test-python.nix ({ pkgs, ... }: 2{ 3 name = "db-rest"; 4 meta.maintainers = with pkgs.lib.maintainers; [ marie ]; 5 6 nodes = { 7 database = { 8 networking = { 9 interfaces.eth1 = { 10 ipv4.addresses = [ 11 { address = "192.168.2.10"; prefixLength = 24; } 12 ]; 13 }; 14 firewall.allowedTCPPorts = [ 31638 ]; 15 }; 16 17 services.redis.servers.db-rest = { 18 enable = true; 19 bind = "0.0.0.0"; 20 requirePass = "choochoo"; 21 port = 31638; 22 }; 23 }; 24 25 serverWithTcp = { pkgs, ... }: { 26 environment = { 27 etc = { 28 "db-rest/password-redis-db".text = '' 29 choochoo 30 ''; 31 }; 32 }; 33 34 networking = { 35 interfaces.eth1 = { 36 ipv4.addresses = [ 37 { address = "192.168.2.11"; prefixLength = 24; } 38 ]; 39 }; 40 firewall.allowedTCPPorts = [ 3000 ]; 41 }; 42 43 services.db-rest = { 44 enable = true; 45 host = "0.0.0.0"; 46 redis = { 47 enable = true; 48 createLocally = false; 49 host = "192.168.2.10"; 50 port = 31638; 51 passwordFile = "/etc/db-rest/password-redis-db"; 52 useSSL = false; 53 }; 54 }; 55 }; 56 57 serverWithUnixSocket = { pkgs, ... }: { 58 networking = { 59 interfaces.eth1 = { 60 ipv4.addresses = [ 61 { address = "192.168.2.12"; prefixLength = 24; } 62 ]; 63 }; 64 firewall.allowedTCPPorts = [ 3000 ]; 65 }; 66 67 services.db-rest = { 68 enable = true; 69 host = "0.0.0.0"; 70 redis = { 71 enable = true; 72 createLocally = true; 73 }; 74 }; 75 }; 76 77 client = { 78 environment.systemPackages = [ pkgs.jq ]; 79 networking = { 80 interfaces.eth1 = { 81 ipv4.addresses = [ 82 { address = "192.168.2.13"; prefixLength = 24; } 83 ]; 84 }; 85 }; 86 }; 87 }; 88 89 testScript = '' 90 start_all() 91 92 with subtest("db-rest redis with TCP socket"): 93 database.wait_for_unit("redis-db-rest.service") 94 database.wait_for_open_port(31638) 95 96 serverWithTcp.wait_for_unit("db-rest.service") 97 serverWithTcp.wait_for_open_port(3000) 98 99 client.succeed("curl --fail --get http://192.168.2.11:3000/stations --data-urlencode 'query=Köln Hbf' | jq -r '.\"8000207\".name' | grep 'Köln Hbf'") 100 101 with subtest("db-rest redis with Unix socket"): 102 serverWithUnixSocket.wait_for_unit("db-rest.service") 103 serverWithUnixSocket.wait_for_open_port(3000) 104 105 client.succeed("curl --fail --get http://192.168.2.12:3000/stations --data-urlencode 'query=Köln Hbf' | jq -r '.\"8000207\".name' | grep 'Köln Hbf'") 106 ''; 107})