Skip to content

Commit 6ced1de

Browse files
authored
feat(broker): Add start-up checker (#13931)
Signed-off-by: kiblik <5609770+kiblik@users.noreply.github.com>
1 parent 18f94d0 commit 6ced1de

9 files changed

Lines changed: 43 additions & 0 deletions

Dockerfile.django-alpine

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ COPY \
7878
docker/wait-for-it.sh \
7979
docker/secret-file-loader.sh \
8080
docker/reach_database.sh \
81+
docker/reach_broker.sh \
8182
docker/certs/* \
8283
/
8384
COPY wsgi.py manage.py docker/unit-tests.sh ./

Dockerfile.django-debian

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ COPY \
8181
docker/wait-for-it.sh \
8282
docker/secret-file-loader.sh \
8383
docker/reach_database.sh \
84+
docker/reach_broker.sh \
8485
docker/certs/* \
8586
/
8687
COPY wsgi.py manage.py docker/unit-tests.sh ./

Dockerfile.integration-tests-debian

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ COPY --from=openapitools /opt/openapi-generator/modules/openapi-generator-cli/ta
7373
COPY docker/wait-for-it.sh \
7474
docker/secret-file-loader.sh \
7575
docker/reach_database.sh \
76+
docker/reach_broker.sh \
7677
docker/entrypoint-integration-tests.sh \
7778
/
7879

docker/entrypoint-celery-beat.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ set -e # needed to handle "exit" correctly
44

55
. /secret-file-loader.sh
66
. /reach_database.sh
7+
. /reach_broker.sh
78

89
umask 0002
910

@@ -23,6 +24,7 @@ if [ "$NUM_FILES" -gt 0 ]; then
2324
fi
2425

2526
wait_for_database_to_be_reachable
27+
wait_for_broker_to_be_reachable
2628
echo
2729

2830
# do the check with Django stack

docker/entrypoint-celery-worker-dev.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ set -e # needed to handle "exit" correctly
77

88
. /secret-file-loader.sh
99
. /reach_database.sh
10+
. /reach_broker.sh
1011

1112
wait_for_database_to_be_reachable
13+
wait_for_broker_to_be_reachable
1214
echo
1315

1416
if [ "${DD_CELERY_WORKER_POOL_TYPE}" = "prefork" ]; then

docker/entrypoint-celery-worker.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ set -e # needed to handle "exit" correctly
77

88
. /secret-file-loader.sh
99
. /reach_database.sh
10+
. /reach_broker.sh
1011

1112
# Allow for bind-mount multiple settings.py overrides
1213
FILES=$(ls /app/docker/extra_settings/* 2>/dev/null || true)
@@ -22,6 +23,7 @@ if [ "$NUM_FILES" -gt 0 ]; then
2223
fi
2324

2425
wait_for_database_to_be_reachable
26+
wait_for_broker_to_be_reachable
2527
echo
2628

2729
if [ "${DD_CELERY_WORKER_POOL_TYPE}" = "prefork" ]; then

docker/entrypoint-uwsgi-dev.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ set -e # needed to handle "exit" correctly
44

55
. /secret-file-loader.sh
66
. /reach_database.sh
7+
. /reach_broker.sh
78

89
wait_for_database_to_be_reachable
10+
wait_for_broker_to_be_reachable
911
echo
1012

1113
cd /app || exit

docker/entrypoint-uwsgi.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ set -e # needed to handle "exit" correctly
33

44
. /secret-file-loader.sh
55
. /reach_database.sh
6+
. /reach_broker.sh
67

78
# Allow for bind-mount multiple settings.py overrides
89
FILES=$(ls /app/docker/extra_settings/* 2>/dev/null || true)
@@ -18,6 +19,7 @@ if [ "$NUM_FILES" -gt 0 ]; then
1819
fi
1920

2021
wait_for_database_to_be_reachable
22+
wait_for_broker_to_be_reachable
2123
echo
2224

2325
umask 0002

docker/reach_broker.sh

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/bash
2+
3+
wait_for_broker_to_be_reachable() {
4+
echo -n "Waiting for broker to be reachable "
5+
failure_count=0
6+
DD_BROKER_READINESS_TIMEOUT=${DD_BROKER_READINESS_TIMEOUT:-10}
7+
while true;
8+
do
9+
set +e
10+
celery --app=dojo status 2>/dev/null >/dev/null
11+
BROKER_TEST=$?
12+
set -e
13+
if [[ "$BROKER_TEST" == "0" ]]; then
14+
echo "Broker test was successful. Broker and at least one worker is connected."
15+
break
16+
fi
17+
if [[ "$BROKER_TEST" == "69" ]]; then
18+
echo "Broker test was successful. Broker is up. No worker is connected (but we are not testing that here)."
19+
break
20+
fi
21+
echo -n "."
22+
failure_count=$((failure_count + 1))
23+
if [ $DD_BROKER_READINESS_TIMEOUT = $failure_count ]; then
24+
echo "Broker test was failed:"
25+
# One more time with output
26+
celery --app=dojo status
27+
exit 1
28+
fi
29+
done
30+
}

0 commit comments

Comments
 (0)