Add glusterd service init script for old glusterfs packages

In version >=3.11.3 of glusterfs package (on Debian) 'glusterfs-server'
service name has been changed to 'glusterd'. To keep things simple
the patch creates a symlink named '/etc/init.d/glusterd' which is
pointing out to /etc/init.d/glusterfs-server script for old version of
glusterfs package so 'glusterd.service' service name can be used for
old and new versions of glusterfs.

Change-Id: I522f675782462ccf048343e1a5734f9fb06ba342
Related: PROD-29356
diff --git a/glusterfs/map.jinja b/glusterfs/map.jinja
index 91f46fb..96c673a 100644
--- a/glusterfs/map.jinja
+++ b/glusterfs/map.jinja
@@ -1,14 +1,7 @@
-{# Backward compatibility issue, remove when old versions (<3.11.3) are not used any more #}
-{% if salt['pkg.version_cmp'](salt['pkg.version']('glusterfs-server'), '3.11.3') >= 0 %}
-    {% set systemd_service = 'glusterd' %}
-{% else %}
-    {% set systemd_service = 'glusterfs-server' %}
-{% endif %}
-
 {% set server = salt['grains.filter_by']({
     'Debian': {
         'pkgs': ['glusterfs-server','bc', 'attr'],
-        'service': systemd_service,
+        'service': 'glusterd',
     },
     'RedHat': {
         'pkgs': ['glusterfs-server','bc'],
diff --git a/glusterfs/server/service.sls b/glusterfs/server/service.sls
index 15c3f92..e12f660 100644
--- a/glusterfs/server/service.sls
+++ b/glusterfs/server/service.sls
@@ -6,6 +6,25 @@
   pkg.installed:
     - names: {{ server.pkgs }}
 
+{# Backward compatibility issue, remove when old versions (<3.11.3) are not used any more #}
+  {% if salt['file.file_exists']('/etc/init.d/glusterfs-server') %}
+glusterfs_service_symlink:
+  file.symlink:
+    - name: /etc/init.d/glusterd
+    - target: /etc/init.d/glusterfs-server
+    - require:
+      - pkg: glusterfs_packages
+    - require_in:
+      - service: glusterfs_service
+
+stop_old_glusterfs_service:
+  service.dead:
+    - name: glusterfs-server
+    - enable: False
+    - onchanges:
+      - file: glusterfs_service_symlink
+  {% endif %}
+
   {%- if server.recover_peers is defined %}
     {%- for peer_name, peer_data in server.recover_peers.iteritems() %}
       {%- if peer_data.get('enabled', False) and grains.get('fqdn', 'unknown') == peer_name %}
@@ -29,7 +48,7 @@
 glusterfs_sleep:
   cmd.wait:
     - name: sleep 5
-    - watch-in:
+    - watch_in:
       - service: stop_glusterfs_service
 
       {%- endif %}
@@ -39,6 +58,7 @@
 glusterfs_service:
   service.running:
     - name: {{ server.service }}
+    - enable: true
     - require:
       - pkg: glusterfs_packages
 
@@ -52,6 +72,9 @@
     - contents: |
         [Service]
         ExecStartPost=/bin/sleep 5
+        RemainAfterExit=no
+    - require_in:
+      - service: glusterfs_service
   {%- endif %}
 
   {%- if server.volumes is defined %}