# 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: Create the dhcp template
  copy:
    src: "{{ role_path }}/files/temp_dhcp.template"
    dest: "{{ role_path }}/files/dhcp.template"
    mode: 0775
  tags: install

- name: Assign subnet and netmask
  replace:
    path: "{{ role_path }}/files/dhcp.template"
    regexp: '^subnet subnet_mask netmask net_mask {'
    replace: 'subnet {{ subnet }} netmask {{ netmask }} {'
  tags: install

- name: Assign netmask
  replace:
    path: "{{ role_path }}/files/dhcp.template"
    regexp: '^option subnet-mask net_mask;'
    replace: 'option subnet-mask {{ netmask }};'
    
- name: Assign default lease time
  replace:
    path: "{{ role_path }}/files/dhcp.template"
    regexp: '^default-lease-time default;'
    replace: 'default-lease-time {{ default_lease_time }};'

- name: Assign max lease time
  replace:
    path: "{{ role_path }}/files/dhcp.template"
    regexp: '^max-lease-time max;'
    replace: 'max-lease-time {{ max_lease_time }};'

- name: Assign DHCP range
  replace:
    path: "{{ role_path }}/files/dhcp.template"
    regexp: '^range dynamic-bootp start end;'
    replace: 'range dynamic-bootp {{ host_network_dhcp_start_range }} {{ host_network_dhcp_end_range }};'

- name: Create the cobbler settings file
  copy:
    src: "{{ role_path }}/files/cobbler_settings"
    dest: "{{ role_path }}/files/settings.yaml"
    mode: 0775
  tags: install

- name: Assign server ip
  replace:
    path: "{{ role_path }}/files/settings.yaml"
    regexp: '^server: 127.0.0.1'
    replace: 'server: {{ hpc_ip }}'

- name: Assign next server ip
  replace:
    path: "{{ role_path }}/files/settings.yaml"
    regexp: '^next_server: 127.0.0.1'
    replace: 'next_server: {{ hpc_ip }}'

- name: Set the server_args for {{ provision_os }} in tftp file
  replace:
    path: "{{ role_path }}/files/tftp"
    regexp: '^        server_args             = -s /srv/tftpboot'
    replace: '        server_args             = -s /var/lib/tftpboot'
  when:
    - mgmt_os == os_supported_rocky
      
- name: Set the parameters for {{ provision_os }}
  block:
    - name: Set the tftpboot_location for {{ provision_os }}
      replace:
        path: "{{ role_path }}/files/settings.yaml"
        regexp: '^tftpboot_location: "/var/lib/tftpboot"'
        replace: 'tftpboot_location: "/srv/tftpboot"'

    - name: Set the webdir for {{ provision_os }}
      replace:
        path: "{{ role_path }}/files/settings.yaml"
        regexp: '^webdir: "/var/www/cobbler"'
        replace: 'webdir: "/srv/www/cobbler"'

    - name: Set the server_args for {{ provision_os }} in tftp file
      replace:
        path: "{{ role_path }}/files/tftp"
        regexp: '^        server_args             = -s /var/lib/tftpboot'
        replace: '        server_args             = -s /srv/tftpboot'
  when: mgmt_os == os_supported_leap