vuls: init at 0.27.0
[NixPkgs.git] / nixos / tests / db-rest.nix
blob9249da904acbe6fd9da0a5ded828f53d6d744e5d
1 import ./make-test-python.nix ({ pkgs, ... }:
3   name = "db-rest";
4   meta.maintainers = with pkgs.lib.maintainers; [ marie ];
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       };
17       services.redis.servers.db-rest = {
18         enable = true;
19         bind = "0.0.0.0";
20         requirePass = "choochoo";
21         port = 31638;
22       };
23     };
25     serverWithTcp = { pkgs, ... }: {
26       environment = {
27         etc = {
28           "db-rest/password-redis-db".text = ''
29             choochoo
30           '';
31         };
32       };
34       networking = {
35         interfaces.eth1 = {
36           ipv4.addresses = [
37             { address = "192.168.2.11"; prefixLength = 24; }
38           ];
39         };
40         firewall.allowedTCPPorts = [ 3000 ];
41       };
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     };
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       };
67       services.db-rest = {
68         enable = true;
69         host = "0.0.0.0";
70         redis = {
71           enable = true;
72           createLocally = true;
73         };
74       };
75     };
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   };
89   testScript = ''
90     start_all()
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)
96       serverWithTcp.wait_for_unit("db-rest.service")
97       serverWithTcp.wait_for_open_port(3000)
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'")
101     with subtest("db-rest redis with Unix socket"):
102       serverWithUnixSocket.wait_for_unit("db-rest.service")
103       serverWithUnixSocket.wait_for_open_port(3000)
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   '';