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
This commit is contained in:
Emery Hemingway 2015-03-21 10:13:03 -04:00
parent 7e66337f6c
commit ba2074fc31
2 changed files with 13 additions and 14 deletions

View file

@ -242,7 +242,7 @@ in rec {
tests.blivet = callTest tests/blivet.nix {}; tests.blivet = callTest tests/blivet.nix {};
tests.cadvisor = hydraJob (import tests/cadvisor.nix { system = "x86_64-linux"; }); tests.cadvisor = hydraJob (import tests/cadvisor.nix { system = "x86_64-linux"; });
tests.chromium = callTest tests/chromium.nix {}; 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.containers = callTest tests/containers.nix {};
tests.docker = hydraJob (import tests/docker.nix { system = "x86_64-linux"; }); tests.docker = hydraJob (import tests/docker.nix { system = "x86_64-linux"; });
tests.dockerRegistry = hydraJob (import tests/docker-registry.nix { system = "x86_64-linux"; }); tests.dockerRegistry = hydraJob (import tests/docker-registry.nix { system = "x86_64-linux"; });

View file

@ -3,15 +3,15 @@ let
carolPubKey = "n932l3pjvmhtxxcdrqq2qpw5zc58f01vvjx01h4dtd1bb0nnu2h0.k"; carolPubKey = "n932l3pjvmhtxxcdrqq2qpw5zc58f01vvjx01h4dtd1bb0nnu2h0.k";
carolPassword = "678287829ce4c67bc8b227e56d94422ee1b85fa11618157b2f591de6c6322b52"; carolPassword = "678287829ce4c67bc8b227e56d94422ee1b85fa11618157b2f591de6c6322b52";
carolIp4 = "192.168.0.9"; carolIp4 = "192.168.0.9";
basicConfig = basicConfig =
{ config, pkgs, ... }: { config, pkgs, ... }:
{ services.cjdns.enable = true; { services.cjdns.enable = true;
# Turning off DHCP isn't very realistic but makes # Turning off DHCP isn't very realistic but makes
# the sequence of address assignment less stochastic. # the sequence of address assignment less stochastic.
networking.useDHCP = false; networking.useDHCP = false;
networking.interfaces.eth1.prefixLength = 24; networking.interfaces.eth1.prefixLength = 24;
# CJDNS output is incompatible with the XML log. # CJDNS output is incompatible with the XML log.
systemd.services.cjdns.serviceConfig.StandardOutput = "null"; systemd.services.cjdns.serviceConfig.StandardOutput = "null";
@ -41,19 +41,18 @@ import ./make-test.nix {
# Bob explicitly connects to Carol over UDPInterface. # Bob explicitly connects to Carol over UDPInterface.
bob = bob =
{ config, lib, nodes, ... }: { config, lib, nodes, ... }:
let carolIp4 = lib.mkForce nodes.carol.config.networking.interfaces.eth1; in let carolIp4 = lib.mkForce nodes.carol.config.networking.interfaces.eth1; in
{ imports = [ basicConfig ]; { imports = [ basicConfig ];
networking.interfaces.eth1.ipAddress = "192.168.0.2"; networking.interfaces.eth1.ipAddress = "192.168.0.2";
services.cjdns = services.cjdns =
{ UDPInterface = { UDPInterface =
{ bind = "0.0.0.0:1024"; { bind = "0.0.0.0:1024";
connectTo."192.168.0.1:1024}" = connectTo."192.168.0.1:1024}" =
{ hostname = "carol.hype"; { password = carolPassword;
password = carolPassword;
publicKey = carolPubKey; publicKey = carolPubKey;
}; };
}; };
@ -75,7 +74,7 @@ import ./make-test.nix {
''; '';
networking.interfaces.eth1.ipAddress = "192.168.0.1"; networking.interfaces.eth1.ipAddress = "192.168.0.1";
services.cjdns = services.cjdns =
{ authorizedPasswords = [ carolPassword ]; { authorizedPasswords = [ carolPassword ];
ETHInterface.bind = "eth1"; ETHInterface.bind = "eth1";
@ -106,13 +105,13 @@ import ./make-test.nix {
my $carolIp6 = cjdnsIp $carol; my $carolIp6 = cjdnsIp $carol;
# ping a few times each to let the routing table establish itself # ping a few times each to let the routing table establish itself
$alice->succeed("ping6 -c 4 $carolIp6"); $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 $aliceIp6");
$carol->succeed("ping6 -c 4 $bobIp6"); $carol->succeed("ping6 -c 4 $bobIp6");
$alice->succeed("ping6 -c 4 $bobIp6"); $alice->succeed("ping6 -c 4 $bobIp6");
$bob->succeed("ping6 -c 4 $aliceIp6"); $bob->succeed("ping6 -c 4 $aliceIp6");