Smoke tests

This commit is contained in:
Alvaro Saurin committed 2015-05-26 11:30:40 +02:00
1 parent cfcc08a914
commit ee6bbe7925
2 files changed
+46 -10

No files matched your search

+13 -8
View File
@@ -3,7 +3,9 @@
. ./config.sh
C1=10.2.3.78
C2=10.2.3.34
C2_1=10.2.3.34
C2_2=10.2.3.35
C2_3=10.2.3.36
UNIVERSE=10.2.4.0/24
NAME2=seetwo.weave.local
NAME4=seefour.weave.local
@@ -13,16 +15,19 @@ start_suite "Resolve names across hosts (with and without IPAM)"
weave_on $HOST1 launch -iprange $UNIVERSE
weave_on $HOST2 launch -iprange $UNIVERSE $HOST1
weave_on $HOST1 launch-dns 10.2.254.1/24
weave_on $HOST2 launch-dns 10.2.254.2/24
weave_on $HOST1 launch-dns 10.2.254.1/24 --no-cache
weave_on $HOST2 launch-dns 10.2.254.2/24 --no-cache
start_container $HOST2 $C2/24 --name=c2 -h $NAME2
start_container $HOST2 --name=c4 -h $NAME4
start_container_with_dns $HOST1 $C1/24 --name=c1
start_container_with_dns $HOST1 --name=c3
start_container $HOST2 $C2_1/24 --name=c2 -h $NAME2
start_container $HOST2 --name=c4 -h $NAME4
start_container_with_dns $HOST1 $C1/24 --name=c1
start_container_with_dns $HOST1 --name=c3
C4=$(container_ip $HOST2 c4)
assert_dns_record $HOST1 c1 $NAME2 $C2
tell_dns PUT $HOST2 c2 $NAME $C2_2 $NAME2
tell_dns PUT $HOST2 c2 $NAME $C2_3 $NAME2
assert_dns_record $HOST1 c1 $NAME2 $C2_1 $C2_2 $C2_3
assert_dns_record $HOST1 c3 $NAME4 $C4
assert_raises "exec_on $HOST1 c1 getent hosts 8.8.8.8 | grep google"
+33 -2
View File
@@ -99,6 +99,25 @@ exec_on() {
docker -H tcp://$host:$DOCKER_PORT exec $container "$@"
}
# get a container IP: <host> <container>
get_container_ip() {
docker -H tcp://$1:2375 inspect --format '{{ .NetworkSettings.IPAddress }}' $2
}
tell_dns() {
method=$1
host=$2
container=$3
name=$4
ip=$5
dns=$(get_container_ip $host weavedns)
[[ -z "$DEBUG" ]] || greyly echo "$method'ing $name=$ip at $host/$dns"
run_on $host \
curl --connect-timeout 3 -s -X $method \
"http://$dns:6785/name/$container/$ip" -d fqdn=$name
}
start_container() {
host=$1
shift 1
@@ -117,8 +136,20 @@ container_ip() {
# assert_dns_record <host> <container> <name> <ip>
assert_dns_record() {
assert "exec_on $1 $2 getent hosts $3 | tr -s ' '" "$4 $3"
assert "exec_on $1 $2 getent hosts $4 | tr -s ' '" "$4 $3"
host=$1
container=$2
name=$3
shift 3
exp_ips_regex=$(echo $@ | sed -r 's/ /\\\|/g')
[[ -z "$DEBUG" ]] || greyly echo "Checking wether $name exists at $host"
got_ip=$(exec_on $host $container getent hosts $name | tr -s ' ')
assert "echo \"$got_ip\" | grep -q \"$exp_ips_regex\" && echo found" "found"
[[ -z "$DEBUG" ]] || greyly echo "Checking wether the IPs \"$ips\" exists at $host"
for ip ; do
assert "exec_on $host $container getent hosts $ip | tr -s ' '" "$ip $name"
done
}
start_suite() {