docker kill: wait until containers are stopped

As "docker kill" / "docker container kill" (alias) doesn't block until
the given container stops, make sure to always run "docker wait"
afterwards.

Closes: OS#5928
Change-Id: I0242ece96541d8036ebbf8b0f498ebf231db26b5
This commit is contained in:
Oliver Smith 2023-02-28 17:59:17 +01:00 committed by osmith
parent c163d5d854
commit 4f459b779e
9 changed files with 27 additions and 19 deletions

View File

@ -190,9 +190,19 @@ docker_images_require() {
done
}
# Kill a docker container and ensure it has actually stopped (OS#5928)
docker_kill_wait() {
docker kill "$@"
docker wait "$@" || true
}
#kills all containers attached to network
network_clean() {
docker network inspect $NET_NAME | grep Name | cut -d : -f2 | awk -F\" 'NR>1{print $2}' | xargs -rn1 docker kill
local containers="$(docker network inspect $NET_NAME | grep Name | cut -d : -f2 | awk -F\" 'NR>1{print $2}')"
if [ -n "$containers" ]; then
docker_kill_wait $containers
fi
}
# Create network and find a free subnet automatically. The global variables

View File

@ -28,6 +28,6 @@ docker run --rm \
echo Stopping containers
docker container kill osmo-cn
docker_kill_wait osmo-cn
network_remove

View File

@ -68,9 +68,7 @@ run_image() {
}
kill_containers() {
for i in "${docker_names[@]}"; do
docker kill $i
done
docker_kill_wait "${docker_names[@]}"
}
remove_networks() {

View File

@ -51,6 +51,6 @@ ${OSMO_INTERACT_VTY} \
-H "172.18.$SUBNET.23" \
-O "$VTYFILE"
docker container kill "${BUILD_TAG}-$NAME-$IMAGE_SUFFIX"
docker_kill_wait "${BUILD_TAG}-$NAME-$IMAGE_SUFFIX"
network_remove

View File

@ -168,9 +168,9 @@ start_testsuite generic
# 2) some GPRS tests require virt_phy
echo "Changing to virtphy configuration"
# switch from osmo-bts-trx + trxcon + faketrx to virtphy + osmo-bts-virtual
docker container kill ${BUILD_TAG}-trxcon
docker container kill ${BUILD_TAG}-fake_trx
docker container kill ${BUILD_TAG}-bts
docker_kill_wait ${BUILD_TAG}-trxcon
docker_kill_wait ${BUILD_TAG}-fake_trx
docker_kill_wait ${BUILD_TAG}-bts
cp virtphy/osmo-bts.gen.cfg $VOL_BASE_DIR/bts/
network_replace_subnet_in_configs
start_bts virtual 0
@ -179,10 +179,10 @@ start_virtphy
#start_testsuite virtphy
# 3) OML tests require us to run without BSC
docker container kill ${BUILD_TAG}-bsc
docker_kill_wait ${BUILD_TAG}-bsc
# switch back from virtphy + osmo-bts-virtual to osmo-bts-trx
docker container kill ${BUILD_TAG}-virtphy
docker container kill ${BUILD_TAG}-bts
docker_kill_wait ${BUILD_TAG}-virtphy
docker_kill_wait ${BUILD_TAG}-bts
cp oml/osmo-bts.gen.cfg $VOL_BASE_DIR/bts/
network_replace_subnet_in_configs
@ -196,7 +196,7 @@ start_testsuite oml
cp fh/osmo-bsc.gen.cfg $VOL_BASE_DIR/bsc/
cp generic/osmo-bts.gen.cfg $VOL_BASE_DIR/bts/
# restart the BSC/BTS and run the testsuite again
docker container kill ${BUILD_TAG}-bts
docker_kill_wait ${BUILD_TAG}-bts
network_replace_subnet_in_configs
start_bsc
start_bts trx 1

View File

@ -10,7 +10,7 @@ set -e
clean_up() {
# kill the frnet container to avoid "You cannot remove a running container " below in 'rm'
docker kill ${BUILD_TAG}-frnet || true
docker_kill_wait ${BUILD_TAG}-frnet || true
# store execution logs for both containers
docker logs --timestamps ${BUILD_TAG}-ttcn3-fr-test > $VOL_BASE_DIR/fr-tester/exec.log || true

View File

@ -74,8 +74,8 @@ run_tests() {
$REPO_USER/ttcn3-hnbgw-test
echo Stopping containers
docker container kill ${BUILD_TAG}-hnbgw
docker container kill ${BUILD_TAG}-stp
docker_kill_wait ${BUILD_TAG}-hnbgw
docker_kill_wait ${BUILD_TAG}-stp
}
echo Testing without PFCP

View File

@ -45,4 +45,4 @@ docker run --rm \
$REPO_USER/ttcn3-hnodeb-test
echo Stopping containers
docker container kill ${BUILD_TAG}-hnodeb
docker_kill_wait ${BUILD_TAG}-hnodeb

View File

@ -80,7 +80,7 @@ write_mp_osmo_repo "$VOL_BASE_DIR/remsim-tester/REMSIM_Tests.cfg"
network_replace_subnet_in_configs
start_server
start_testsuite
docker container kill ${BUILD_TAG}-server
docker_kill_wait ${BUILD_TAG}-server
# 2) bankd test suite
echo "Changing to bankd configuration"
@ -89,7 +89,7 @@ write_mp_osmo_repo "$VOL_BASE_DIR/remsim-tester/REMSIM_Tests.cfg"
network_replace_subnet_in_configs
start_bankd
start_testsuite
docker container kill ${BUILD_TAG}-bankd
docker_kill_wait ${BUILD_TAG}-bankd
# 3) client test suite
echo "Changing to client configuration"