mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 21:00:22 -07:00
junos_interface intent arguments (#27947)
* junos_interface intent arguments * Add check for intent argument in junos_interface * Integration test for intent arguments * Minor type fixes * Add delay only if config diff is present * add enabled configuration argument * net_interface test case changes * Minor doc change
This commit is contained in:
parent
6e7cf7377b
commit
21bd7bcbb0
6 changed files with 267 additions and 37 deletions
|
@ -111,7 +111,7 @@
|
|||
junos_interface:
|
||||
name: ge-0/0/1
|
||||
description: test-interface
|
||||
state: down
|
||||
enabled: False
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
|
@ -124,7 +124,7 @@
|
|||
junos_interface:
|
||||
name: ge-0/0/1
|
||||
description: test-interface
|
||||
state: up
|
||||
enabled: True
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
|
@ -202,8 +202,8 @@
|
|||
- name: Disable interface on aggregate
|
||||
junos_interface:
|
||||
aggregate:
|
||||
- { name: ge-0/0/1, description: test-interface-1, speed: 1g, duplex: full, mtu: 512, state: down}
|
||||
- { name: ge-0/0/2, description: test-interface-2, speed: 10m, duplex: full, mtu: 256, state: down}
|
||||
- { name: ge-0/0/1, description: test-interface-1, speed: 1g, duplex: full, mtu: 512, enabled: False}
|
||||
- { name: ge-0/0/2, description: test-interface-2, speed: 10m, duplex: full, mtu: 256, enabled: False}
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
|
@ -215,8 +215,8 @@
|
|||
- name: Enable interface on aggregate
|
||||
junos_interface:
|
||||
aggregate:
|
||||
- { name: ge-0/0/1, description: test-interface-1, speed: 1g, duplex: full, mtu: 512, state: up}
|
||||
- { name: ge-0/0/2, description: test-interface-2, speed: 10m, duplex: full, mtu: 256, state: up}
|
||||
- { name: ge-0/0/1, description: test-interface-1, speed: 1g, duplex: full, mtu: 512, enabled: True}
|
||||
- { name: ge-0/0/2, description: test-interface-2, speed: 10m, duplex: full, mtu: 256, enabled: True}
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
---
|
||||
- debug: msg="START junos_interface netconf/intent.yaml"
|
||||
|
||||
- name: get facts
|
||||
junos_facts:
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
|
||||
- name: Define interface name for vSRX
|
||||
set_fact:
|
||||
name: pp0
|
||||
when: result['ansible_facts']['ansible_net_model'] | search("vSRX*")
|
||||
|
||||
- name: Define interface name for vQFX
|
||||
set_fact:
|
||||
name: gr-0/0/0
|
||||
when: result['ansible_facts']['ansible_net_model'] | search("vqfx*")
|
||||
|
||||
- name: Check intent arguments
|
||||
junos_interface:
|
||||
name: "{{ name }}"
|
||||
state: up
|
||||
tx_rate: ge(0)
|
||||
rx_rate: le(0)
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
||||
|
||||
- name: Check intent arguments (failed condition)
|
||||
junos_interface:
|
||||
name: "{{ name }}"
|
||||
state: down
|
||||
tx_rate: gt(0)
|
||||
rx_rate: lt(0)
|
||||
provider: "{{ netconf }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == true"
|
||||
- "'state eq(down)' in result.failed_conditions"
|
||||
- "'tx_rate gt(0)' in result.failed_conditions"
|
||||
- "'rx_rate lt(0)' in result.failed_conditions"
|
||||
|
||||
- name: Config + intent
|
||||
junos_interface:
|
||||
name: "{{ name }}"
|
||||
enabled: False
|
||||
state: down
|
||||
provider: "{{ netconf }}"
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
||||
- result.diff.prepared | search("\+ *disable")
|
||||
|
||||
- name: Config + intent (fail)
|
||||
junos_interface:
|
||||
name: "{{ name }}"
|
||||
enabled: False
|
||||
state: up
|
||||
provider: "{{ netconf }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == true"
|
||||
- "'state eq(up)' in result.failed_conditions"
|
||||
|
||||
- name: Aggregate config + intent (pass)
|
||||
junos_interface:
|
||||
aggregate:
|
||||
- name: "{{ name }}"
|
||||
enabled: True
|
||||
state: up
|
||||
provider: "{{ netconf }}"
|
||||
ignore_errors: yes
|
||||
register: result
|
||||
|
||||
- assert:
|
||||
that:
|
||||
- "result.failed == false"
|
Loading…
Add table
Add a link
Reference in a new issue