diff options
author | ansible-zuul[bot] <48994755+ansible-zuul[bot]@users.noreply.github.com> | 2019-08-29 15:43:15 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-29 15:43:15 +0000 |
commit | 48d1619005ec30ba3b433161161a692c5a56a90e (patch) | |
tree | 2d9a958c135c5ec4cad86650e8f7d7ef173d33c2 /tests/integration/targets/vyos_interface | |
parent | 59af486ab07108815ad1774205959fa8287d6e53 (diff) | |
parent | ae8514ce0289ee2096a3a9f54be6a4654153c880 (diff) | |
download | vyos.vyos-48d1619005ec30ba3b433161161a692c5a56a90e.tar.gz vyos.vyos-48d1619005ec30ba3b433161161a692c5a56a90e.zip |
Merge pull request #29 from CaptTrews/ansible/collections-sync
Updated from network content collector
Reviewed-by: https://github.com/apps/ansible-zuul
Diffstat (limited to 'tests/integration/targets/vyos_interface')
7 files changed, 460 insertions, 0 deletions
diff --git a/tests/integration/targets/vyos_interface/aliases b/tests/integration/targets/vyos_interface/aliases new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/tests/integration/targets/vyos_interface/aliases diff --git a/tests/integration/targets/vyos_interface/defaults/main.yaml b/tests/integration/targets/vyos_interface/defaults/main.yaml new file mode 100644 index 00000000..9ef5ba51 --- /dev/null +++ b/tests/integration/targets/vyos_interface/defaults/main.yaml @@ -0,0 +1,3 @@ +--- +testcase: "*" +test_items: [] diff --git a/tests/integration/targets/vyos_interface/tasks/cli.yaml b/tests/integration/targets/vyos_interface/tasks/cli.yaml new file mode 100644 index 00000000..890d3acf --- /dev/null +++ b/tests/integration/targets/vyos_interface/tasks/cli.yaml @@ -0,0 +1,22 @@ +--- +- name: collect all cli test cases + find: + paths: "{{ role_path }}/tests/cli" + patterns: "{{ testcase }}.yaml" + register: test_cases + delegate_to: localhost + +- name: set test_items + set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}" + +- name: run test case (connection=network_cli) + include: "{{ test_case_to_run }} ansible_connection=network_cli" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run + +- name: run test case (connection=local) + include: "{{ test_case_to_run }} ansible_connection=local" + with_first_found: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/tests/integration/targets/vyos_interface/tasks/main.yaml b/tests/integration/targets/vyos_interface/tasks/main.yaml new file mode 100644 index 00000000..415c99d8 --- /dev/null +++ b/tests/integration/targets/vyos_interface/tasks/main.yaml @@ -0,0 +1,2 @@ +--- +- { include: cli.yaml, tags: ['cli'] } diff --git a/tests/integration/targets/vyos_interface/tests/cli/basic.yaml b/tests/integration/targets/vyos_interface/tests/cli/basic.yaml new file mode 100644 index 00000000..22957e14 --- /dev/null +++ b/tests/integration/targets/vyos_interface/tests/cli/basic.yaml @@ -0,0 +1,220 @@ +--- +- debug: msg="START cli/basic.yaml on connection={{ ansible_connection }}" + +- name: Run vyos lsmod command + vyos.vyos.vyos_command: + commands: + - lsmod + register: lsmod_out + +- name: Set up - delete interface + vyos.vyos.vyos_interface: + name: eth1 + state: absent + +- name: Set up - Create interface + vyos.vyos.vyos_interface: + name: eth1 + state: present + description: test-interface + register: result + +- assert: + that: + - 'result.changed == true' + - '"set interfaces ethernet eth1" in result.commands' + - '"set interfaces ethernet eth1 description ''test-interface''" in result.commands' + +- name: Configure interface params + vyos.vyos.vyos_interface: + name: eth1 + state: present + description: test-interface-1 + speed: 100 + duplex: half + mtu: 256 + when: "'virtio_net' not in lsmod_out.stdout[0]" + register: result + +- assert: + that: + - 'result.changed == true' + - '"set interfaces ethernet eth1 description ''test-interface-1''" in result.commands' + - '"set interfaces ethernet eth1 speed 100" in result.commands' + - '"set interfaces ethernet eth1 duplex half" in result.commands' + - '"set interfaces ethernet eth1 mtu 256" in result.commands' + when: "'virtio_net' not in lsmod_out.stdout[0]" + +- name: Configure interface params (idempotent) + vyos.vyos.vyos_interface: + name: eth1 + state: present + description: test-interface-1 + speed: 100 + duplex: half + mtu: 256 + register: result + when: "'virtio_net' not in lsmod_out.stdout[0]" + +- assert: + that: + - 'result.changed == false' + when: "'virtio' not in lsmod_out.stdout[0]" + +- name: Change interface params + vyos.vyos.vyos_interface: + name: eth1 + state: present + description: test-interface-2 + speed: 1000 + duplex: full + mtu: 512 + register: result + when: "'virtio_net' not in lsmod_out.stdout[0]" + +- assert: + that: + - 'result.changed == true' + - '"set interfaces ethernet eth1 description ''test-interface-2''" in result.commands' + - '"set interfaces ethernet eth1 speed 1000" in result.commands' + - '"set interfaces ethernet eth1 duplex full" in result.commands' + - '"set interfaces ethernet eth1 mtu 512" in result.commands' + when: "'virtio_net' not in lsmod_out.stdout[0]" + +- name: Disable interface + vyos.vyos.vyos_interface: + name: eth1 + enabled: False + register: result + +- assert: + that: + - 'result.changed == true' + - '"set interfaces ethernet eth1 disable" in result.commands' + +- name: Enable interface + vyos.vyos.vyos_interface: + name: eth1 + enabled: True + register: result + +- assert: + that: + - 'result.changed == true' + - '"delete interfaces ethernet eth1 disable" in result.commands' + +- name: Delete interface + vyos.vyos.vyos_interface: + name: eth1 + state: absent + register: result + +- assert: + that: + - 'result.changed == true' + - '"delete interfaces ethernet eth1" in result.commands' + +- name: Delete interface (idempotent) + vyos.vyos.vyos_interface: + name: eth1 + state: absent + register: result + +- assert: + that: + - 'result.changed == false' + +- name: Aggregate setup- delete interface + vyos.vyos.vyos_interface: + name: eth2 + state: absent + register: result + +- name: Set interface on aggregate + vyos.vyos.vyos_interface: + aggregate: + - { name: eth1, description: test-interface-1, speed: 100, duplex: half, mtu: 512} + - { name: eth2, description: test-interface-2, speed: 1000, duplex: full, mtu: 256} + register: result + when: "'virtio_net' not in lsmod_out.stdout[0]" + +- assert: + that: + - 'result.changed == true' + - '"set interfaces ethernet eth1 description ''test-interface-1''" in result.commands' + - '"set interfaces ethernet eth1 speed 100" in result.commands' + - '"set interfaces ethernet eth1 duplex half" in result.commands' + - '"set interfaces ethernet eth1 mtu 512" in result.commands' + - '"set interfaces ethernet eth2 description ''test-interface-2''" in result.commands' + - '"set interfaces ethernet eth2 speed 1000" in result.commands' + - '"set interfaces ethernet eth2 duplex full" in result.commands' + - '"set interfaces ethernet eth2 mtu 256" in result.commands' + when: "'virtio_net' not in lsmod_out.stdout[0]" + +- name: Set interface on aggregate (idempotent) + vyos.vyos.vyos_interface: + aggregate: + - { name: eth1, description: test-interface-1, speed: 100, duplex: half, mtu: 512} + - { name: eth2, description: test-interface-2, speed: 1000, duplex: full, mtu: 256} + register: result + when: "'virtio_net' not in lsmod_out.stdout[0]" + +- assert: + that: + - 'result.changed == false' + when: "'virtio_net' not in lsmod_out.stdout[0]" + +- name: Disable interface on aggregate + vyos.vyos.vyos_interface: + aggregate: + - name: eth1 + - name: eth2 + description: test-interface + enabled: False + register: result + +- assert: + that: + - 'result.changed == true' + - '"set interfaces ethernet eth1 disable" in result.commands' + - '"set interfaces ethernet eth2 disable" in result.commands' + +- name: Enable interface on aggregate + vyos.vyos.vyos_interface: + aggregate: + - name: eth1 + - name: eth2 + enabled: True + register: result + +- assert: + that: + - 'result.changed == true' + - '"delete interfaces ethernet eth1 disable" in result.commands' + - '"delete interfaces ethernet eth2 disable" in result.commands' + +- name: Delete interface aggregate + vyos.vyos.vyos_interface: + aggregate: + - name: eth1 + - name: eth2 + state: absent + register: result + +- assert: + that: + - 'result.changed == true' + - '"delete interfaces ethernet eth1" in result.commands' + - '"delete interfaces ethernet eth2" in result.commands' + +- name: Delete interface aggregate (idempotent) + vyos.vyos.vyos_interface: + aggregate: + - name: eth1 + - name: eth2 + state: absent + register: result + +- assert: + that: + - 'result.changed == false' diff --git a/tests/integration/targets/vyos_interface/tests/cli/intent.yaml b/tests/integration/targets/vyos_interface/tests/cli/intent.yaml new file mode 100644 index 00000000..946728db --- /dev/null +++ b/tests/integration/targets/vyos_interface/tests/cli/intent.yaml @@ -0,0 +1,157 @@ +--- +- debug: msg="START cli/intent.yaml on connection={{ ansible_connection }}" #" + +# To be able to run the lldp test we need to have a neighbor configured to talk to +# In DCI & Zuul we (currently) only spin up a single network VM, so we can't configure a neighbor +# In the future when we have multi-network-nodes running we can run these tests again +# https://github.com/ansible/ansible/issues/39667 + +- name: Detect if we have existing lldp neighbors configured + vyos.vyos.vyos_command: + commands: + - show lldp neighbors detail + register: neighbors_out + +- name: Should we run lldp tests? + set_fact: + run_lldp_tests: "'PortDescr: eth0' in neighbors_out.stdout[0]" + +- name: Enable LLDP service + vyos.vyos.vyos_lldp: + state: present + when: run_lldp_tests + +- name: Create LLDP configuration + vyos.vyos.vyos_lldp_interface: + name: eth1 + state: present + when: run_lldp_tests + +- name: Setup (interface is up) + vyos.vyos.vyos_interface: + name: eth1 + enabled: True + state: present + register: result + +- name: Check intent arguments + vyos.vyos.vyos_interface: + name: eth1 + state: up + register: result + +- assert: + that: + - "result.failed == false" + +- name: Check lldp neighbors intent arguments + vyos.vyos.vyos_interface: + name: eth0 + neighbors: + - port: eth0 + when: run_lldp_tests + register: result + +- assert: + that: + - "result.failed == false" + when: run_lldp_tests + +- name: Check intent arguments (failed condition) + vyos.vyos.vyos_interface: + name: eth1 + state: down + ignore_errors: yes + register: result + +- assert: + that: + - "result.failed == true" + - "'state eq(down)' in result.failed_conditions" + +- name: Check lldp neighbors intent arguments (failed) + vyos.vyos.vyos_interface: + name: eth0 + neighbors: + - port: dummy_port + host: dummy_host + ignore_errors: yes + when: run_lldp_tests + register: result + +- assert: + that: + - "result.failed == true" + - "'host dummy_host' in result.failed_conditions" + - "'port dummy_port' in result.failed_conditions" + when: run_lldp_tests + +- name: Config + intent + vyos.vyos.vyos_interface: + name: eth1 + enabled: False + state: down + register: result + +- assert: + that: + - "result.failed == false" + +- name: Config + intent (fail) + vyos.vyos.vyos_interface: + name: eth1 + enabled: False + state: up + ignore_errors: yes + register: result + +- assert: + that: + - "result.failed == true" + - "'state eq(up)' in result.failed_conditions" + +- name: Aggregate config + intent (pass) + vyos.vyos.vyos_interface: + aggregate: + - name: eth1 + enabled: True + state: up + ignore_errors: yes + register: result + +- assert: + that: + - "result.failed == false" + +- name: Check lldp neighbors intent aggregate arguments + vyos.vyos.vyos_interface: + aggregate: + - name: eth0 + neighbors: + - port: eth0 + when: run_lldp_tests + register: result + +- assert: + that: + - "result.failed == false" + when: run_lldp_tests + +- name: Check lldp neighbors intent aggregate arguments (failed) + vyos.vyos.vyos_interface: + aggregate: + - name: eth0 + neighbors: + - port: eth0 + - port: dummy_port + host: dummy_host + ignore_errors: yes + when: run_lldp_tests + register: result + +- assert: + that: + - "result.failed == true" + - "'host dummy_host' in result.failed_conditions" + - "'port dummy_port' in result.failed_conditions" + when: run_lldp_tests diff --git a/tests/integration/targets/vyos_interface/tests/cli/net_interface.yaml b/tests/integration/targets/vyos_interface/tests/cli/net_interface.yaml new file mode 100644 index 00000000..4bdb6ecc --- /dev/null +++ b/tests/integration/targets/vyos_interface/tests/cli/net_interface.yaml @@ -0,0 +1,56 @@ +--- +- debug: msg="START vyos cli/net_interface.yaml on connection={{ ansible_connection }}" + +# Add minimal testcase to check args are passed correctly to +# implementation module and module run is successful. + +- name: Run vyos lsmod command + vyos.vyos.vyos_command: + commands: + - lsmod + register: lsmod_out + +- name: Set up - delete interface + net_interface: + name: eth1 + state: absent + +- name: Create interface using platform agnostic module + net_interface: + name: eth1 + state: present + description: test-interface + register: result + +- assert: + that: + - 'result.changed == true' + - '"set interfaces ethernet eth1" in result.commands' + - '"set interfaces ethernet eth1 description ''test-interface''" in result.commands' + +- name: Configure interface params using platform agnostic module + net_interface: + name: eth1 + state: present + description: test-interface-1 + speed: 100 + duplex: half + mtu: 256 + when: "'virtio_net' not in lsmod_out.stdout[0]" + register: result + +- assert: + that: + - 'result.changed == true' + - '"set interfaces ethernet eth1 description ''test-interface-1''" in result.commands' + - '"set interfaces ethernet eth1 speed 100" in result.commands' + - '"set interfaces ethernet eth1 duplex half" in result.commands' + - '"set interfaces ethernet eth1 mtu 256" in result.commands' + when: "'virtio_net' not in lsmod_out.stdout[0]" + +- name: teardown - delete interface + net_interface: + name: eth1 + state: absent + +- debug: msg="END vyos cli/net_interface.yaml on connection={{ ansible_connection }}" |