From d1bb84fdf0c788044ff6b72d45c7dc033346aac6 Mon Sep 17 00:00:00 2001
From: Danny Smit <danny.smit@saabgroup.com>
Date: Thu, 16 Apr 2020 15:52:55 +0200
Subject: [PATCH] refactor(map.jinja): use `template-formula` structure & add
 `debian-10`

---
 tomcat/map.jinja                              | 50 ++++++++++++-------
 tomcat/{osmap.yaml => osfamilymap.yaml}       |  4 --
 tomcat/{codenamemap.yaml => osfingermap.yaml} | 13 ++++-
 3 files changed, 43 insertions(+), 24 deletions(-)
 rename tomcat/{osmap.yaml => osfamilymap.yaml} (94%)
 rename tomcat/{codenamemap.yaml => osfingermap.yaml} (72%)

diff --git a/tomcat/map.jinja b/tomcat/map.jinja
index 987ca24..ba7902d 100644
--- a/tomcat/map.jinja
+++ b/tomcat/map.jinja
@@ -1,25 +1,39 @@
 # -*- coding: utf-8 -*-
 # vim: ft=jinja
 
-{% import_yaml "tomcat/defaults.yaml" as defaults %}
-{% import_yaml "tomcat/osmap.yaml" as osmap %}
-{% import_yaml "tomcat/codenamemap.yaml" as codemap %}
+{#- Get the `tplroot` from `tpldir` #}
+{%- set tplroot = tpldir.split('/')[0] %}
+{#- Start imports as #}
+{%- import_yaml tplroot ~ "/defaults.yaml" as default_settings %}
+{%- import_yaml tplroot ~ "/osfamilymap.yaml" as osfamilymap %}
+{%- import_yaml tplroot ~ "/osfingermap.yaml" as osfingermap %}
 
-{# get the settings for the os_family grain #}
-{% set osfam = salt['grains.filter_by'](osmap) or {} %}
-{# get the settings for the oscodename grain, os_family data will override
-    oscodename data #}
-{% set oscode = salt['grains.filter_by'](codemap,
-                                         grain='oscodename',
-                                         merge=osfam) or {} %}
+{#- Retrieve the config dict only once #}
+{%- set _config = salt['config.get'](tplroot, default={}) %}
 
-{# merge the os family/codename specific data over the defaults #}
-{% do defaults.tomcat.update(oscode) %}
+{%- set defaults = salt['grains.filter_by'](
+      default_settings,
+      default=tplroot,
+      merge=salt['grains.filter_by'](
+        osfamilymap,
+        grain='os_family',
+        merge=salt['grains.filter_by'](
+          osfingermap,
+          grain='osfinger',
+          merge=salt['grains.filter_by'](
+            _config,
+            default='lookup'
+          )
+        )
+      )
+    )
+%}
 
-{# merge the pillar:lookup dict into the defaults/os specific dict #}
-{% set lookup = salt['pillar.get']('tomcat:lookup',
-                                   default=defaults.tomcat,
-                                   merge=True) %}
+{%- set config = salt['grains.filter_by'](
+      {'defaults': defaults},
+      default='defaults',
+      merge=_config
+    )
+%}
 
-{# merge the actual tomcat pillar into the above combined dict #}
-{% set tomcat = salt['pillar.get']('tomcat', default=lookup, merge=True) %}
+{%- set tomcat = config %}
diff --git a/tomcat/osmap.yaml b/tomcat/osfamilymap.yaml
similarity index 94%
rename from tomcat/osmap.yaml
rename to tomcat/osfamilymap.yaml
index bc5bcd9..e86ac6b 100644
--- a/tomcat/osmap.yaml
+++ b/tomcat/osfamilymap.yaml
@@ -19,10 +19,6 @@ RedHat:
   native_pkg: tomcat-native
   manager_pkg: tomcat-admin-webapps
   main_config_template: salt://tomcat/files/tomcat-default-CentOS.template
-CentOS:
-  native_pkg: tomcat-native
-  manager_pkg: tomcat-admin-webapps
-  main_config_template: salt://tomcat/files/tomcat-default-CentOS.template
 openSUSE:
   ver: 8
   native_pkg: libtcnative-1-0
diff --git a/tomcat/codenamemap.yaml b/tomcat/osfingermap.yaml
similarity index 72%
rename from tomcat/codenamemap.yaml
rename to tomcat/osfingermap.yaml
index 9e4d149..16188aa 100644
--- a/tomcat/codenamemap.yaml
+++ b/tomcat/osfingermap.yaml
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 # vim: ft=yaml
 ---
-trusty:
+Ubuntu-14.04:
   ver: 7
   pkg: tomcat7
   manager_pkg: tomcat7-admin
@@ -11,7 +11,7 @@ trusty:
   service: tomcat7
   user: tomcat7
   group: tomcat7
-wheezy:
+Debian-7:
   pkg: tomcat7
   manager_pkg: tomcat7-admin
   conf_dir: /etc/tomcat7
@@ -20,3 +20,12 @@ wheezy:
   service: tomcat7
   user: tomcat7
   group: tomcat7
+Debian-10:
+  ver: 9
+  pkg: tomcat9
+  manager_pkg: tomcat9-admin
+  conf_dir: /etc/tomcat9
+  main_config: /etc/default/tomcat9
+  service: tomcat9
+  user: tomcat
+  group: tomcat
-- 
GitLab