docker-keepalived/test/test_helper.bash

112 lines
1.9 KiB
Bash
Raw Normal View History

2015-06-09 18:41:43 +00:00
setup() {
IMAGE_NAME="$NAME:$VERSION"
}
2015-07-17 07:23:24 +00:00
# function relative to the current container / image
2015-06-09 18:41:43 +00:00
build_image() {
#disable outputs
docker build -t $IMAGE_NAME $BATS_TEST_DIRNAME/../image &> /dev/null
}
run_image() {
CONTAINER_ID=$(docker run $@ -d $IMAGE_NAME)
CONTAINER_IP=$(get_container_ip_by_cid $CONTAINER_ID)
}
start_container() {
start_containers_by_cid $CONTAINER_ID
}
stop_container() {
stop_containers_by_cid $CONTAINER_ID
}
remove_container() {
remove_containers_by_cid $CONTAINER_ID
}
clear_container() {
stop_containers_by_cid $CONTAINER_ID
remove_containers_by_cid $CONTAINER_ID
}
is_service_running() {
is_service_running_by_cid $CONTAINER_ID $1
}
2015-07-17 07:23:24 +00:00
is_file_exists() {
is_file_exists_by_cid $CONTAINER_ID $1
}
2015-06-09 18:41:43 +00:00
wait_service() {
wait_service_by_cid $CONTAINER_ID $@
}
2015-07-17 07:23:24 +00:00
# generic functions
2015-06-09 18:41:43 +00:00
get_container_ip_by_cid() {
local IP=$(docker inspect -f "{{ .NetworkSettings.IPAddress }}" $1)
echo "$IP"
}
start_containers_by_cid() {
for cid in "$@"
do
#disable outputs
docker start $cid &> /dev/null
2015-07-17 07:23:24 +00:00
done
2015-06-09 18:41:43 +00:00
}
stop_containers_by_cid() {
for cid in "$@"
do
#disable outputs
docker stop $cid &> /dev/null
2015-07-17 07:23:24 +00:00
done
2015-06-09 18:41:43 +00:00
}
remove_containers_by_cid() {
for cid in "$@"
do
#disable outputs
docker rm $cid &> /dev/null
2015-07-17 07:23:24 +00:00
done
2015-06-09 18:41:43 +00:00
}
clear_containers_by_cid() {
stop_containers_by_cid $@
remove_containers_by_cid $@
}
is_service_running_by_cid() {
docker exec $1 ps cax | grep $2 > /dev/null
}
2015-07-17 07:23:24 +00:00
is_file_exists_by_cid() {
docker exec $1 cat "/etc/my_init_startup_files_completed" > /dev/null 2>&1
}
2015-06-09 18:41:43 +00:00
wait_service_by_cid() {
cid=$1
2015-07-17 07:23:24 +00:00
sleep 1
2015-06-09 18:41:43 +00:00
# first wait image init end
2015-07-17 07:23:24 +00:00
while ! is_file_exists_by_cid $cid /etc/my_init_startup_files_completed
2015-06-09 18:41:43 +00:00
do
sleep 1
done
for service in "${@:2}"
do
# wait service
while ! is_service_running_by_cid $cid $service
do
sleep 1
done
done
sleep 5
2015-07-17 07:23:24 +00:00
}