123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- # -*- mode: sh -*-
- #!/usr/bin/env bats
- load helpers
- function is_network_exist() {
- line=$(dnet_cmd $(inst_id2port $1) network ls | grep ${2})
- name=$(echo ${line} | cut -d" " -f2)
- driver=$(echo ${line} | cut -d" " -f3)
- if [ "$name" == "$2" -a "$driver" == "$3" ]; then
- echo "true"
- else
- echo "false"
- fi
- }
- @test "Test multinode network create" {
- echo $(docker ps)
- for i in `seq 1 3`;
- do
- oname="mh$i"
- run dnet_cmd $(inst_id2port $i) network create -d test ${oname}
- echo ${output}
- [ "$status" -eq 0 ]
- for j in `seq 1 3`;
- do
- result=$(is_network_exist $j ${oname} test)
- [ "$result" = "true" ]
- done
- # Always try to remove the network from the second node
- dnet_cmd $(inst_id2port 2) network rm ${oname}
- echo "delete ${oname}"
- nresult=$(is_network_exist 1 ${oname} test)
- echo ${nresult}
- dnet_cmd $(inst_id2port 1) network ls
- [ "$nresult" = "false" ]
- done
- }
- @test "Test multinode service create" {
- echo $(docker ps)
- dnet_cmd $(inst_id2port 1) network create -d test multihost
- for i in `seq 1 3`;
- do
- oname="svc$i"
- run dnet_cmd $(inst_id2port $i) service publish ${oname}.multihost
- echo ${output}
- [ "$status" -eq 0 ]
- for j in `seq 1 3`;
- do
- run dnet_cmd $(inst_id2port $j) service ls
- [ "$status" -eq 0 ]
- echo ${output}
- echo ${lines[1]}
- svc=$(echo ${lines[1]} | cut -d" " -f2)
- network=$(echo ${lines[1]} | cut -d" " -f3)
- echo ${svc} ${network}
- [ "$network" = "multihost" ]
- [ "$svc" = "${oname}" ]
- done
- dnet_cmd $(inst_id2port 2) service unpublish ${oname}.multihost
- done
- dnet_cmd $(inst_id2port 3) network rm multihost
- }
- @test "Test multinode service attach" {
- echo $(docker ps)
- dnet_cmd $(inst_id2port 2) network create -d test multihost
- dnet_cmd $(inst_id2port 3) service publish svc.multihost
- for i in `seq 1 3`;
- do
- dnet_cmd $(inst_id2port $i) container create container_${i}
- dnet_cmd $(inst_id2port $i) service attach container_${i} svc.multihost
- run dnet_cmd $(inst_id2port $i) service ls
- [ "$status" -eq 0 ]
- echo ${output}
- echo ${lines[1]}
- container=$(echo ${lines[1]} | cut -d" " -f4)
- [ "$container" = "container_$i" ]
- for j in `seq 1 3`;
- do
- if [ "$j" = "$i" ]; then
- continue
- fi
- dnet_cmd $(inst_id2port $j) container create container_${j}
- run dnet_cmd $(inst_id2port $j) service attach container_${j} svc.multihost
- echo ${output}
- [ "$status" -ne 0 ]
- dnet_cmd $(inst_id2port $j) container rm container_${j}
- done
- dnet_cmd $(inst_id2port $i) service detach container_${i} svc.multihost
- dnet_cmd $(inst_id2port $i) container rm container_${i}
- done
- dnet_cmd $(inst_id2port 1) service unpublish svc.multihost
- dnet_cmd $(inst_id2port 3) network rm multihost
- }
- @test "Test multinode network and service delete" {
- echo $(docker ps)
- for i in `seq 1 3`;
- do
- oname="mh$i"
- osvc="svc$i"
- dnet_cmd $(inst_id2port $i) network create -d test ${oname}
- dnet_cmd $(inst_id2port $i) service publish ${osvc}.${oname}
- dnet_cmd $(inst_id2port $i) container create container_${i}
- dnet_cmd $(inst_id2port $i) network ls
- dnet_cmd $(inst_id2port $i) service attach container_${i} ${osvc}.${oname}
- for j in `seq 1 3`;
- do
- run dnet_cmd $(inst_id2port $i) service unpublish ${osvc}.${oname}
- echo ${output}
- [ "$status" -ne 0 ]
- run dnet_cmd $(inst_id2port $j) network rm ${oname}
- echo ${output}
- [ "$status" -ne 0 ]
- done
- dnet_cmd $(inst_id2port $i) service detach container_${i} ${osvc}.${oname}
- dnet_cmd $(inst_id2port $i) container rm container_${i}
- # Always try to remove the service from different nodes
- dnet_cmd $(inst_id2port 2) service unpublish ${osvc}.${oname}
- dnet_cmd $(inst_id2port 3) network rm ${oname}
- done
- }
|