---
# Copyright 2018, Rackspace US, Inc.
#
# 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 networkd directory
  file:
    path: "/etc/systemd/network"
    state: directory

- name: Drop container network file (interfaces)
  template:
    src: "container_network.network.j2"
    dest: "/etc/systemd/network/{{ item.value.interface }}.network"
    owner: "root"
    group: "root"
    mode: "0644"
  with_dict: "{{ lxc_container_networks_combined }}"
  notify:
    - Enable dbus
    - Enable resolved
    - Restart networkd

- name: Create resolved link
  file:
    src: "/var/run/systemd/resolve/resolv.conf"
    dest: "/etc/resolv.conf"
    force: true
    state: link
  when:
    - lxc_container_enable_resolved | bool
  notify:
    - Enable dbus
    - Enable resolved

### REMOVE IN "S"
# NOTE(cloudnull): These tasks are cleaning up the old interfaces
#                  files. Remove this in the "S" release.
- name: Remove old route network interface(s)
  file:
    path: "{{ lxc_container_default_route_interfaces }}"
    state: absent
  with_dict: "{{ lxc_container_networks_combined }}"
  when:
    - lxc_container_default_route_interfaces is defined

- name: Remove old network interface(s)
  file:
    path: "{{ lxc_container_interface_target }}"
    state: absent
  with_dict: "{{ lxc_container_networks_combined }}"
  when:
    - lxc_container_interface_target is defined

- name: Remove old default network interface
  file:
    path: "{{ lxc_container_default_interface }}"
    state: absent
  when:
    - lxc_container_default_interface is defined