refactor(config): minimise and standardise between `.sls` & `.tst`
This commit is contained in:
parent
cce5e67c33
commit
18585bdc90
|
@ -5,23 +5,21 @@
|
|||
{%- set tplroot = tpldir.split('/')[0] %}
|
||||
{%- from tplroot ~ "/map.jinja" import cron with context %}
|
||||
|
||||
{%- if 'tasks' in cron %}
|
||||
{%- for task, task_options in cron.tasks.items() %}
|
||||
{%- for task, task_options in cron.get('tasks', {}).items() %}
|
||||
{%- set cron_type = task_options.type|d('present') %}
|
||||
|
||||
cron.{{ task }}:
|
||||
cron.{{ task_options.type|d('present') }}:
|
||||
cron.{{ cron_type }}:
|
||||
- name: {{ task_options.name }}
|
||||
- identifier: '{{ task }}'
|
||||
{%- if 'user' in task_options %}
|
||||
- user: {{ task_options.user|d('root') }}
|
||||
{%- endif %}
|
||||
- identifier: '{{ task }}'
|
||||
{%- if cron_type == 'present' %}
|
||||
- commented: {{ task_options.commented|d(False) }}
|
||||
{%- for section in ['minute', 'hour', 'daymonth', 'month', 'dayweek', 'comment', 'special'] %}
|
||||
{%- if section in task_options %}
|
||||
- {{ section }}: '{{ task_options.get(section) }}'
|
||||
- {{ section }}: '{{ task_options[section] }}'
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- if task_options.commented|d(False) %}
|
||||
- commented: True
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
||||
{%- endfor %}
|
||||
|
|
|
@ -3,59 +3,45 @@
|
|||
|
||||
{%- set cron = salt['pillar.get']('cron', {}) %}
|
||||
|
||||
{%- if 'tasks' in cron %}
|
||||
{%- for task, task_options in cron.tasks.items() %}
|
||||
{%- for task, task_options in cron.get('tasks', {}).items() %}
|
||||
{%- set cron_type = task_options.type|d('present') %}
|
||||
|
||||
{%- if task_options.type == 'absent' %}
|
||||
validate_cron.{{ task }}_absent:
|
||||
validate_cron.{{ task }}_{{ cron_type }}:
|
||||
module_and_function: cron.get_entry
|
||||
args:
|
||||
- {{ task_options.user|d('root') }}
|
||||
- {{ task }}
|
||||
{%- if cron_type == 'absent' %}
|
||||
assertion: assertFalse
|
||||
|
||||
{%- elif task_options.type == 'present' %}
|
||||
validate_cron.{{ task }}_exists:
|
||||
module_and_function: cron.get_entry
|
||||
args:
|
||||
- {{ task_options.user|d('root') }}
|
||||
- {{ task }}
|
||||
{%- else %}
|
||||
assertion: assertEqual
|
||||
assertion_section: identifier
|
||||
expected-return: {{ task }}
|
||||
{%- endif %}
|
||||
|
||||
{#- Note: `special` is `spec` in the module #}
|
||||
{%- for section in ['minute', 'hour', 'daymonth', 'month', 'dayweek', 'comment', 'spec'] %}
|
||||
{%- if section in task_options %}
|
||||
{%- set assertion = 'assertEqual' %}
|
||||
{%- set expected = task_options.get(section) %}
|
||||
{%- if expected == 'random' %}
|
||||
{%- set assertion = 'assertLessEqual' %}
|
||||
{%- set expected = 0 %}
|
||||
{%- endif %}
|
||||
validate_cron.{{ task }}_{{ section }}:
|
||||
module_and_function: cron.get_entry
|
||||
args:
|
||||
- {{ task_options.user|d('root') }}
|
||||
- {{ task }}
|
||||
assertion: {{ assertion }}
|
||||
assertion_section: {{ section }}
|
||||
expected-return: '{{ expected }}'
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
|
||||
{%- set assertion = 'assertFalse' %}
|
||||
{%- if task_options.commented|d(False) %}
|
||||
{%- set assertion = 'assertTrue' %}
|
||||
{%- endif %}
|
||||
{%- if cron_type == 'present' %}
|
||||
validate_cron.{{ task }}_commented:
|
||||
module_and_function: cron.get_entry
|
||||
args:
|
||||
- {{ task_options.user|d('root') }}
|
||||
- {{ task }}
|
||||
assertion: {{ assertion }}
|
||||
assertion: {{ 'assertTrue' if task_options.commented|d(False) else 'assertFalse' }}
|
||||
assertion_section: commented
|
||||
|
||||
{#- Note: `special` is `spec` in the module #}
|
||||
{%- for section in ['minute', 'hour', 'daymonth', 'month', 'dayweek', 'comment', 'spec'] %}
|
||||
{%- if section in task_options %}
|
||||
{%- set expected = task_options[section] %}
|
||||
validate_cron.{{ task }}_{{ section }}:
|
||||
module_and_function: cron.get_entry
|
||||
args:
|
||||
- {{ task_options.user|d('root') }}
|
||||
- {{ task }}
|
||||
assertion: {{ 'assertLessEqual' if expected == 'random' else 'assertEqual' }}
|
||||
assertion_section: {{ section }}
|
||||
expected-return: '{{ 0 if expected == 'random' else expected }}'
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
|
|
@ -1,47 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# vim: ft=jinja
|
||||
|
||||
{#- Start imports as #}
|
||||
{%- import_yaml "cron" ~ "/defaults.yaml" as default_settings %}
|
||||
{%- import_yaml "cron" ~ "/osarchmap.yaml" as osarchmap %}
|
||||
{%- import_yaml "cron" ~ "/osfamilymap.yaml" as osfamilymap %}
|
||||
{%- import_yaml "cron" ~ "/osmap.yaml" as osmap %}
|
||||
{%- import_yaml "cron" ~ "/osfingermap.yaml" as osfingermap %}
|
||||
|
||||
{#- Retrieve the config dict only once #}
|
||||
{%- set _config = salt['config.get']("cron", default={}) %}
|
||||
|
||||
{%- set defaults = salt['grains.filter_by'](
|
||||
default_settings,
|
||||
default="cron",
|
||||
merge=salt['grains.filter_by'](
|
||||
osarchmap,
|
||||
grain='osarch',
|
||||
merge=salt['grains.filter_by'](
|
||||
osfamilymap,
|
||||
grain='os_family',
|
||||
merge=salt['grains.filter_by'](
|
||||
osmap,
|
||||
grain='os',
|
||||
merge=salt['grains.filter_by'](
|
||||
osfingermap,
|
||||
grain='osfinger',
|
||||
merge=salt['grains.filter_by'](
|
||||
_config,
|
||||
default='lookup'
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
%}
|
||||
|
||||
{%- set config = salt['grains.filter_by'](
|
||||
{'defaults': defaults},
|
||||
default='defaults',
|
||||
merge=_config
|
||||
)
|
||||
%}
|
||||
|
||||
{%- set cron = config %}
|
Loading…
Reference in New Issue