Wait for a while when peers are probed
Change-Id: Ica916a491659e4254087d15691fbf0477a1de4cc
diff --git a/glusterfs/server/setup.sls b/glusterfs/server/setup.sls
index 8e96822..b029ba5 100644
--- a/glusterfs/server/setup.sls
+++ b/glusterfs/server/setup.sls
@@ -16,10 +16,21 @@
{%- if server.peers is defined %}
glusterfs_peers:
- glusterfs.peered:
- - names: {{ server.peers }}
- - require:
- - service: glusterfs_service
+ glusterfs.peered:
+ - names: {{ server.peers }}
+ - require:
+ - service: glusterfs_service
+
+{#-
+ `gluster peer probe` seems to be async, we need to give Gluster some time to
+ settle, especially on slower deployments. Otherwise later volume creations
+ may fail.
+#}
+glusterfs_peers_wait:
+ cmd.wait:
+ - name: sleep 5
+ - watch_in:
+ - glusterfs: glusterfs_peers
{%- endif %}
@@ -36,6 +47,8 @@
{%- if volume.stripe is defined %} stripe {{ volume.stripe }} \{% endif %}
{{ volume.bricks|join(' ') }} force
- unless: "gluster volume info {{ name }}"
+ - require:
+ - cmd: glusterfs_peers_wait
{%- else %}
@@ -52,7 +65,7 @@
- force: true
- start: true
- require:
- - glusterfs: glusterfs_peers
+ - cmd: glusterfs_peers_wait
- file: {{ volume.storage }}
{%- endif %}