diff --git a/tomcat/map.jinja b/tomcat/map.jinja
index 987ca2423532d87a274a7f4b0e5f3d0a628578f2..ba7902d6c326680f88ec229db1c8fc810640d7c9 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 bc5bcd983540044fb1224970fb8d29a7afb96279..e86ac6b4ad2f4765f1f950f5122fa2176ac2fb37 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 9e4d14980c9383aee49e7d16c506cdcd757e1398..16188aa400476bda84bbdc81a2823b29c13da103 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