refactor(validation): deduplicate hypervisor combine and collapse schema checks
This commit is contained in:
@@ -63,60 +63,22 @@
|
||||
fail_msg: "system.{{ item }} must be a dictionary."
|
||||
quiet: true
|
||||
|
||||
- name: Validate system.dns schema
|
||||
- name: Validate system sub-dict schemas
|
||||
loop:
|
||||
- dns
|
||||
- user
|
||||
- root
|
||||
- luks
|
||||
loop_control:
|
||||
label: "system.{{ item }}"
|
||||
vars:
|
||||
dns_allowed_keys: "{{ system_defaults.dns | dict2items | map(attribute='key') | list }}"
|
||||
dns_unknown: >-
|
||||
{{
|
||||
((system.dns | default({})) | dict2items | map(attribute='key') | list)
|
||||
| difference(dns_allowed_keys)
|
||||
}}
|
||||
sub_input: "{{ (system[item] | default({})) | dict2items | map(attribute='key') | list }}"
|
||||
sub_allowed: "{{ system_defaults[item] | dict2items | map(attribute='key') | list }}"
|
||||
sub_unknown: "{{ sub_input | difference(sub_allowed) }}"
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- dns_unknown | length == 0
|
||||
fail_msg: "Unsupported system.dns keys: {{ dns_unknown | join(', ') }}"
|
||||
quiet: true
|
||||
|
||||
- name: Validate system.user schema
|
||||
vars:
|
||||
user_allowed_keys: "{{ system_defaults.user | dict2items | map(attribute='key') | list }}"
|
||||
user_unknown: >-
|
||||
{{
|
||||
((system.user | default({})) | dict2items | map(attribute='key') | list)
|
||||
| difference(user_allowed_keys)
|
||||
}}
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- user_unknown | length == 0
|
||||
fail_msg: "Unsupported system.user keys: {{ user_unknown | join(', ') }}"
|
||||
quiet: true
|
||||
|
||||
- name: Validate system.root schema
|
||||
vars:
|
||||
root_allowed_keys: "{{ system_defaults.root | dict2items | map(attribute='key') | list }}"
|
||||
root_unknown: >-
|
||||
{{
|
||||
((system.root | default({})) | dict2items | map(attribute='key') | list)
|
||||
| difference(root_allowed_keys)
|
||||
}}
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- root_unknown | length == 0
|
||||
fail_msg: "Unsupported system.root keys: {{ root_unknown | join(', ') }}"
|
||||
quiet: true
|
||||
|
||||
- name: Validate system.luks schema
|
||||
vars:
|
||||
luks_allowed_keys: "{{ system_defaults.luks | dict2items | map(attribute='key') | list }}"
|
||||
luks_unknown: >-
|
||||
{{
|
||||
((system.luks | default({})) | dict2items | map(attribute='key') | list)
|
||||
| difference(luks_allowed_keys)
|
||||
}}
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- luks_unknown | length == 0
|
||||
fail_msg: "Unsupported system.luks keys: {{ luks_unknown | join(', ') }}"
|
||||
- sub_unknown | length == 0
|
||||
fail_msg: "Unsupported system.{{ item }} keys: {{ sub_unknown | join(', ') }}"
|
||||
quiet: true
|
||||
|
||||
- name: Validate system.luks.tpm2 schema
|
||||
|
||||
Reference in New Issue
Block a user