diff options
author | Ganesh Nalawade <ganesh634@gmail.com> | 2017-07-11 09:52:53 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-11 09:52:53 +0530 |
commit | be89ef3eb60c8ebc6a99f2f6cc568e5b0a48799d (patch) | |
tree | 0d9c491680c78dfe5a0909cd3cfd51abb9334013 /test/integration/targets/junos_linkagg | |
parent | 82558baaf6fa6155c7831acbee589cd310ba53bb (diff) | |
download | ansible-be89ef3eb60c8ebc6a99f2f6cc568e5b0a48799d.tar.gz |
junos_linkagg implementation and junos modules refactor (#26587)
* junos_linkagg implementation and junos modules refactor
* junos_linkagg implementation
* junos_linkagg integration test
* net_linkagg integration test for junos
* decouple `load_config` and `commit` operations,
to allow single commit (in case on confirm commit) and
to perform batch commit (multiple `load_config` followed by single
`commit`)
* Other related refactor
* Fix CI issues
* Fix unit test failure
Diffstat (limited to 'test/integration/targets/junos_linkagg')
4 files changed, 272 insertions, 0 deletions
diff --git a/test/integration/targets/junos_linkagg/defaults/main.yaml b/test/integration/targets/junos_linkagg/defaults/main.yaml new file mode 100644 index 0000000000..5f709c5aac --- /dev/null +++ b/test/integration/targets/junos_linkagg/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +testcase: "*" diff --git a/test/integration/targets/junos_linkagg/tasks/main.yaml b/test/integration/targets/junos_linkagg/tasks/main.yaml new file mode 100644 index 0000000000..cc27f174fd --- /dev/null +++ b/test/integration/targets/junos_linkagg/tasks/main.yaml @@ -0,0 +1,2 @@ +--- +- { include: netconf.yaml, tags: ['netconf'] } diff --git a/test/integration/targets/junos_linkagg/tasks/netconf.yaml b/test/integration/targets/junos_linkagg/tasks/netconf.yaml new file mode 100644 index 0000000000..1286b35422 --- /dev/null +++ b/test/integration/targets/junos_linkagg/tasks/netconf.yaml @@ -0,0 +1,16 @@ +--- +- name: collect all netconf test cases + find: + paths: "{{ role_path }}/tests/netconf" + 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 + include: "{{ test_case_to_run }}" + with_items: "{{ test_items }}" + loop_control: + loop_var: test_case_to_run diff --git a/test/integration/targets/junos_linkagg/tests/netconf/basic.yaml b/test/integration/targets/junos_linkagg/tests/netconf/basic.yaml new file mode 100644 index 0000000000..8afb925027 --- /dev/null +++ b/test/integration/targets/junos_linkagg/tests/netconf/basic.yaml @@ -0,0 +1,252 @@ +--- +- debug: msg="START junos_linkagg netconf/basic.yaml" + +- name: setup - remove linkagg + junos_linkagg: + name: ae0 + members: + - ge-0/0/6 + - ge-0/0/7 + mode: active + device_count: 4 + state: absent + provider: "{{ netconf }}" + +- name: configure linkagg + junos_linkagg: + name: ae0 + members: + - ge-0/0/6 + - ge-0/0/7 + mode: active + device_count: 4 + state: present + provider: "{{ netconf }}" + register: result + +- name: Get running configuration + junos_rpc: + rpc: get-configuration + provider: "{{ netconf }}" + register: config + +- assert: + that: + - "result.changed == true" + - "'<name>ae0</name>' in config.xml" + - "'<device-count>4</device-count>' in config.xml" + - "'<bundle>ae0</bundle>' in config.xml" + - "'<active/>' in config.xml" + - "'<description>configured by junos_linkagg</description>' in config.xml" + +- name: configure linkagg (idempotent) + junos_linkagg: + name: ae0 + members: + - ge-0/0/6 + - ge-0/0/7 + mode: active + device_count: 4 + state: present + provider: "{{ netconf }}" + register: result + +- assert: + that: + - "result.changed == false" + +- name: configure lacp in passive + junos_linkagg: + name: ae0 + members: + - ge-0/0/6 + - ge-0/0/7 + mode: passive + device_count: 4 + state: present + provider: "{{ netconf }}" + register: result + +- name: Get running configuration + junos_rpc: + rpc: get-configuration + provider: "{{ netconf }}" + register: config + +- assert: + that: + - "result.changed == true" + - "'<passive/>' in config.xml" + +- name: delete lacp + junos_linkagg: + name: ae0 + members: + - ge-0/0/6 + - ge-0/0/7 + mode: off + device_count: 4 + state: present + provider: "{{ netconf }}" + register: result + +- name: Get running configuration + junos_rpc: + rpc: get-configuration + provider: "{{ netconf }}" + register: config + +- assert: + that: + - "result.changed == true" + - "'<lacp/>' not in config.xml" + +- name: Change device count + junos_linkagg: + name: ae0 + device_count: 2 + provider: "{{ netconf }}" + register: result + +- name: Get running configuration + junos_rpc: + rpc: get-configuration + provider: "{{ netconf }}" + register: config + +- assert: + that: + - "result.changed == true" + - "'<device-count>2</device-count>' in config.xml" + +- name: Disable linkagg interface + junos_linkagg: + name: ae0 + state: down + provider: "{{ netconf }}" + register: result + +- name: Get running configuration + junos_rpc: + rpc: get-configuration + provider: "{{ netconf }}" + register: config + +- assert: + that: + - "result.changed == true" + - "'<disable/>' in config.xml" + - "'+ disable;' in result.diff.prepared" + +- name: Enable linkagg interface + junos_linkagg: + name: ae0 + state: up + provider: "{{ netconf }}" + register: result + +- name: Get running configuration + junos_rpc: + rpc: get-configuration + provider: "{{ netconf }}" + register: config + +- assert: + that: + - "result.changed == true" + - "'<disable/>' not in config.xml" + +- name: Deactivate linkagg + junos_linkagg: + name: ae0 + members: + - ge-0/0/6 + - ge-0/0/7 + mode: active + device_count: 4 + state: present + active: False + provider: "{{ netconf }}" + register: result + +- name: Get running configuration + junos_rpc: + rpc: get-configuration + provider: "{{ netconf }}" + register: config + +- assert: + that: + - "result.changed == true" + - "'<bundle inactive=\"inactive\">ae0</bundle>' in config.xml" + - "'<device-count inactive=\"inactive\">4</device-count>' in config.xml" + - "'inactive: ae0' in result.diff.prepared" + +- name: Activate linkagg + junos_linkagg: + name: ae0 + members: + - ge-0/0/6 + - ge-0/0/7 + mode: active + device_count: 4 + state: present + active: True + provider: "{{ netconf }}" + register: result + +- name: Get running configuration + junos_rpc: + rpc: get-configuration + provider: "{{ netconf }}" + register: config + +- assert: + that: + - "result.changed == true" + - "'<active/>' in config.xml" + - "'<bundle>ae0</bundle>' in config.xml" + - "'active: device-count 4' in result.diff.prepared" + - "'active: ae0' in result.diff.prepared" + +- name: Delete linkagg + junos_linkagg: + name: ae0 + members: + - ge-0/0/6 + - ge-0/0/7 + mode: active + device_count: 4 + state: absent + provider: "{{ netconf }}" + register: result + +- name: Get running configuration + junos_rpc: + rpc: get-configuration + provider: "{{ netconf }}" + register: config + +- assert: + that: + - "result.changed == true" + - "'<active/>' not in config.xml" + - "'<bundle>ae0</bundle>' not in config.xml" + - "'<device-count>4</device-count>' not in config.xml" + - "'<name>ae0</name>' not in config.xml" + +- name: Delete linkagg (idempotent) + junos_linkagg: + name: ae0 + members: + - ge-0/0/6 + - ge-0/0/7 + mode: active + device_count: 4 + state: absent + provider: "{{ netconf }}" + register: result + +- assert: + that: + - "result.changed == false" |