Mount volumes after glusterfs-server

Change-Id: I0e7f44378cbb80f3714977e25dd8aa2f3e76019f
diff --git a/glusterfs/files/glusterfs-client.mount b/glusterfs/files/glusterfs-client.mount
index 9df87d7..4838a88 100644
--- a/glusterfs/files/glusterfs-client.mount
+++ b/glusterfs/files/glusterfs-client.mount
@@ -1,6 +1,12 @@
 [Unit]
 Description=GlusterFS File System ({{ device }})
 DefaultDependencies=yes
+{%- if pillar.glusterfs.server is defined %}
+{% from "glusterfs/map.jinja" import server with context %}
+{%- if server.enabled %}
+After={{ server.service }}.service
+{%- endif %}
+{%- endif %}
 
 [Mount]
 What={{ device }}
diff --git a/glusterfs/server/service.sls b/glusterfs/server/service.sls
index 0d9ccae..2db785c 100644
--- a/glusterfs/server/service.sls
+++ b/glusterfs/server/service.sls
@@ -12,6 +12,18 @@
     - require:
       - pkg: glusterfs_packages
 
+{%- if grains.get('init', None) == 'systemd' %}
+{#- We need to give glusterfs-server time to start volumes. This little hacks
+ensures that mount will pass on boot when no other servers are available #}
+glusterfs_server_systemd_override:
+  file.managed:
+    - name: /etc/systemd/system/{{ server.service }}.service.d/override.conf
+    - makedirs: true
+    - contents: |
+        [Service]
+        ExecStartPost=/bin/sleep 10
+{%- endif %}
+
 {%- if server.volumes is defined %}
 {%- for name, volume in server.volumes.iteritems() %}