# Copyright 2021 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: Deploy cobbler pod
  command: "kubectl apply -f {{ role_path }}/files/k8s_cobbler.yml"
  changed_when: true
  tags: install
  when: cobbler_container_status and not cobbler_config_status

- name: Wait for cobbler pod to come to ready state
  command: kubectl wait --for=condition=ready -n cobbler pod -l app=cobbler
  changed_when: false
  tags: install

- name: Get cobbler pod name
  command: 'kubectl get pod -n cobbler -l app=cobbler -o jsonpath="{.items[0].metadata.name}"'
  changed_when: false
  register: cobbler_pod_name
  tags: install

- name: Configuring cobbler inside container (It may take 5-10 mins)
  command: "kubectl exec --stdin --tty -n cobbler {{ cobbler_pod_name.stdout }} -- ansible-playbook /root/cobbler_configurations.yml"
  changed_when: true
  tags: install
  when: not cobbler_config_status

- name: Schedule task
  cron:
    name: "start cobbler on reboot"
    special_time: reboot
    job: "ansible-playbook {{ role_path }}/files/start_cobbler.yml"
  tags: install
  when: not cobbler_config_status

- name: Execute cobbler sync in cobbler container
  command: 'kubectl exec --stdin --tty -n cobbler {{ cobbler_pod_name.stdout }} -- cobbler sync'
  changed_when: true
  when: cobbler_config_status

- name: Remove the files
  file:
    path: "{{ item }}"
    state: absent
  with_items:
    - "{{ role_path }}/files/.users.digest"
    - "{{ role_path }}/files/dhcp.template"
    - "{{ role_path }}/files/settings"
    - "{{ role_path }}/files/centos7.ks"
    - "{{ role_path }}/files/temp_host_mapping_file.csv.bak"