From ba2074fc310796f1cb43b82b86cb85cfc0a8ca53 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Sat, 21 Mar 2015 10:13:03 -0400 Subject: [PATCH] nixos/tests/cjdns: do not build cjdns at evaluation Putting hostnames in the cjdns configuration requires a utility be present to convert public keys to ip addresses --- nixos/release.nix | 2 +- nixos/tests/cjdns.nix | 25 ++++++++++++------------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/nixos/release.nix b/nixos/release.nix index 1712c90ad33..f84501d741a 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -242,7 +242,7 @@ in rec { tests.blivet = callTest tests/blivet.nix {}; tests.cadvisor = hydraJob (import tests/cadvisor.nix { system = "x86_64-linux"; }); tests.chromium = callTest tests/chromium.nix {}; - #tests.cjdns = callTest tests/cjdns.nix {}; + tests.cjdns = callTest tests/cjdns.nix {}; tests.containers = callTest tests/containers.nix {}; tests.docker = hydraJob (import tests/docker.nix { system = "x86_64-linux"; }); tests.dockerRegistry = hydraJob (import tests/docker-registry.nix { system = "x86_64-linux"; }); diff --git a/nixos/tests/cjdns.nix b/nixos/tests/cjdns.nix index 7bb3863c683..45164234b1b 100644 --- a/nixos/tests/cjdns.nix +++ b/nixos/tests/cjdns.nix @@ -3,15 +3,15 @@ let carolPubKey = "n932l3pjvmhtxxcdrqq2qpw5zc58f01vvjx01h4dtd1bb0nnu2h0.k"; carolPassword = "678287829ce4c67bc8b227e56d94422ee1b85fa11618157b2f591de6c6322b52"; carolIp4 = "192.168.0.9"; - + basicConfig = { config, pkgs, ... }: { services.cjdns.enable = true; - + # Turning off DHCP isn't very realistic but makes # the sequence of address assignment less stochastic. networking.useDHCP = false; - + networking.interfaces.eth1.prefixLength = 24; # CJDNS output is incompatible with the XML log. systemd.services.cjdns.serviceConfig.StandardOutput = "null"; @@ -41,19 +41,18 @@ import ./make-test.nix { # Bob explicitly connects to Carol over UDPInterface. bob = { config, lib, nodes, ... }: - + let carolIp4 = lib.mkForce nodes.carol.config.networking.interfaces.eth1; in - + { imports = [ basicConfig ]; - + networking.interfaces.eth1.ipAddress = "192.168.0.2"; - + services.cjdns = { UDPInterface = { bind = "0.0.0.0:1024"; connectTo."192.168.0.1:1024}" = - { hostname = "carol.hype"; - password = carolPassword; + { password = carolPassword; publicKey = carolPubKey; }; }; @@ -75,7 +74,7 @@ import ./make-test.nix { ''; networking.interfaces.eth1.ipAddress = "192.168.0.1"; - + services.cjdns = { authorizedPasswords = [ carolPassword ]; ETHInterface.bind = "eth1"; @@ -106,13 +105,13 @@ import ./make-test.nix { my $carolIp6 = cjdnsIp $carol; # ping a few times each to let the routing table establish itself - + $alice->succeed("ping6 -c 4 $carolIp6"); - $bob->succeed("ping6 -c 4 carol.hype"); + $bob->succeed("ping6 -c 4 $carolIp6"); $carol->succeed("ping6 -c 4 $aliceIp6"); $carol->succeed("ping6 -c 4 $bobIp6"); - + $alice->succeed("ping6 -c 4 $bobIp6"); $bob->succeed("ping6 -c 4 $aliceIp6");