# Copyright 2020-present Open Networking Foundation
#
# 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: Run "apt update"
  apt:
    update_cache: yes

- name: Install ntp
  apt: name=ntp state=present
  when: ntp_enabled | bool
  tags: ntp

- name: Configure ntp file
  template: src=etc/ntp.conf.j2 dest=/etc/ntp.conf
  when: ntp_enabled | bool
  notify: restart ntp
  tags: ntp

- name: Start the ntp service
  service: name=ntp state=started enabled=yes
  when: ntp_enabled | bool
  tags: ntp

- name: Set timezone to {{ ntp_timezone }}
  timezone:
    name: "{{ ntp_timezone }}"
  when: ntp_enabled | bool
  tags: ntp

- name: Remove swapfile from /etc/fstab
  mount:
    name: "{{ item }}"
    fstype: swap
    state: absent
  with_items:
    - swap
    - none
  tags: swapoff

- name: Check if swap is enabled
  command: /sbin/swapon -s
  register: swapon
  changed_when: no
  tags: swapoff

- name: Disable swap
  command: /sbin/swapoff -a
  when: swapon.stdout
  tags: swapoff

- name: Add internal service domains to /etc/hosts
  become: yes
  lineinfile:
    path: /etc/hosts
    line: "{{ item['ip'] }}\t\t{{ item['name'] }}"
    state: present
  with_items: "{{ etc_hosts_entries }}"
  tags: etc-hosts
