
# Copyright 2017-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.


---
# maas-test-client-install/tasks/main.yml

- name: Create testclient LXD profile
  lxd_profile:
    name: testclient
    state: present
    config:
      user.user-data: |
        #cloud-config
        write_files:
          - path: /etc/rc.local
            permissions: "0755"
            content: |
              #!/bin/sh -e
              # Set up VLAN tagging interface ("simulated OLT")
              ip link add link eth0 name eth0.222 type vlan id 222
              ip link add link eth0.222 name eth0.222.111 type vlan id 111
              ifconfig eth0.222 up
              ifconfig eth0.222.111 up
              dhclient eth0.222.111
              exit 0
        bootcmd:
          - sed -i 's/eth0 inet dhcp/eth0 inet manual/g' /etc/network/interfaces.d/eth0.cfg
    description: 'Subscriber test client'
    devices:
      eth0:
        nictype: macvlan
        parent: fabric
        type: nic

- name: Create testclient container
  lxd_container:
    name: testclient
    architecture: x86_64
    state: started
    source:
      type: image
      mode: pull
      server: https://cloud-images.ubuntu.com/releases
      protocol: simplestreams
      alias: "{{ ansible_distribution_release }}"
    profiles: ["testclient"]
    timeout: 600

- name: Stop container
  lxd_container:
    name: testclient
    state: stopped
  register: result
  until: result | success
  retries: 3
  delay: 10

