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