#  Copyright 2022 Dell Inc. or its subsidiaries. All Rights Reserved.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
---

- name: ISO creation - centos
  block:
    - name: Create custom ISO
      command: >-
        xorriso -as mkisofs -o {{ nfs_share_offline_repo }}/{{ centos_iso_filename }} -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4
        -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -J -R -V "CentOS 7 x86_64"  {{ tmp_iso_dir }}
      changed_when: true
      register: centos_iso_status
      tags: install
      args:
        chdir: "{{ tmp_iso_dir }}"

    - name: Custom ISO creation status check
      assert:
        that:
          - custom_iso_success_keyword1 in centos_iso_status.stderr
          - custom_iso_success_keyword2 in centos_iso_status.stderr
        success_msg: "{{ custom_iso_success_msg }}"
        fail_msg: "{{ custom_iso_fail_msg }}"
      tags: install
  when: provision_os == os_supported_centos

- name: ISO creation - rocky
  block:
    - name: Create custom ISO
      command: >-
        xorriso -as mkisofs -o {{ nfs_share_offline_repo }}/{{ rocky_iso_filename }} -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4
        -boot-info-table -eltorito-alt-boot -e images/efiboot.img -no-emul-boot -J -R -V "Rocky-8-4-x86_64-dvd"  {{ tmp_iso_dir }}
      changed_when: true
      register: rocky_iso_status
      tags: install
      args:
        chdir: "{{ tmp_iso_dir }}"

    - name: Custom ISO creation status check
      assert:
        that:
          - custom_iso_success_keyword1 in rocky_iso_status.stderr
          - custom_iso_success_keyword2 in rocky_iso_status.stderr
        success_msg: "{{ custom_iso_success_msg }}"
        fail_msg: "{{ custom_iso_fail_msg }}"
      tags: install
  when: provision_os == os_supported_rocky

- name: ISO creation - leap
  block:
    - name: Create custom ISO
      command: >-
        xorriso -as mkisofs -no-emul-boot -boot-load-size 4 -boot-info-table -iso-level 4 -b boot/x86_64/loader/isolinux.bin 
        -c boot/x86_64/loader/boot.cat -eltorito-alt-boot -e boot/x86_64/efi -no-emul-boot -o {{ nfs_share_offline_repo }}/{{ leap_iso_filename }} {{ tmp_iso_dir }}
      changed_when: true
      register: leap_iso_status
      tags: install
      args:
        chdir: "{{ tmp_iso_dir }}"

    - name: Custom ISO creation status check
      assert:
        that:
          - custom_iso_success_keyword1 in leap_iso_status.stderr
          - custom_iso_success_keyword2 in leap_iso_status.stderr
        success_msg: "{{ custom_iso_success_msg }}"
        fail_msg: "{{ custom_iso_fail_msg }}"
      tags: install
  when: provision_os == os_supported_leap

- name: Remove the kickstart file
  file:
    path: "{{ role_path }}/files/{{ idrac_kickstart_file }}"
    state: absent
  tags: install