summaryrefslogtreecommitdiff
path: root/tests/integration/targets/vyos_interface
diff options
context:
space:
mode:
authoransible-zuul[bot] <48994755+ansible-zuul[bot]@users.noreply.github.com>2019-08-29 15:43:15 +0000
committerGitHub <noreply@github.com>2019-08-29 15:43:15 +0000
commit48d1619005ec30ba3b433161161a692c5a56a90e (patch)
tree2d9a958c135c5ec4cad86650e8f7d7ef173d33c2 /tests/integration/targets/vyos_interface
parent59af486ab07108815ad1774205959fa8287d6e53 (diff)
parentae8514ce0289ee2096a3a9f54be6a4654153c880 (diff)
downloadvyos.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')
-rw-r--r--tests/integration/targets/vyos_interface/aliases0
-rw-r--r--tests/integration/targets/vyos_interface/defaults/main.yaml3
-rw-r--r--tests/integration/targets/vyos_interface/tasks/cli.yaml22
-rw-r--r--tests/integration/targets/vyos_interface/tasks/main.yaml2
-rw-r--r--tests/integration/targets/vyos_interface/tests/cli/basic.yaml220
-rw-r--r--tests/integration/targets/vyos_interface/tests/cli/intent.yaml157
-rw-r--r--tests/integration/targets/vyos_interface/tests/cli/net_interface.yaml56
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 }}"