Test system (#22420)

* ios_system

* tests for ios_system

* tests for *_system

* working ios_system on cli

* Typo

* Loopback10 (single word, upeprcase)

* Revert docs changes

* Working iosxr_system tests

* eos, not nxos

* nxos_system
This commit is contained in:
John R Barker 2017-03-08 19:21:45 +00:00 committed by Chris Alfonso
parent 0b250016b0
commit 41f5648c44
36 changed files with 1573 additions and 10 deletions

View file

@ -1,6 +1,7 @@
---
- hosts: ios
gather_facts: no
connection: local
vars:
limit_to: "*"
@ -11,3 +12,4 @@
- { role: ios_config, when: "limit_to in ['*', 'ios_config']" }
- { role: ios_facts, when: "limit_to in ['*', 'ios_facts']" }
- { role: ios_template, when: "limit_to in ['*', 'ios_template']" }
- { role: ios_system, when: "limit_to in ['*', 'ios_system']" }

View file

@ -12,3 +12,4 @@
- { role: iosxr_config, when: "limit_to in ['*', 'iosxr_config']" }
- { role: iosxr_facts, when: "limit_to in ['*', 'iosxr_facts']" }
- { role: iosxr_template, when: "limit_to in ['*', 'iosxr_template']" }
- { role: iosxr_system, when: "limit_to in ['*', 'iosxr_system']" }

View file

@ -15,4 +15,5 @@
- { role: nxos_nxapi, when: "limit_to in ['*', 'nxos_nxapi']" }
- { role: nxos_evpn_global, when: "limit_to in ['*', 'nxos_evpn_global']" }
- { role: nxos_feature, when: "limit_to in ['*', 'nxos_feature']" }
- { role: nxos_feature, when: "limit_to in ['*', 'nxos_mtu']" }
- { role: nxos_mtu, when: "limit_to in ['*', 'nxos_mtu']" }
- { role: nxos_system, when: "limit_to in ['*', 'nxos_system']" }

View file

@ -6,7 +6,7 @@
register: test_cases
- 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
include: "{{ test_case_to_run }}"

View file

@ -6,13 +6,14 @@
register: test_cases
- 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: enable eapi
nxos_config:
lines:
- feature eapi
- eapi http port 80
eos_eapi:
enable_http: yes
enable_https: yes
enable_local_http: yes
enable_socket: yes
provider: "{{ cli }}"
- name: run test case
@ -22,7 +23,9 @@
loop_var: test_case_to_run
- name: disable eapi
nxos_config:
lines:
- no feature eapi
eos_eapi:
enable_http: no
enable_https: no
enable_local_http: no
enable_socket: no
provider: "{{ cli }}"

View file

@ -0,0 +1,2 @@
dependencies:
- prepare_ios_tests

View file

@ -0,0 +1,16 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/cli"
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,2 @@
---
- { include: cli.yaml, tags: ['cli'] }

View file

@ -0,0 +1,132 @@
---
- debug: msg="START cli/set_domain_search.yaml"
- name: setup
ios_config:
lines:
- no ip domain-list ansible.com
- no ip domain-list redhat.com
match: none
authorize: yes
provider: "{{ cli }}"
- name: configure domain_search
ios_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ cli }}"
authorize: yes
register: result
- assert:
that:
- result.changed == true
- "'ip domain list ansible.com' in result.commands"
- "'ip domain list redhat.com' in result.commands"
- name: verify domain_search
ios_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ cli }}"
authorize: yes
register: result
- assert:
that:
- result.changed == false
- name: remove one entry
ios_system:
domain_search:
- ansible.com
provider: "{{ cli }}"
authorize: yes
register: result
- assert:
that:
- result.changed == true
- "'no ip domain list redhat.com' in result.commands"
- name: verify remove one entry
ios_system:
domain_search:
- ansible.com
provider: "{{ cli }}"
authorize: yes
register: result
- assert:
that:
- result.changed == false
- name: add one entry
ios_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ cli }}"
authorize: yes
register: result
- assert:
that:
- result.changed == true
- "'ip domain list redhat.com' in result.commands"
- name: verify add one entry
ios_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ cli }}"
authorize: yes
register: result
- assert:
that:
- result.changed == false
- name: add and remove one entry
ios_system:
domain_search:
- ansible.com
- eng.ansible.com
provider: "{{ cli }}"
authorize: yes
register: result
- assert:
that:
- result.changed == true
- "'no ip domain list redhat.com' in result.commands"
- "'ip domain list eng.ansible.com' in result.commands"
- result.commands|length == 2
- name: verify add and remove one entry
ios_system:
domain_search:
- ansible.com
- eng.ansible.com
provider: "{{ cli }}"
authorize: yes
register: result
- assert:
that:
- result.changed == false
- name: teardown
ios_config:
lines:
- no ip domain-list ansible.com
- no ip domain-list redhat.com
- no ip domain-list eng.ansible.com
match: none
authorize: yes
provider: "{{ cli }}"
- debug: msg="END cli/set_domain_search.yaml"

View file

@ -0,0 +1,40 @@
---
- debug: msg="START cli/set_domain_name.yaml"
- name: setup
ios_config:
lines: no ip domain-name
match: none
authorize: yes
provider: "{{ cli }}"
- name: configure domain_name
ios_system:
domain_name: eng.ansible.com
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == true"
- name: verify domain_name
ios_system:
domain_name: eng.ansible.com
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == false"
- name: teardown
ios_config:
lines: no ip domain-name
match: none
authorize: yes
provider: "{{ cli }}"
- debug: msg="END cli/set_domain_name.yaml"

View file

@ -0,0 +1,40 @@
---
- debug: msg="START cli/set_hostname.yaml"
- name: setup
ios_config:
lines: hostname switch
match: none
authorize: yes
provider: "{{ cli }}"
- name: configure hostname
ios_system:
hostname: foo
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == true"
- name: verify hostname
ios_system:
hostname: foo
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == false"
- name: teardown
ios_config:
lines: "hostname {{ inventory_hostname }}"
match: none
authorize: yes
provider: "{{ cli }}"
- debug: msg="END cli/set_hostname.yaml"

View file

@ -0,0 +1,76 @@
---
- debug: msg="START cli/set_lookup_source.yaml"
- name: setup
ios_config:
lines:
- no ip domain lookup source-interface
- vrf definition ansible
match: none
authorize: yes
provider: "{{ cli }}"
- name: configure lookup_source
ios_system:
lookup_source: Loopback10
provider: "{{ cli }}"
authorize: yes
register: result
- assert:
that:
- result.changed == true
- "'ip domain lookup source-interface Loopback10' in result.commands"
- name: verify lookup_source
ios_system:
lookup_source: Loopback10
provider: "{{ cli }}"
authorize: yes
register: result
- assert:
that:
- result.changed == false
#- name: change to vrf
# ios_system:
# lookup_source:
# - interface: Loopback10
# vrf: ansible
# authorize: yes
# provider: "{{ cli }}"
# register: result
#
#- assert:
# that:
# - result.changed == true
# - "'no ip domain lookup source-interface Management1' in result.commands"
# - "'ip domain lookup vrf ansible source-interface Management1' in result.commands"
# - result.commands|length == 2
#
#- name: verify change to vrf
# ios_system:
# lookup_source:
# - interface: Management1
# vrf: ansible
# authorize: yes
# provider: "{{ cli }}"
# register: result
#
#- assert:
# that:
# - result.changed == false
- name: teardown
ios_config:
lines:
- no ip domain lookup source-interface
- no vrf definition ansible
match: none
authorize: yes
provider: "{{ cli }}"
ignore_errors: yes
# FIXME: Not sure why this is failing with msg": "no vrf definition ansible\r\n% IPv4 and IPv6 addresses from all interfaces in VRF ansible have been removed\r\nfoo(config)#", rc:1
- debug: msg="END cli/set_lookup_source.yaml"

View file

@ -0,0 +1,96 @@
---
- debug: msg="START cli/set_name_servers.yaml"
- name: setup
ios_config:
lines:
- no ip name-server
match: none
authorize: yes
provider: "{{ cli }}"
- name: configure name_servers
ios_system:
name_servers:
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- result.commands|length == 3
- "'ip name-server 1.1.1.1' in result.commands"
- "'ip name-server 2.2.2.2' in result.commands"
- "'ip name-server 3.3.3.3' in result.commands"
- name: verify name_servers
ios_system:
name_servers:
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
#- name: change to vrf
# ios_system:
# name_servers:
# - 1.1.1.1
# - { server: 2.2.2.2, vrf: ansible }
# - 3.3.3.3
# provider: "{{ cli }}"
# register: result
#- assert:
# that:
# - result.changed == true
# - result.commands|length == 2
# - "'no ip name-server 2.2.2.2' in result.commands"
# - "'ip name-server 2.2.2.2 vrf ansible' in result.commands"
#- name: verify change to vrf
# ios_system:
# name_servers:
# - 1.1.1.1
# - { server: 2.2.2.2, vrf: ansible }
# - 3.3.3.3
# provider: "{{ cli }}"
# register: result
#
#- assert:
# that:
# - result.changed == false
- name: remove one
ios_system:
name_servers:
- 1.1.1.1
- 2.2.2.2
authorize: yes
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- result.commands|length == 1
- "'no ip name-server 3.3.3.3' in result.commands"
- name: teardown
ios_config:
lines:
- no ip domain lookup source-interface
match: none
authorize: yes
provider: "{{ cli }}"
- debug: msg="END cli/set_name_servers.yaml"

View file

@ -0,0 +1,2 @@
dependencies:
- prepare_iosxr_tests

View file

@ -0,0 +1,16 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/cli"
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,2 @@
---
- { include: cli.yaml, tags: ['cli'] }

View file

@ -0,0 +1,122 @@
---
- debug: msg="START cli/set_domain_search.yaml"
- name: setup
iosxr_config:
lines:
- no ip domain-list ansible.com
- no ip domain-list redhat.com
match: none
provider: "{{ cli }}"
- name: configure domain_search
iosxr_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- "'domain list ansible.com' in result.commands"
- "'domain list redhat.com' in result.commands"
- name: verify domain_search
iosxr_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
- name: remove one entry
iosxr_system:
domain_search:
- ansible.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- "'no domain list redhat.com' in result.commands"
- name: verify remove one entry
iosxr_system:
domain_search:
- ansible.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
- name: add one entry
iosxr_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- "'domain list redhat.com' in result.commands"
- name: verify add one entry
iosxr_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
- name: add and remove one entry
iosxr_system:
domain_search:
- ansible.com
- eng.ansible.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- "'no domain list redhat.com' in result.commands"
- "'domain list eng.ansible.com' in result.commands"
- result.commands|length == 2
- name: verify add and remove one entry
iosxr_system:
domain_search:
- ansible.com
- eng.ansible.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
- name: teardown
iosxr_config:
lines:
- no domain list ansible.com
- no domain list redhat.com
- no domain list eng.ansible.com
match: none
provider: "{{ cli }}"
- debug: msg="END cli/set_domain_search.yaml"

View file

@ -0,0 +1,36 @@
---
- debug: msg="START cli/set_domain_name.yaml"
- name: setup
iosxr_config:
lines: no domain name
match: none
provider: "{{ cli }}"
- name: configure domain_name
iosxr_system:
domain_name: eng.ansible.com
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == true"
- name: verify domain_name
iosxr_system:
domain_name: eng.ansible.com
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == false"
- name: teardown
iosxr_config:
lines: no domain name
match: none
provider: "{{ cli }}"
- debug: msg="END cli/set_domain_name.yaml"

View file

@ -0,0 +1,36 @@
---
- debug: msg="START cli/set_hostname.yaml"
- name: setup
iosxr_config:
lines: hostname switch
match: none
provider: "{{ cli }}"
- name: configure hostname
iosxr_system:
hostname: foo
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == true"
- name: verify hostname
iosxr_system:
hostname: foo
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == false"
- name: teardown
iosxr_config:
lines: "hostname {{ inventory_hostname }}"
match: none
provider: "{{ cli }}"
- debug: msg="END cli/set_hostname.yaml"

View file

@ -0,0 +1,68 @@
---
- debug: msg="START cli/set_lookup_source.yaml"
- name: setup
iosxr_config:
lines:
- no domain lookup source-interface Loopback10
# - vrf ansible
match: none
provider: "{{ cli }}"
- name: configure lookup_source
iosxr_system:
lookup_source: Loopback10
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- "'domain lookup source-interface Loopback10' in result.commands"
- name: verify lookup_source
iosxr_system:
lookup_source: Loopback10
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
#- name: change to vrf
# iosxr_system:
# lookup_source:
# - interface: Loopback10
# vrf: ansible
# provider: "{{ cli }}"
# register: result
#
#- assert:
# that:
# - result.changed == true
# - "'no ip domain lookup source-interface Management1' in result.commands"
# - "'ip domain lookup vrf ansible source-interface Management1' in result.commands"
# - result.commands|length == 2
#
#- name: verify change to vrf
# iosxr_system:
# lookup_source:
# - interface: Management1
# vrf: ansible
# provider: "{{ cli }}"
# register: result
#
#- assert:
# that:
# - result.changed == false
- name: teardown
iosxr_config:
lines:
- no domain lookup source-interface Loopback10
- no vrf ansible
match: none
provider: "{{ cli }}"
- debug: msg="END cli/set_lookup_source.yaml"

View file

@ -0,0 +1,88 @@
---
- debug: msg="START cli/set_name_servers.yaml"
- name: setup
iosxr_config:
lines:
- no ip name-server 1.1.1.1
- no ip name-server 2.2.2.2
- no ip name-server 3.3.3.3
match: none
provider: "{{ cli }}"
- name: configure name_servers
iosxr_system:
name_servers:
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- result.commands|length == 3
- "'domain name-server 1.1.1.1' in result.commands"
- "'domain name-server 2.2.2.2' in result.commands"
- "'domain name-server 3.3.3.3' in result.commands"
- name: verify name_servers
iosxr_system:
name_servers:
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
#- name: change to vrf
# iosxr_system:
# name_servers:
# - 1.1.1.1
# - { server: 2.2.2.2, vrf: ansible }
# - 3.3.3.3
# provider: "{{ cli }}"
# register: result
#- assert:
# that:
# - result.changed == true
# - result.commands|length == 2
# - "'no ip name-server 2.2.2.2' in result.commands"
# - "'ip name-server 2.2.2.2 vrf ansible' in result.commands"
#- name: verify change to vrf
# iosxr_system:
# name_servers:
# - 1.1.1.1
# - { server: 2.2.2.2, vrf: ansible }
# - 3.3.3.3
# provider: "{{ cli }}"
# register: result
#
#- assert:
# that:
# - result.changed == false
- name: remove one
iosxr_system:
name_servers:
- 1.1.1.1
- 2.2.2.2
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- result.commands|length == 1
- "'no domain name-server 3.3.3.3' in result.commands"
# FIXME: No teardown
#
- debug: msg="END cli/set_name_servers.yaml"

View file

@ -11,6 +11,7 @@
nxos_mtu:
sysmtu: 2000
provider: "{{ cli }}"
transport: nxapi
register: result
- assert:

View file

@ -0,0 +1,2 @@
dependencies:
- prepare_nxos_tests

View file

@ -0,0 +1,16 @@
---
- name: collect all cli test cases
find:
paths: "{{ role_path }}/tests/cli"
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,3 @@
---
- { include: cli.yaml, tags: ['cli'] }
- { include: nxapi.yaml, tags: ['nxapi'] }

View file

@ -0,0 +1,29 @@
---
- name: collect all nxapi test cases
find:
paths: "{{ role_path }}/tests/nxapi"
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: enable nxapi
nxos_config:
lines:
- feature nxapi
- nxapi http port 80
provider: "{{ cli }}"
- name: run test case
include: "{{ test_case_to_run }}"
with_items: "{{ test_items }}"
loop_control:
loop_var: test_case_to_run
- name: disable nxapi
nxos_config:
lines:
- no feature nxapi
provider: "{{ cli }}"

View file

@ -0,0 +1,122 @@
---
- debug: msg="START cli/set_domain_list.yaml"
- name: setup
nxos_config:
lines:
- no ip domain-list ansible.com
- no ip domain-list redhat.com
match: none
provider: "{{ cli }}"
- name: configure domain_list
nxos_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- "'ip domain-list ansible.com' in result.commands"
- "'ip domain-list redhat.com' in result.commands"
- name: verify domain_list
nxos_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
- name: remove one entry
nxos_system:
domain_search:
- ansible.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- "'no ip domain-list redhat.com' in result.commands"
- name: verify remove one entry
nxos_system:
domain_search:
- ansible.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
- name: add one entry
nxos_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- "'ip domain-list redhat.com' in result.commands"
- name: verify add one entry
nxos_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
- name: add and remove one entry
nxos_system:
domain_search:
- ansible.com
- eng.ansible.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- "'no ip domain-list redhat.com' in result.commands"
- "'ip domain-list eng.ansible.com' in result.commands"
- result.commands|length == 2
- name: verify add and remove one entry
nxos_system:
domain_search:
- ansible.com
- eng.ansible.com
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
- name: teardown
nxos_config:
lines:
- no ip domain-list ansible.com
- no ip domain-list redhat.com
- no ip domain-list eng.ansible.com
match: none
provider: "{{ cli }}"
- debug: msg="END cli/set_domain_search.yaml"

View file

@ -0,0 +1,36 @@
---
- debug: msg="START cli/set_domain_name.yaml"
- name: setup
nxos_config:
lines: no ip domain-name eng.ansible.com
match: none
provider: "{{ cli }}"
- name: configure domain_name
nxos_system:
domain_name: eng.ansible.com
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == true"
- name: verify domain_name
nxos_system:
domain_name: eng.ansible.com
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == false"
- name: teardown
nxos_config:
lines: no ip domain-name eng.ansible.com
match: none
provider: "{{ cli }}"
- debug: msg="END cli/set_domain_name.yaml"

View file

@ -0,0 +1,36 @@
---
- debug: msg="START cli/set_hostname.yaml"
- name: setup
nxos_config:
lines: hostname switch
match: none
provider: "{{ cli }}"
- name: configure hostname
nxos_system:
hostname: foo
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == true"
- name: verify hostname
nxos_system:
hostname: foo
provider: "{{ cli }}"
register: result
- assert:
that:
- "result.changed == false"
- name: teardown
nxos_config:
lines: "hostname {{ inventory_hostname }}"
match: none
provider: "{{ cli }}"
- debug: msg="END cli/set_hostname.yaml"

View file

@ -0,0 +1,68 @@
---
- debug: msg="START cli/set_lookup_source.yaml"
- name: setup
nxos_config:
lines:
- no ip domain lookup source-interface
- vrf definition ansible
match: none
provider: "{{ cli }}"
- name: configure lookup_source
nxos_system:
lookup_source: Management1
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- "'ip domain lookup source-interface Management1' in result.commands"
- name: verify lookup_source
nxos_system:
lookup_source: Management1
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
- name: change to vrf
nxos_system:
lookup_source:
- interface: Management1
vrf: ansible
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- "'no ip domain lookup source-interface Management1' in result.commands"
- "'ip domain lookup vrf ansible source-interface Management1' in result.commands"
- result.commands|length == 2
- name: verify change to vrf
nxos_system:
lookup_source:
- interface: Management1
vrf: ansible
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
- name: teardown
nxos_config:
lines:
- no ip domain lookup source-interface
- no vrf definition ansible
match: none
provider: "{{ cli }}"
- debug: msg="END cli/set_lookup_source.yaml"

View file

@ -0,0 +1,95 @@
---
- debug: msg="START cli/set_name_servers.yaml"
- name: setup
nxos_config:
lines:
- no ip name-server 1.1.1.1
- no ip name-server 2.2.2.2
- no ip name-server 3.3.3.3
match: none
provider: "{{ cli }}"
- name: configure name_servers
nxos_system:
name_servers:
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- result.commands|length == 3
- "'ip name-server 1.1.1.1' in result.commands"
- "'ip name-server 2.2.2.2' in result.commands"
- "'ip name-server 3.3.3.3' in result.commands"
- name: verify name_servers
nxos_system:
name_servers:
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == false
#- name: change to vrf
# nxos_system:
# name_servers:
# - 1.1.1.1
# - { server: 2.2.2.2, vrf: ansible }
# - 3.3.3.3
# provider: "{{ cli }}"
# register: result
#- assert:
# that:
# - result.changed == true
# - result.commands|length == 2
# - "'no ip name-server 2.2.2.2' in result.commands"
# - "'ip name-server 2.2.2.2 vrf ansible' in result.commands"
#- name: verify change to vrf
# nxos_system:
# name_servers:
# - 1.1.1.1
# - { server: 2.2.2.2, vrf: ansible }
# - 3.3.3.3
# provider: "{{ cli }}"
# register: result
#
#- assert:
# that:
# - result.changed == false
- name: remove one
nxos_system:
name_servers:
- 1.1.1.1
- 2.2.2.2
provider: "{{ cli }}"
register: result
- assert:
that:
- result.changed == true
- result.commands|length == 1
- "'no ip name-server 3.3.3.3' in result.commands"
- name: teardown
nxos_config:
lines:
- no ip lookup source-interface
match: none
provider: "{{ cli }}"
ignore_errors: yes
# FIXME Copied from iosxr, not sure what we need here
- debug: msg="END cli/set_name_servers.yaml"

View file

@ -0,0 +1,131 @@
---
- debug: msg="START nxapi/set_domain_list.yaml"
# nxapi will error if you try and remove a non-existent entry,
# Therefore we do this as a with_items loop with ignore_errors
- name: setup
nxos_config:
lines:
- no ip domain-list {{ item }}
match: none
provider: "{{ nxapi }}"
ignore_errors: yes
with_items:
- ansible.com
- redhat.com
- name: configure domain_list
nxos_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == true
- "'ip domain-list ansible.com' in result.commands"
- "'ip domain-list redhat.com' in result.commands"
- name: verify domain_list
nxos_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == false
- name: remove one entry
nxos_system:
domain_search:
- ansible.com
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == true
- "'no ip domain-list redhat.com' in result.commands"
- name: verify remove one entry
nxos_system:
domain_search:
- ansible.com
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == false
- name: add one entry
nxos_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == true
- "'ip domain-list redhat.com' in result.commands"
- name: verify add one entry
nxos_system:
domain_search:
- ansible.com
- redhat.com
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == false
- name: add and remove one entry
nxos_system:
domain_search:
- ansible.com
- eng.ansible.com
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == true
- "'no ip domain-list redhat.com' in result.commands"
- "'ip domain-list eng.ansible.com' in result.commands"
- result.commands|length == 2
- name: verify add and remove one entry
nxos_system:
domain_search:
- ansible.com
- eng.ansible.com
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == false
- name: teardown
nxos_config:
lines:
- no ip domain-list {{ item }}
match: none
provider: "{{ nxapi }}"
ignore_errors: yes
with_items:
- ansible.com
- redhat.com
- eng.ansible.com
- debug: msg="END nxapi/set_domain_search.yaml"

View file

@ -0,0 +1,38 @@
---
- debug: msg="START nxapi/set_domain_name.yaml"
- name: setup
nxos_config:
lines: no ip domain-name eng.ansible.com
match: none
provider: "{{ nxapi }}"
# NXAPI errors if you try to remove something that doesn't exist
ignore_errors: yes
- name: configure domain_name
nxos_system:
domain_name: eng.ansible.com
provider: "{{ nxapi }}"
register: result
- assert:
that:
- "result.changed == true"
- name: verify domain_name
nxos_system:
domain_name: eng.ansible.com
provider: "{{ nxapi }}"
register: result
- assert:
that:
- "result.changed == false"
- name: teardown
nxos_config:
lines: no ip domain-name eng.ansible.com
match: none
provider: "{{ nxapi }}"
- debug: msg="END nxapi/set_domain_name.yaml"

View file

@ -0,0 +1,36 @@
---
- debug: msg="START nxapi/set_hostname.yaml"
- name: setup
nxos_config:
lines: hostname switch
match: none
provider: "{{ nxapi }}"
- name: configure hostname
nxos_system:
hostname: foo
provider: "{{ nxapi }}"
register: result
- assert:
that:
- "result.changed == true"
- name: verify hostname
nxos_system:
hostname: foo
provider: "{{ nxapi }}"
register: result
- assert:
that:
- "result.changed == false"
- name: teardown
nxos_config:
lines: "hostname {{ inventory_hostname }}"
match: none
provider: "{{ nxapi }}"
- debug: msg="END nxapi/set_hostname.yaml"

View file

@ -0,0 +1,68 @@
---
- debug: msg="START nxapi/set_lookup_source.yaml"
- name: setup
nxos_config:
lines:
- no ip domain lookup source-interface
- vrf definition ansible
match: none
provider: "{{ nxapi }}"
- name: configure lookup_source
nxos_system:
lookup_source: Management1
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == true
- "'ip domain lookup source-interface Management1' in result.commands"
- name: verify lookup_source
nxos_system:
lookup_source: Management1
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == false
- name: change to vrf
nxos_system:
lookup_source:
- interface: Management1
vrf: ansible
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == true
- "'no ip domain lookup source-interface Management1' in result.commands"
- "'ip domain lookup vrf ansible source-interface Management1' in result.commands"
- result.commands|length == 2
- name: verify change to vrf
nxos_system:
lookup_source:
- interface: Management1
vrf: ansible
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == false
- name: teardown
nxos_config:
lines:
- no ip domain lookup source-interface
- no vrf definition ansible
match: none
provider: "{{ nxapi }}"
- debug: msg="END nxapi/set_lookup_source.yaml"

View file

@ -0,0 +1,101 @@
---
- debug: msg="START nxapi/set_name_servers.yaml"
# nxapi will error if you try and remove a non-existent entry,
# Therefore we do this as a with_items loop with ignore_errors
- name: setup
nxos_config:
lines:
- no ip name-server {{ item }}
match: none
provider: "{{ nxapi }}"
ignore_errors: yes
with_items:
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
- name: configure name_servers
nxos_system:
name_servers:
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == true
- result.commands|length == 3
- "'ip name-server 1.1.1.1' in result.commands"
- "'ip name-server 2.2.2.2' in result.commands"
- "'ip name-server 3.3.3.3' in result.commands"
- name: verify name_servers
nxos_system:
name_servers:
- 1.1.1.1
- 2.2.2.2
- 3.3.3.3
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == false
#- name: change to vrf
# nxos_system:
# name_servers:
# - 1.1.1.1
# - { server: 2.2.2.2, vrf: ansible }
# - 3.3.3.3
# provider: "{{ nxapi }}"
# register: result
#- assert:
# that:
# - result.changed == true
# - result.commands|length == 2
# - "'no ip name-server 2.2.2.2' in result.commands"
# - "'ip name-server 2.2.2.2 vrf ansible' in result.commands"
#- name: verify change to vrf
# nxos_system:
# name_servers:
# - 1.1.1.1
# - { server: 2.2.2.2, vrf: ansible }
# - 3.3.3.3
# provider: "{{ nxapi }}"
# register: result
#
#- assert:
# that:
# - result.changed == false
- name: remove one
nxos_system:
name_servers:
- 1.1.1.1
- 2.2.2.2
provider: "{{ nxapi }}"
register: result
- assert:
that:
- result.changed == true
- result.commands|length == 1
- "'no ip name-server 3.3.3.3' in result.commands"
- name: teardown
nxos_config:
lines:
- no ip lookup source-interface
match: none
provider: "{{ nxapi }}"
ignore_errors: yes
# FIXME Copied from iosxr, not sure what we need here
- debug: msg="END nxapi/set_name_servers.yaml"