---
- hosts: platform_agnostic
  gather_facts: no
  connection: local

  vars:
    limit_to: "*"
    debug: false


# Run the tests within blocks allows the next module to be tested if the previous one fails.
# This is done to allow https://github.com/ansible/dci-partner-ansible/ to run the full set of tests.


  tasks:
    - set_fact:
        test_failed: false
    - block:
      - include_role:
          name: net_system
        when: "limit_to in ['*', 'net_system']"
      rescue:
        - set_fact: test_failed=true

    - block:
      - include_role:
          name: net_banner
        when: "limit_to in ['*', 'net_banner']"
      rescue:
        - set_fact: test_failed=true

    - block:
      - include_role:
          name: net_user
        when: "limit_to in ['*', 'net_user']"
      rescue:
        - set_fact: test_failed=true

    - block:
      - include_role:
          name: net_vlan
        when: "limit_to in ['*', 'net_vlan']"
      rescue:
        - set_fact: test_failed=true

    - block:
      - include_role:
          name: net_vrf
        when: "limit_to in ['*', 'net_vrf']"
      rescue:
        - set_fact: test_failed=true

    - block:
      - include_role:
          name: net_interface
        when: "limit_to in ['*', 'net_interface']"
      rescue:
        - set_fact: test_failed=true

    - block:
      - include_role:
          name: net_static_route
        when: "limit_to in ['*', 'net_static_route']"
      rescue:
        - set_fact: test_failed=true

    - block:
      - include_role:
          name: net_logging
        when: "limit_to in ['*', 'net_logging']"
      rescue:
        - set_fact: test_failed=true

    - block:
      - include_role:
          name: net_linkagg
        when: "limit_to in ['*', 'net_linkagg']"
      rescue:
        - set_fact: test_failed=true

    - block:
      - include_role:
          name: net_lldp
        when: "limit_to in ['*', 'net_lldp']"
      rescue:
        - set_fact: test_failed=true

    - block:
      - include_role:
          name: net_lldp_interface
        when: "limit_to in ['*', 'net_lldp_interface']"
      rescue:
        - set_fact: test_failed=true

    - block:
      - include_role:
          name: net_l3_interface
        when: "limit_to in ['*', 'net_l3_interface']"
      rescue:
        - set_fact: test_failed=true

###########
    - name: Has any previous test failed?
      fail:
        msg: "One or more tests failed, check log for details"
      when: test_failed
