mirror of https://github.com/ansible/ansible.git
nxos: merge nxapi/cli tests - acl, acl_interface, banner, bgp (#28234)
* refactored nxos_acl * refactor nxos_acl_interface * refactor nxos_banner * refactor nxos_bgp * fix typopull/26558/merge
parent
2f7f23c9ab
commit
9556e945eb
@ -1,15 +1,25 @@
|
|||||||
---
|
---
|
||||||
- name: collect all cli test cases
|
- name: collect common cli test cases
|
||||||
find:
|
find:
|
||||||
paths: "{{ role_path }}/tests/cli"
|
paths: "{{ role_path }}/tests/common"
|
||||||
patterns: "{{ testcase }}.yaml"
|
patterns: "{{ testcase }}.yaml"
|
||||||
register: test_cases
|
register: test_cases
|
||||||
|
|
||||||
|
- name: collect cli test cases
|
||||||
|
find:
|
||||||
|
paths: "{{ role_path }}/tests/cli"
|
||||||
|
patterns: "{{ testcase }}.yaml"
|
||||||
|
register: cli_cases
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
test_cases:
|
||||||
|
files: "{{ test_cases.files }} + {{ cli_cases.files }}"
|
||||||
|
|
||||||
- name: set test_items
|
- name: set test_items
|
||||||
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
|
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
|
||||||
|
|
||||||
- name: run test case
|
- name: run test case
|
||||||
include: "{{ test_case_to_run }}"
|
include: "{{ test_case_to_run }} connection={{ cli }}"
|
||||||
with_items: "{{ test_items }}"
|
with_items: "{{ test_items }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: test_case_to_run
|
loop_var: test_case_to_run
|
||||||
|
@ -1,48 +0,0 @@
|
|||||||
---
|
|
||||||
- debug: msg="START TRANSPORT:CLI nxos_acl sanity test"
|
|
||||||
|
|
||||||
- name: "Setup: Cleanup possibly existing acl."
|
|
||||||
nxos_acl: &remove
|
|
||||||
name: TEST_ACL
|
|
||||||
seq: 10
|
|
||||||
state: absent
|
|
||||||
provider: "{{ cli }}"
|
|
||||||
ignore_errors: yes
|
|
||||||
|
|
||||||
- name: "Configure ACL"
|
|
||||||
nxos_acl: &configure
|
|
||||||
name: TEST_ACL
|
|
||||||
seq: 10
|
|
||||||
action: permit
|
|
||||||
proto: tcp
|
|
||||||
src: 1.1.1.1/24
|
|
||||||
dest: any
|
|
||||||
state: present
|
|
||||||
provider: "{{ cli }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: &true
|
|
||||||
that:
|
|
||||||
- "result.changed == true"
|
|
||||||
|
|
||||||
- name: "Check Idempotence"
|
|
||||||
nxos_acl: *configure
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: &false
|
|
||||||
that:
|
|
||||||
- "result.changed == false"
|
|
||||||
|
|
||||||
- name: "Remove ACL"
|
|
||||||
nxos_acl: *remove
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *true
|
|
||||||
|
|
||||||
- name: "Check Idempotence"
|
|
||||||
nxos_acl: *remove
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *false
|
|
||||||
|
|
||||||
- debug: msg="END TRANSPORT:CLI nxos_acl sanity test"
|
|
@ -1,15 +1,25 @@
|
|||||||
---
|
---
|
||||||
- name: collect all cli test cases
|
- name: collect common cli test cases
|
||||||
find:
|
find:
|
||||||
paths: "{{ role_path }}/tests/cli"
|
paths: "{{ role_path }}/tests/common"
|
||||||
patterns: "{{ testcase }}.yaml"
|
patterns: "{{ testcase }}.yaml"
|
||||||
register: test_cases
|
register: test_cases
|
||||||
|
|
||||||
|
- name: collect cli test cases
|
||||||
|
find:
|
||||||
|
paths: "{{ role_path }}/tests/cli"
|
||||||
|
patterns: "{{ testcase }}.yaml"
|
||||||
|
register: cli_cases
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
test_cases:
|
||||||
|
files: "{{ test_cases.files }} + {{ cli_cases.files }}"
|
||||||
|
|
||||||
- name: set test_items
|
- name: set test_items
|
||||||
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
|
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
|
||||||
|
|
||||||
- name: run test case
|
- name: run test case
|
||||||
include: "{{ test_case_to_run }}"
|
include: "{{ test_case_to_run }} connection={{ cli }}"
|
||||||
with_items: "{{ test_items }}"
|
with_items: "{{ test_items }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: test_case_to_run
|
loop_var: test_case_to_run
|
||||||
|
@ -1,118 +0,0 @@
|
|||||||
---
|
|
||||||
- debug: msg="START TRANSPORT:NXAPI nxos_acl_interface sanity test"
|
|
||||||
|
|
||||||
# Select interface for test
|
|
||||||
- set_fact: intname="{{ nxos_int1 }}"
|
|
||||||
|
|
||||||
- name: "Interface selected for this test"
|
|
||||||
debug: msg="{{ intname }}"
|
|
||||||
|
|
||||||
- name: "Setup: Put interface into a default state"
|
|
||||||
nxos_config: &default
|
|
||||||
lines:
|
|
||||||
- "default interface {{ intname }}"
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
ignore_errors: yes
|
|
||||||
|
|
||||||
- name: "Setup: Cleanup possibly existing acl"
|
|
||||||
nxos_acl: &remove
|
|
||||||
name: ANSIBLE_ACL
|
|
||||||
seq: 10
|
|
||||||
state: absent
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
ignore_errors: yes
|
|
||||||
|
|
||||||
- name: Configure Supporting ACL
|
|
||||||
nxos_acl:
|
|
||||||
name: ANSIBLE_ACL
|
|
||||||
seq: 10
|
|
||||||
action: permit
|
|
||||||
proto: tcp
|
|
||||||
src: 1.1.1.1/24
|
|
||||||
dest: any
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
|
|
||||||
- block:
|
|
||||||
- name: Configure acl interface egress
|
|
||||||
nxos_acl_interface: &configure_egr
|
|
||||||
name: ANSIBLE_ACL
|
|
||||||
interface: "{{ intname }}"
|
|
||||||
direction: egress
|
|
||||||
state: present
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: &true
|
|
||||||
that:
|
|
||||||
- "result.changed == true"
|
|
||||||
|
|
||||||
- name: "Check Idempotence egress"
|
|
||||||
nxos_acl_interface: *configure_egr
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: &false
|
|
||||||
that:
|
|
||||||
- "result.changed == false"
|
|
||||||
|
|
||||||
- name: Configure acl interface ingress
|
|
||||||
nxos_acl_interface: &configure_ingr
|
|
||||||
name: ANSIBLE_ACL
|
|
||||||
interface: "{{ intname }}"
|
|
||||||
direction: ingress
|
|
||||||
state: present
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *true
|
|
||||||
|
|
||||||
- name: "Check Idempotence ingress"
|
|
||||||
nxos_acl_interface: *configure_ingr
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *false
|
|
||||||
|
|
||||||
- name: Cleanup acl interface egress
|
|
||||||
nxos_acl_interface: &cleanup_egr
|
|
||||||
name: ANSIBLE_ACL
|
|
||||||
interface: "{{ intname }}"
|
|
||||||
direction: egress
|
|
||||||
state: absent
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *true
|
|
||||||
|
|
||||||
- name: "Check Idempotence egress cleanup"
|
|
||||||
nxos_acl_interface: *cleanup_egr
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *false
|
|
||||||
|
|
||||||
- name: Cleanup acl interface ingress
|
|
||||||
nxos_acl_interface: &cleanup_ingr
|
|
||||||
name: ANSIBLE_ACL
|
|
||||||
interface: "{{ intname }}"
|
|
||||||
direction: ingress
|
|
||||||
state: absent
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *true
|
|
||||||
|
|
||||||
- name: "Check Idempotence ingress cleanup"
|
|
||||||
nxos_acl_interface: *cleanup_ingr
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *false
|
|
||||||
|
|
||||||
rescue:
|
|
||||||
- name: Put test interface into default state.
|
|
||||||
nxos_config: *default
|
|
||||||
ignore_errors: yes
|
|
||||||
|
|
||||||
- name: Remove possible configured ACL
|
|
||||||
nxos_acl: *remove
|
|
||||||
ignore_errors: yes
|
|
||||||
|
|
||||||
always:
|
|
||||||
- debug: msg="END TRANSPORT:NXAPI nxos_acl_interface sanity test"
|
|
@ -1,15 +1,25 @@
|
|||||||
---
|
---
|
||||||
- name: collect all cli test cases
|
- name: collect common cli test cases
|
||||||
find:
|
find:
|
||||||
paths: "{{ role_path }}/tests/cli"
|
paths: "{{ role_path }}/tests/common"
|
||||||
patterns: "{{ testcase }}.yaml"
|
patterns: "{{ testcase }}.yaml"
|
||||||
register: test_cases
|
register: test_cases
|
||||||
|
|
||||||
|
- name: collect cli test cases
|
||||||
|
find:
|
||||||
|
paths: "{{ role_path }}/tests/cli"
|
||||||
|
patterns: "{{ testcase }}.yaml"
|
||||||
|
register: cli_cases
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
test_cases:
|
||||||
|
files: "{{ test_cases.files }} + {{ cli_cases.files }}"
|
||||||
|
|
||||||
- name: set test_items
|
- name: set test_items
|
||||||
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
|
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
|
||||||
|
|
||||||
- name: run test case
|
- name: run test case
|
||||||
include: "{{ test_case_to_run }}"
|
include: "{{ test_case_to_run }} connection={{ cli }}"
|
||||||
with_items: "{{ test_items }}"
|
with_items: "{{ test_items }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: test_case_to_run
|
loop_var: test_case_to_run
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
---
|
|
||||||
- name: setup - remove exec
|
|
||||||
nxos_banner:
|
|
||||||
banner: exec
|
|
||||||
state: absent
|
|
||||||
provider: "{{ cli }}"
|
|
||||||
|
|
||||||
- name: Set exec
|
|
||||||
nxos_banner:
|
|
||||||
banner: exec
|
|
||||||
text: |
|
|
||||||
this is my exec banner
|
|
||||||
that has a multiline
|
|
||||||
string
|
|
||||||
state: present
|
|
||||||
provider: "{{ cli }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- debug:
|
|
||||||
msg: "{{ result }}"
|
|
||||||
|
|
||||||
- assert:
|
|
||||||
that:
|
|
||||||
- "result.changed == true"
|
|
||||||
- "'banner exec @\nthis is my exec banner\nthat has a multiline\nstring\n@' in result.commands"
|
|
||||||
|
|
||||||
- name: Set exec again (idempotent)
|
|
||||||
nxos_banner:
|
|
||||||
banner: exec
|
|
||||||
text: |
|
|
||||||
this is my exec banner
|
|
||||||
that has a multiline
|
|
||||||
string
|
|
||||||
state: present
|
|
||||||
provider: "{{ cli }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert:
|
|
||||||
that:
|
|
||||||
- "result.changed == false"
|
|
||||||
- "result.commands | length == 0"
|
|
||||||
|
|
||||||
# FIXME add in tests for everything defined in docs
|
|
||||||
# FIXME Test state:absent + test:
|
|
||||||
# FIXME Without powers ensure "privileged mode required"
|
|
@ -1,46 +0,0 @@
|
|||||||
---
|
|
||||||
- name: setup - remove motd
|
|
||||||
nxos_banner:
|
|
||||||
banner: motd
|
|
||||||
state: absent
|
|
||||||
provider: "{{ cli }}"
|
|
||||||
|
|
||||||
- name: Set motd
|
|
||||||
nxos_banner:
|
|
||||||
banner: motd
|
|
||||||
text: |
|
|
||||||
this is my motd banner
|
|
||||||
that has a multiline
|
|
||||||
string
|
|
||||||
state: present
|
|
||||||
provider: "{{ cli }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- debug:
|
|
||||||
msg: "{{ result }}"
|
|
||||||
|
|
||||||
- assert:
|
|
||||||
that:
|
|
||||||
- "result.changed == true"
|
|
||||||
- "'banner motd @\nthis is my motd banner\nthat has a multiline\nstring\n@' in result.commands"
|
|
||||||
|
|
||||||
- name: Set motd again (idempotent)
|
|
||||||
nxos_banner:
|
|
||||||
banner: motd
|
|
||||||
text: |
|
|
||||||
this is my motd banner
|
|
||||||
that has a multiline
|
|
||||||
string
|
|
||||||
state: present
|
|
||||||
provider: "{{ cli }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert:
|
|
||||||
that:
|
|
||||||
- "result.changed == false"
|
|
||||||
- "result.commands | length == 0"
|
|
||||||
|
|
||||||
|
|
||||||
# FIXME add in tests for everything defined in docs
|
|
||||||
# FIXME Test state:absent + test:
|
|
||||||
# FIXME Without powers ensure "privileged mode required"
|
|
@ -1,41 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Setup
|
|
||||||
nxos_banner:
|
|
||||||
banner: exec
|
|
||||||
text: |
|
|
||||||
Junk exec banner
|
|
||||||
over multiple lines
|
|
||||||
state: present
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
|
|
||||||
- name: remove exec
|
|
||||||
nxos_banner:
|
|
||||||
banner: exec
|
|
||||||
state: absent
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- debug:
|
|
||||||
msg: "{{ result }}"
|
|
||||||
|
|
||||||
- assert:
|
|
||||||
that:
|
|
||||||
- "result.changed == true"
|
|
||||||
- "'no banner exec' in result.commands"
|
|
||||||
|
|
||||||
- name: remove exec (idempotent)
|
|
||||||
nxos_banner:
|
|
||||||
banner: exec
|
|
||||||
state: absent
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert:
|
|
||||||
that:
|
|
||||||
- "result.changed == false"
|
|
||||||
- "result.commands | length == 0"
|
|
||||||
|
|
||||||
|
|
||||||
# FIXME add in tests for everything defined in docs
|
|
||||||
# FIXME Test state:absent + test:
|
|
||||||
# FIXME Without powers ensure "privileged mode required"
|
|
@ -1,15 +1,25 @@
|
|||||||
---
|
---
|
||||||
- name: collect all cli test cases
|
- name: collect common cli test cases
|
||||||
find:
|
find:
|
||||||
paths: "{{ role_path }}/tests/cli"
|
paths: "{{ role_path }}/tests/common"
|
||||||
patterns: "{{ testcase }}.yaml"
|
patterns: "{{ testcase }}.yaml"
|
||||||
register: test_cases
|
register: test_cases
|
||||||
|
|
||||||
|
- name: collect cli test cases
|
||||||
|
find:
|
||||||
|
paths: "{{ role_path }}/tests/cli"
|
||||||
|
patterns: "{{ testcase }}.yaml"
|
||||||
|
register: cli_cases
|
||||||
|
|
||||||
|
- set_fact:
|
||||||
|
test_cases:
|
||||||
|
files: "{{ test_cases.files }} + {{ cli_cases.files }}"
|
||||||
|
|
||||||
- name: set test_items
|
- name: set test_items
|
||||||
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
|
set_fact: test_items="{{ test_cases.files | map(attribute='path') | list }}"
|
||||||
|
|
||||||
- name: run test case
|
- name: run test case
|
||||||
include: "{{ test_case_to_run }}"
|
include: "{{ test_case_to_run }} connection={{ cli }}"
|
||||||
with_items: "{{ test_items }}"
|
with_items: "{{ test_items }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: test_case_to_run
|
loop_var: test_case_to_run
|
||||||
|
@ -1,135 +0,0 @@
|
|||||||
---
|
|
||||||
- debug: msg="START TRANSPORT:NXAPI nxos_bgp sanity test"
|
|
||||||
|
|
||||||
- set_fact: neighbor_down_fib_accelerate="true"
|
|
||||||
when: (titanium is defined) and not ((titanium | search('true')))
|
|
||||||
|
|
||||||
- set_fact: reconnect_interval="55"
|
|
||||||
when: (titanium is defined) and not ((titanium | search('true')))
|
|
||||||
|
|
||||||
- name: "Enable feature BGP"
|
|
||||||
nxos_feature:
|
|
||||||
feature: bgp
|
|
||||||
state: enabled
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
ignore_errors: yes
|
|
||||||
|
|
||||||
- name: "Setup"
|
|
||||||
nxos_bgp: &remove
|
|
||||||
asn: 65535
|
|
||||||
state: absent
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
ignore_errors: yes
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- block:
|
|
||||||
- name: "Configure BGP defaults"
|
|
||||||
nxos_bgp: &configure_default
|
|
||||||
asn: 65535
|
|
||||||
router_id: 1.1.1.1
|
|
||||||
state: present
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: &true
|
|
||||||
that:
|
|
||||||
- "result.changed == true"
|
|
||||||
|
|
||||||
- name: "Check Idempotence"
|
|
||||||
nxos_bgp: *configure_default
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: &false
|
|
||||||
that:
|
|
||||||
- "result.changed == false"
|
|
||||||
|
|
||||||
- name: "Remove BGP"
|
|
||||||
nxos_bgp: *remove
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *true
|
|
||||||
|
|
||||||
- name: "Check Idempotence"
|
|
||||||
nxos_bgp: *remove
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *false
|
|
||||||
|
|
||||||
- name: "Configure BGP non defaults"
|
|
||||||
nxos_bgp: &configure_non_default
|
|
||||||
asn: 65535
|
|
||||||
router_id: 1.1.1.1
|
|
||||||
bestpath_always_compare_med: true
|
|
||||||
bestpath_aspath_multipath_relax: true
|
|
||||||
bestpath_compare_routerid: true
|
|
||||||
bestpath_cost_community_ignore: true
|
|
||||||
bestpath_med_confed: true
|
|
||||||
bestpath_med_missing_as_worst: true
|
|
||||||
bestpath_med_non_deterministic: true
|
|
||||||
cluster_id: 10.0.0.1
|
|
||||||
confederation_id: 99
|
|
||||||
disable_policy_batching: true
|
|
||||||
enforce_first_as: false
|
|
||||||
fast_external_fallover: false
|
|
||||||
flush_routes: true
|
|
||||||
graceful_restart_helper: true
|
|
||||||
graceful_restart_timers_restart: 130
|
|
||||||
graceful_restart_timers_stalepath_time: 310
|
|
||||||
isolate: false
|
|
||||||
log_neighbor_changes: true
|
|
||||||
maxas_limit: 50
|
|
||||||
neighbor_down_fib_accelerate: "{{neighbor_down_fib_accelerate|default(omit)}}"
|
|
||||||
reconnect_interval: "{{reconnect_interval|default(omit)}}"
|
|
||||||
shutdown: true
|
|
||||||
timer_bestpath_limit: 255
|
|
||||||
timer_bgp_hold: 110
|
|
||||||
timer_bgp_keepalive: 45
|
|
||||||
event_history_cli: size_medium
|
|
||||||
event_history_detail: size_large
|
|
||||||
event_history_events: size_medium
|
|
||||||
event_history_periodic: size_small
|
|
||||||
suppress_fib_pending: true
|
|
||||||
state: present
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *true
|
|
||||||
|
|
||||||
- name: "Check Idempotence"
|
|
||||||
nxos_bgp: *configure_non_default
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *false
|
|
||||||
|
|
||||||
- name: "Remove BGP"
|
|
||||||
nxos_bgp: *remove
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *true
|
|
||||||
|
|
||||||
- name: "Check Idempotence"
|
|
||||||
nxos_bgp: *remove
|
|
||||||
register: result
|
|
||||||
|
|
||||||
- assert: *false
|
|
||||||
|
|
||||||
- name: "Disable feature bgp"
|
|
||||||
nxos_feature:
|
|
||||||
feature: bgp
|
|
||||||
state: disabled
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
|
|
||||||
rescue:
|
|
||||||
- name: "Cleanup BGP"
|
|
||||||
nxos_bgp: *remove
|
|
||||||
ignore_errors: yes
|
|
||||||
|
|
||||||
- name: "Disable feature bgp"
|
|
||||||
nxos_feature:
|
|
||||||
feature: bgp
|
|
||||||
state: disabled
|
|
||||||
provider: "{{ nxapi }}"
|
|
||||||
ignore_errors: yes
|
|
||||||
|
|
||||||
always:
|
|
||||||
- debug: msg="END TRANSPORT:NXAPI nxos_bgp sanity test"
|
|
Loading…
Reference in New Issue