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
This commit is contained in:
Ganesh Nalawade
2017-07-11 09:52:53 +05:30
committed by GitHub
parent 82558baaf6
commit be89ef3eb6
30 changed files with 1140 additions and 220 deletions

View File

@@ -0,0 +1,181 @@
---
- debug: msg="START net_linkagg junos/basic.yaml"
- name: setup - remove linkagg
net_linkagg:
name: ae0
members:
- ge-0/0/6
- ge-0/0/7
mode: active
device_count: 4
state: absent
provider: "{{ netconf }}"
- name: configure linkagg
net_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)
net_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
net_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
net_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: Disable linkagg interface
net_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
net_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: Delete linkagg
net_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)
net_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"

View File

@@ -0,0 +1,3 @@
---
- include: "{{ role_path }}/tests/junos/basic.yaml"
when: hostvars[inventory_hostname]['ansible_network_os'] == 'junos'