nixos tests: pump.io: init

+95
+1
nixos/release.nix
··· 283 tests.peerflix = callTest tests/peerflix.nix {}; 284 tests.printing = callTest tests/printing.nix {}; 285 tests.proxy = callTest tests/proxy.nix {}; 286 tests.quake3 = callTest tests/quake3.nix {}; 287 tests.runInMachine = callTest tests/run-in-machine.nix {}; 288 tests.sddm = callTest tests/sddm.nix {};
··· 283 tests.peerflix = callTest tests/peerflix.nix {}; 284 tests.printing = callTest tests/printing.nix {}; 285 tests.proxy = callTest tests/proxy.nix {}; 286 + tests.pumpio = callTest tests/pump.io.nix {}; 287 tests.quake3 = callTest tests/quake3.nix {}; 288 tests.runInMachine = callTest tests/run-in-machine.nix {}; 289 tests.sddm = callTest tests/sddm.nix {};
+94
nixos/tests/pump.io.nix
···
··· 1 + # This test runs pump.io with mongodb, listing on port 443. 2 + 3 + import ./make-test.nix ({ pkgs, ...} : let 4 + snakeOilKey = '' 5 + -----BEGIN PRIVATE KEY----- 6 + MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCqVemio78R41Tz 7 + MnR2zFD/wFT0iScOpFkuytNmuPf28FLaa9wSBWmuAGbEi7wBIfw8/bUqFBTQp2G1 8 + m1cmcCKxhmvvOkGs89eM131s1lW/bXU3zYso4e7724kHwU65jRlQs6cFWIlmW7V5 9 + 3HQobP05dy+zPpujPPSlOQ0qYViR1s+RgZI8r0wS2ZDsliNtQwBLJSIvX6XVnXLo 10 + F/HmF4/ySJ9pL2AxQXCwZE8SfCzHpArs9COIqTaAuwB79kxWSFQJewmab74BXiM6 11 + 9FMCtHON24Pl7OR9sRJHH8rMEzUumppmUeCNEzABjzQQ7svR18cmbzRWetp0tT9Y 12 + 7rj6URHHAgMBAAECggEAGmbCldDnlrAzxJY3cwpsK5f2EwkHIr/aiuQpLCzTUlUh 13 + onVBYRGxtaSeSSyXcV2BKTrxz5nZOBYZkPqI4Y5T8kwxgpz2/QW2jUABUtNN6yPe 14 + HU4gma+bSTJX5PnTZ/M0z0tpQezdLx5b3I2M+48ZGMUegZvcp8qU6N8U6VK5VbFD 15 + DMTGL4b+Kc9HScRkCJjU3FfQcqf9Ml5w9jzHSeHImYEDrG0nX8N8EImRCBXbgxCl 16 + 5XT1h6LFUGdr+N6n2w56+6l8OZZVmwj1NdF6NJybUQl4Y7b0niA+5czzjRt/YUjZ 17 + HW0fXmx3XlbYGWYdMdS+VaIW6pkUpm8kZkqjngqLwQKBgQDfhbFQmg9lsJQ8/dQZ 18 + WzRNsozHKWkQiZbW5sXBWygJbAB3Hc8gvQkuZe9TVyF99cznRj6ro6pGZjP0rTdY 19 + 3ACTL+ygRArcIR6VsJCIr6nPvBLpOoNb8TQeKPmHC2gnSP9zaT/K2lldYISKNaYQ 20 + 0seB2gvZhIgMgWtZtmb3jdgl9wKBgQDDFdknXgvFgB+y96//9wTu2WWuE5yQ5yB7 21 + utAcHNO9rx5X1tJqxymYh+iE8HUN25By+96SpNMQFI+0wNGVB00YWNBKtyepimWN 22 + EUCojTy+MIXIjrLcvviEePsI4TPWYf8XtZeiYtcczYrt/wPQUYaDb8LBRfpIfmhr 23 + rCGW93s+sQKBgEDOKTeeQyKPjJsWWL01RTfVsZ04s155FcOeyu0heb0plAT1Ho12 24 + YUgTg8zc8Tfs4QiYxCjNXdvlW+Dvq6FWv8/s0CUzNRbXf1+U/oKys4AoHi+CqH0q 25 + tJqd9KKjuwHQ10dl13n/znMVPbg4j7pG8lMCnfblxvAhQbeT+8yAUo/HAoGBAL3t 26 + /n4KXNGK3NHDvXEp0H6t3wWsiEi3DPQJO+Wy1x8caCFCv5c/kaqz3tfWt0+njSm1 27 + N8tzdx13tzVWaHV8Jz3l8dxcFtxEJnxB6L5wy0urOAS7kT3DG3b1xgmuH2a//7fY 28 + jumE60NahcER/2eIh7pdS7IZbAO6NfVmH0m4Zh/xAoGAbquh60sAfLC/1O2/4Xom 29 + PHS7z2+TNpwu4ou3nspxfigNQcTWzzzTVFLnaTPg+HKbLRXSWysjssmmj5u3lCyc 30 + S2M9xuhApa9CrN/udz4gEojRVsTla/gyLifIZ3CtTn2QEQiIJEMxM+59KAlkgUBo 31 + 9BeZ03xTaEZfhVZ9bEN30Ak= 32 + -----END PRIVATE KEY----- 33 + ''; 34 + 35 + snakeOilCert = '' 36 + -----BEGIN CERTIFICATE----- 37 + MIICvjCCAaagAwIBAgIJANhA6+PPhomZMA0GCSqGSIb3DQEBCwUAMBcxFTATBgNV 38 + BAMMDGIwOTM0YWMwYWZkNTAeFw0xNTExMzAxNzQ3MzVaFw0yNTExMjcxNzQ3MzVa 39 + MBcxFTATBgNVBAMMDGIwOTM0YWMwYWZkNTCCASIwDQYJKoZIhvcNAQEBBQADggEP 40 + ADCCAQoCggEBAKpV6aKjvxHjVPMydHbMUP/AVPSJJw6kWS7K02a49/bwUtpr3BIF 41 + aa4AZsSLvAEh/Dz9tSoUFNCnYbWbVyZwIrGGa+86Qazz14zXfWzWVb9tdTfNiyjh 42 + 7vvbiQfBTrmNGVCzpwVYiWZbtXncdChs/Tl3L7M+m6M89KU5DSphWJHWz5GBkjyv 43 + TBLZkOyWI21DAEslIi9fpdWdcugX8eYXj/JIn2kvYDFBcLBkTxJ8LMekCuz0I4ip 44 + NoC7AHv2TFZIVAl7CZpvvgFeIzr0UwK0c43bg+Xs5H2xEkcfyswTNS6ammZR4I0T 45 + MAGPNBDuy9HXxyZvNFZ62nS1P1juuPpREccCAwEAAaMNMAswCQYDVR0TBAIwADAN 46 + BgkqhkiG9w0BAQsFAAOCAQEAd2w9rxi6qF9WV8L3rHnTE7uu0ldtdgJlCASx6ouj 47 + TleOnjfEg+kH8r8UbmRV5vsTDn1Qp5JGDYxfytRUQwLb1zTLde0xotx37E3LY8Wr 48 + sD6Al4t8sHywB/hc5dy29TgG0iyG8LKZrkwytLvDZ814W3OwpN2rpEz6pdizdHNn 49 + jsoDEngZiDHvLjIyE0cDkFXkeYMGXOnBUeOcu4nfu4C5eKs3nXGGAcNDbDRIuLoE 50 + BZExUBY+YSs6JBvh5tvRqLVW0Dz0akEcjb/jhwS2LmDip8Pdoxx4Q1jPKEu38zrr 51 + Vd5WD2HJhLb9u0UxVp9vfWIUDgydopV5ZmWCQ5YvNepb1w== 52 + -----END CERTIFICATE----- 53 + ''; 54 + 55 + makePump = { opts ? { } }: 56 + { 57 + enable = true; 58 + sslCert = pkgs.writeText "snakeoil.cert" snakeOilCert; 59 + sslKey = pkgs.writeText "snakeoil.pem" snakeOilKey; 60 + secret = "test"; 61 + site = "test"; 62 + } // opts; 63 + 64 + in { 65 + name = "pumpio"; 66 + meta = with pkgs.stdenv.lib.maintainers; { 67 + maintainers = [ rvl ]; 68 + }; 69 + 70 + nodes = { 71 + one = 72 + { config, pkgs, ... }: 73 + { 74 + services = { 75 + pumpio = makePump { opts = { 76 + port = 443; 77 + }; }; 78 + mongodb.enable = true; 79 + mongodb.extraConfig = '' 80 + nojournal = true 81 + ''; 82 + }; 83 + systemd.services.mongodb.unitConfig.Before = "pump.io.service"; 84 + systemd.services.mongodb.unitConfig.RequiredBy = "pump.io.service"; 85 + }; 86 + }; 87 + 88 + testScript = '' 89 + startAll; 90 + 91 + $one->waitForUnit("pump.io.service"); 92 + $one->waitUntilSucceeds("curl -k https://localhost"); 93 + ''; 94 + })