@@ -10,6 +10,10 @@ function dnet_container_name() {
1010 echo dnet-$1 -$2
1111}
1212
13+ function dnet_container_ip() {
14+ docker inspect --format ' {{.NetworkSettings.IPAddress}}' dnet-$1 -$2
15+ }
16+
1317function get_sbox_id() {
1418 local line
1519
@@ -18,17 +22,17 @@ function get_sbox_id() {
1822}
1923
2024function net_connect() {
21- local al gl
22- if [ -n " $4 " ]; then
23- if [ " ${4} " != " :" ]; then
24- al=" --alias=${4} "
25- fi
26- fi
27- if [ -n " $5 " ]; then
28- gl=" --alias=${5} "
29- fi
30- dnet_cmd $( inst_id2port ${1} ) service publish $gl ${2} .${3}
31- dnet_cmd $( inst_id2port ${1} ) service attach $al ${2} ${2} .${3}
25+ local al gl
26+ if [ -n " $4 " ]; then
27+ if [ " ${4} " != " :" ]; then
28+ al=" --alias=${4} "
29+ fi
30+ fi
31+ if [ -n " $5 " ]; then
32+ gl=" --alias=${5} "
33+ fi
34+ dnet_cmd $( inst_id2port ${1} ) service publish $gl ${2} .${3}
35+ dnet_cmd $( inst_id2port ${1} ) service attach $al ${2} ${2} .${3}
3236}
3337
3438function net_disconnect() {
@@ -107,21 +111,24 @@ function parse_discovery_str() {
107111}
108112
109113function start_dnet() {
110- local inst suffix name hport cport hopt store bridge_ip labels tomlfile
114+ local inst suffix name hport cport hopt store bridge_ip labels tomlfile nip
111115 local discovery provider address
112116
113117 inst=$1
114118 shift
115119 suffix=$1
116120 shift
117121
118- stop_dnet ${inst} ${suffix}
119- name=$( dnet_container_name ${inst} ${suffix} )
122+ store=$( echo $suffix | cut -d" :" -f1)
123+ nip=$( echo $suffix | cut -s -d" :" -f2)
124+
125+
126+ stop_dnet ${inst} ${store}
127+ name=$( dnet_container_name ${inst} ${store} )
120128
121129 hport=$(( 41000 + ${inst} - 1 ))
122130 cport=2385
123131 hopt=" "
124- store=${suffix}
125132
126133 while [ -n " $1 " ]
127134 do
@@ -138,21 +145,32 @@ function start_dnet() {
138145
139146 bridge_ip=$( get_docker_bridge_ip)
140147
141- echo " start_dnet parsed values: " ${inst} ${suffix} ${name} ${hport} ${cport} ${hopt} ${store} ${labels}
148+ echo " start_dnet parsed values: " ${inst} ${suffix} ${name} ${hport} ${cport} ${hopt} ${store}
142149
143150 mkdir -p /tmp/dnet/${name}
144151 tomlfile=" /tmp/dnet/${name} /libnetwork.toml"
145152
146153 # Try discovery URLs with or without path
154+ neigh_ip=" "
155+ neighbors=" "
147156 if [ " $store " = " zookeeper" ]; then
148157 read discovery provider address < <( parse_discovery_str zk://${bridge_ip} :2182)
149158 elif [ " $store " = " etcd" ]; then
150159 read discovery provider address < <( parse_discovery_str etcd://${bridge_ip} :42000/custom_prefix)
151- else
160+ elif [ " $store " = " consul " ] ; then
152161 read discovery provider address < <( parse_discovery_str consul://${bridge_ip} :8500/custom_prefix)
162+ else
163+ if [ " $nip " != " " ]; then
164+ neighbors=" neighbors = [\" ${nip} :7946\" ]"
165+ fi
166+
167+ discovery=" "
168+ provider=" "
169+ address=" "
153170 fi
154171
155- cat > ${tomlfile} << EOF
172+ if [ " $discovery " != " " ]; then
173+ cat > ${tomlfile} << EOF
156174title = "LibNetwork Configuration file for ${name} "
157175
158176[daemon]
@@ -166,9 +184,22 @@ title = "LibNetwork Configuration file for ${name}"
166184 provider = "${provider} "
167185 address = "${address} "
168186EOF
187+ else
188+ cat > ${tomlfile} << EOF
189+ title = "LibNetwork Configuration file for ${name} "
190+
191+ [daemon]
192+ debug = false
193+ isagent = true
194+ bind = "eth0"
195+ ${neighbors}
196+ EOF
197+ fi
198+
169199 cat ${tomlfile}
170200 docker run \
171201 -d \
202+ --hostname=${name} \
172203 --name=${name} \
173204 --privileged \
174205 -p ${hport} :${cport} \
183214 wait_for_dnet $( inst_id2port ${inst} ) ${name}
184215}
185216
217+ function start_ovrouter() {
218+ local name=${1}
219+ local parent=${2}
220+
221+ docker run \
222+ -d \
223+ --name=${name} \
224+ --net=container:${parent} \
225+ --volumes-from ${parent} \
226+ -w /go/src/github.com/docker/libnetwork \
227+ mrjana/golang ./cmd/ovrouter/ovrouter eth0
228+ }
229+
186230function skip_for_circleci() {
187231 if [ -n " $CIRCLECI " ]; then
188232 skip
@@ -289,7 +333,7 @@ function test_overlay() {
289333 end=3
290334 # Setup overlay network and connect containers ot it
291335 if [ -z " ${2} " -o " ${2} " != " skip_add" ]; then
292- if [ -z " ${2} " -o " ${2} " != " internal" ]; then
336+ if [ -z " ${2} " -o " ${2} " != " internal" ]; then
293337 dnet_cmd $( inst_id2port 1) network create -d overlay multihost
294338 else
295339 dnet_cmd $( inst_id2port 1) network create -d overlay --internal multihost
@@ -307,7 +351,7 @@ function test_overlay() {
307351 do
308352 if [ -z " ${2} " -o " ${2} " != " internal" ]; then
309353 runc $( dnet_container_name $i $dnet_suffix ) $( get_sbox_id ${i} container_${i} ) \
310- " ping -c 1 www.google.com"
354+ " ping -c 1 www.google.com"
311355 else
312356 default_route=` runc $( dnet_container_name $i $dnet_suffix ) $( get_sbox_id ${i} container_${i} ) " ip route | grep default" `
313357 [ " $default_route " = " " ]
@@ -324,33 +368,33 @@ function test_overlay() {
324368
325369 # Setup bridge network and connect containers ot it
326370 if [ -z " ${2} " -o " ${2} " != " skip_add" ]; then
327- if [ -z " ${2} " -o " ${2} " != " internal" ]; then
371+ if [ -z " ${2} " -o " ${2} " != " internal" ]; then
328372 dnet_cmd $( inst_id2port 1) network create -d bridge br1
329373 dnet_cmd $( inst_id2port 1) network create -d bridge br2
330374 net_connect ${start} container_${start} br1
331375 net_connect ${start} container_${start} br2
332376
333- # Make sure external connectivity works
377+ # Make sure external connectivity works
334378 runc $( dnet_container_name ${start} $dnet_suffix ) $( get_sbox_id ${start} container_${start} ) \
335- " ping -c 1 www.google.com"
379+ " ping -c 1 www.google.com"
336380 net_disconnect ${start} container_${start} br1
337381 net_disconnect ${start} container_${start} br2
338382
339- # Make sure external connectivity works
383+ # Make sure external connectivity works
340384 runc $( dnet_container_name ${start} $dnet_suffix ) $( get_sbox_id ${start} container_${start} ) \
341- " ping -c 1 www.google.com"
385+ " ping -c 1 www.google.com"
342386 dnet_cmd $( inst_id2port 1) network rm br1
343387 dnet_cmd $( inst_id2port 1) network rm br2
344388
345- # Disconnect from overlay network
346- net_disconnect ${start} container_${start} multihost
389+ # Disconnect from overlay network
390+ net_disconnect ${start} container_${start} multihost
347391
348- # Connect to overlay network again
349- net_connect ${start} container_${start} multihost
392+ # Connect to overlay network again
393+ net_connect ${start} container_${start} multihost
350394
351- # Make sure external connectivity still works
352- runc $( dnet_container_name ${start} $dnet_suffix ) $( get_sbox_id ${start} container_${start} ) \
353- " ping -c 1 www.google.com"
395+ # Make sure external connectivity still works
396+ runc $( dnet_container_name ${start} $dnet_suffix ) $( get_sbox_id ${start} container_${start} ) \
397+ " ping -c 1 www.google.com"
354398 fi
355399 fi
356400
0 commit comments