net_lldp_interface module implementation for junos (#26915)

*  junos_lldp_interface module implementation
*  junos_lldp_interface integration test
*  net_lldp_interface module intgration test for junos
*  Add lldp configuration parameter in junos_lldp
*  Modify junos_lldp testcase as per above change
*  Add net_lldp_interface module documentation
This commit is contained in:
Ganesh Nalawade 2017-07-18 12:14:10 +05:30 committed by GitHub
parent 3f67d167fe
commit b8cd646afd
12 changed files with 628 additions and 15 deletions

View file

@ -127,6 +127,13 @@
rescue:
- set_fact: test_failed=true
- block:
- include_role:
name: junos_lldp_interface
when: "limit_to in ['*', 'junos_lldp_interface']"
rescue:
- set_fact: test_failed=true
###########
- name: Has any previous test failed?
fail:

View file

@ -1,12 +1,12 @@
---
- debug: msg="START junos_lldp netconf/basic.yaml"
- name: setup - remove lldp
- name: setup - Disable lldp and remove it's configuration
junos_lldp:
state: absent
provider: "{{ netconf }}"
- name: configure lldp
- name: Enable lldp
junos_lldp:
state: present
provider: "{{ netconf }}"
@ -15,9 +15,8 @@
- assert:
that:
- "result.changed == true"
- "'[edit]\n- protocols {\n- lldp {\n- disable;\n- }\n- }' in result.diff.prepared"
- name: configure lldp (idempotent)
- name: Enable lldp (idempotent)
junos_lldp:
state: present
provider: "{{ netconf }}"
@ -27,8 +26,74 @@
that:
- "result.changed == false"
- name: Disable lldp
- name: configure lldp parameters and enable lldp
junos_lldp:
interval: 10
hold_multiplier: 5
transmit_delay: 30
state: present
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'+ advertisement-interval 10;' in result.diff.prepared"
- "'+ transmit-delay 30;' in result.diff.prepared"
- "'+ hold-multiplier 5;' in result.diff.prepared"
- name: configure lldp parameters and enable lldp(idempotent)
junos_lldp:
interval: 10
hold_multiplier: 5
transmit_delay: 30
state: present
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == false"
- name: configure lldp parameters and disable lldp
junos_lldp:
interval: 10
hold_multiplier: 5
transmit_delay: 30
state: disabled
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'+ disable;' in result.diff.prepared"
- "'advertisement-interval 10;' not in result.diff.prepared"
- "'transmit-delay 30;' not in result.diff.prepared"
- "'hold-multiplier 5;' not in result.diff.prepared"
- name: configure lldp parameters and enable lldp
junos_lldp:
interval: 10
hold_multiplier: 5
transmit_delay: 30
state: enabled
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'- disable;' in result.diff.prepared"
- "'advertisement-interval 10;' not in result.diff.prepared"
- "'transmit-delay 30;' not in result.diff.prepared"
- "'hold-multiplier 5;' not in result.diff.prepared"
- name: Remove lldp configuration and diable lldp
junos_lldp:
interval: 10
hold_multiplier: 5
transmit_delay: 30
state: absent
provider: "{{ netconf }}"
register: result
@ -36,9 +101,12 @@
- assert:
that:
- "result.changed == true"
- "'[edit]\n+ protocols {\n+ lldp {\n+ disable;\n+ }\n+ }' in result.diff.prepared"
- "'+ disable;' in result.diff.prepared"
- "'- advertisement-interval 10;' in result.diff.prepared"
- "'- transmit-delay 30;' in result.diff.prepared"
- "'- hold-multiplier 5;' in result.diff.prepared"
- name: Disable lldp (idempotent)
- name: Remove lldp (idempotent)
junos_lldp:
state: absent
provider: "{{ netconf }}"

View file

@ -0,0 +1,2 @@
---
testcase: "*"

View file

@ -0,0 +1,2 @@
---
- { include: netconf.yaml, tags: ['netconf'] }

View file

@ -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

View file

@ -0,0 +1,104 @@
---
- debug: msg="START junos_lldp_interface netconf/basic.yaml"
- name: setup - Remove lldp interface configuration
junos_lldp_interface:
name: ge-0/0/5
state: absent
provider: "{{ netconf }}"
- name: lldp interface configuration
junos_lldp_interface:
name: ge-0/0/5
state: present
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'+ interface ge-0/0/5;' in result.diff.prepared"
- name: lldp interface configuration (idempotent)
junos_lldp_interface:
name: ge-0/0/5
state: present
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == false"
- name: Deactivate lldp interface configuration
junos_lldp_interface:
name: ge-0/0/5
state: present
active: False
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'! inactive: interface ge-0/0/5' in result.diff.prepared"
- name: Activate lldp interface configuration
junos_lldp_interface:
name: ge-0/0/5
state: present
active: True
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'! active: interface ge-0/0/5' in result.diff.prepared"
- name: Disable lldp on particular interface
junos_lldp_interface:
name: ge-0/0/5
state: disabled
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'[edit protocols lldp interface ge-0/0/5]\n+ disable;' in result.diff.prepared"
- name: Enable lldp on particular interface
junos_lldp_interface:
name: ge-0/0/5
state: enabled
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'[edit protocols lldp interface ge-0/0/5]\n- disable;' in result.diff.prepared"
- name: Delete lldp on particular interface
junos_lldp_interface:
name: ge-0/0/5
state: absent
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'[edit protocols lldp]\n- interface ge-0/0/5;' in result.diff.prepared"
- name: Delete lldp on particular interface (idempotent)
junos_lldp_interface:
name: ge-0/0/5
state: absent
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == false"

View file

@ -16,7 +16,7 @@
- assert:
that:
- "result.changed == true"
- "'[edit]\n- protocols {\n- lldp {\n- disable;\n- }\n- }' in result.diff.prepared"
- "'- disable;' in result.diff.prepared"
- name: configure lldp (idempotent)
net_lldp:
@ -37,7 +37,7 @@
- assert:
that:
- "result.changed == true"
- "'[edit]\n+ protocols {\n+ lldp {\n+ disable;\n+ }\n+ }' in result.diff.prepared"
- "'+ disable;' in result.diff.prepared"
- name: Disable lldp (idempotent)
net_lldp:

View file

@ -0,0 +1,78 @@
---
- debug: msg="START net_lldp_interface junos/basic.yaml"
- name: setup - Remove lldp interface configuration
net_lldp_interface:
name: ge-0/0/5
state: absent
provider: "{{ netconf }}"
- name: lldp interface configuration
net_lldp_interface:
name: ge-0/0/5
state: present
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'+ interface ge-0/0/5;' in result.diff.prepared"
- name: lldp interface configuration (idempotent)
net_lldp_interface:
name: ge-0/0/5
state: present
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == false"
- name: Disable lldp on particular interface
net_lldp_interface:
name: ge-0/0/5
state: disabled
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'[edit protocols lldp interface ge-0/0/5]\n+ disable;' in result.diff.prepared"
- name: Enable lldp on particular interface
net_lldp_interface:
name: ge-0/0/5
state: enabled
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'[edit protocols lldp interface ge-0/0/5]\n- disable;' in result.diff.prepared"
- name: Delete lldp on particular interface
net_lldp_interface:
name: ge-0/0/5
state: absent
provider: "{{ netconf }}"
register: result
- assert:
that:
- "result.changed == true"
- "'[edit protocols lldp]\n- interface ge-0/0/5;' in result.diff.prepared"
- name: Delete lldp on particular interface (idempotent)
net_lldp_interface:
name: ge-0/0/5
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'