# platform = multi_platform_almalinux,multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_rhv,SUSE Linux Enterprise 15,SUSE Linux Enterprise 16
# reboot = false
# strategy = enable
# complexity = low
# disruption = low

{{% if product in ['ol8', 'ol9', 'rhel8', 'rhel9', 'rhel10'] %}}
{{% set PACKAGE_NAME = "python3-libsemanage" %}}
{{% elif product in [ "sle15", "sle16" ] %}}
{{% set PACKAGE_NAME = "libsemanage2" %}}
{{% else %}}
{{% set PACKAGE_NAME = "libsemanage-python" %}}
{{% endif %}}

- name: "{{{ rule_title }}} - Ensure {{{ PACKAGE_NAME }}} Installed"
  ansible.builtin.package:
    name: "{{{ PACKAGE_NAME }}}"
    state: present

{{% if product == "sle15" %}}
- name: "{{{ rule_title }}} - Ensure Additional Packages Installed"
  become: yes
  ansible.builtin.package:
    name:
      - policycoreutils-python-utils
      - selinux-tools
      - python3-selinux
      - python3-semanage
    state: present
{{% endif %}}

{{% if SEBOOL_BOOL %}}
- name: "{{{ rule_title }}} - Set SELinux Boolean {{{ SEBOOLID }}} to {{{ SEBOOL_BOOL }}}"
  ansible.posix.seboolean:
    name: "{{{ SEBOOLID }}}"
    state: "{{{ SEBOOL_BOOL }}}"
    persistent: yes
{{% else %}}
- (xccdf-var var_{{{ SEBOOLID }}})
- name: "{{{ rule_title }}} - Set SELinux Boolean {{{ SEBOOLID }}} Accordingly"
  ansible.posix.seboolean:
    name: {{{ SEBOOLID }}}
    state: "{{ var_{{{ SEBOOLID }}} }}"
    persistent: yes
{{% endif %}}
