Fix wait-for stack hooks
Change-Id: Ica50a71bf5c9bf4aa88705c1d78dc658dd5264a4
diff --git a/docker/client/stack.sls b/docker/client/stack.sls
index 8bf7ae8..329fd97 100644
--- a/docker/client/stack.sls
+++ b/docker/client/stack.sls
@@ -71,16 +71,21 @@
docker_stack_{{ app }}:
cmd.run:
- name: >
+ retry=5
i=1;
- while [ $i -lt 5 ]; do
- docker stack deploy --compose-file docker-compose.yml {{ app }};
- ret=$?;
- [ $ret -eq 0 ] && exit 0;
- echo "Stack creation failed, retrying in 3 seconds.." >&2;
- sleep 3;
- i=$[ $i + 1 ];
- exit 1;
- done
+ while [[ $i -lt $retry ]]; do
+ docker stack deploy --compose-file docker-compose.yml {{ app }};
+ ret=$?;
+ if [[ $ret -eq 0 ]]; then echo 'Stack created'; break;
+ else
+ echo "Stack creation failed, retrying in 3 seconds.." >&2;
+ sleep 3;
+ i=$(( i + 1 ));
+ fi;
+ if [[ $i -ge $retry ]]; then
+ echo "Stack creation failed!"; exit 1;
+ fi;
+ done;
- shell: /bin/bash
- cwd: {{ client.compose.base }}/{{ app }}
- user: {{ compose.user|default("root") }}
@@ -92,16 +97,21 @@
docker_stack_{{ app }}_update:
cmd.wait:
- name: >
+ retry=5
i=1;
- while [ $i -lt 5 ]; do
- docker stack deploy --compose-file docker-compose.yml {{ app }};
- ret=$?;
- [ $ret -eq 0 ] && exit 0;
- echo "Stack update failed, retrying in 3 seconds.." >&2;
- sleep 3;
- i=$[ $i + 1 ];
- exit 1;
- done
+ while [[ $i -lt $retry ]]; do
+ docker stack deploy --compose-file docker-compose.yml {{ app }};
+ ret=$?;
+ if [[ $ret -eq 0 ]]; then echo 'Stack updated'; break;
+ else
+ echo "Stack update failed, retrying in 3 seconds.." >&2;
+ sleep 3;
+ i=$(( i + 1 ));
+ fi;
+ if [[ $i -ge $retry ]]; then
+ echo "Stack update failed!"; exit 1;
+ fi;
+ done;
- shell: /bin/bash
- cwd: {{ client.compose.base }}/{{ app }}
- user: {{ compose.user|default("root") }}