summaryrefslogtreecommitdiff
path: root/test/integration/targets/junos_linkagg
diff options
context:
space:
mode:
authorGanesh Nalawade <ganesh634@gmail.com>2017-07-11 09:52:53 +0530
committerGitHub <noreply@github.com>2017-07-11 09:52:53 +0530
commitbe89ef3eb60c8ebc6a99f2f6cc568e5b0a48799d (patch)
tree0d9c491680c78dfe5a0909cd3cfd51abb9334013 /test/integration/targets/junos_linkagg
parent82558baaf6fa6155c7831acbee589cd310ba53bb (diff)
downloadansible-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')
-rw-r--r--test/integration/targets/junos_linkagg/defaults/main.yaml2
-rw-r--r--test/integration/targets/junos_linkagg/tasks/main.yaml2
-rw-r--r--test/integration/targets/junos_linkagg/tasks/netconf.yaml16
-rw-r--r--test/integration/targets/junos_linkagg/tests/netconf/basic.yaml252
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"