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
|
|
|
|
}
|