nxos fix cherry-pick (#36340)

* Fix nxos_system tests (#36201)

* Fix nxos_system tests

* Add debug connection plugin info

* Move sanity test under common

(cherry picked from commit 5b5d24631a)

* Fixes for the N3500 platform that uses the A8 image (#36261)

* fix nxos_l3_interface tests as n35 doesn't support ipv6

* add terminal dont-ask to nxos_feature and nxos_lldp

* put interfaces in L2 mode for N35

* fix nxos_feature unit-tests

(cherry picked from commit e24c547a3a)
pull/36342/head
Trishna Guha 7 years ago committed by GitHub
parent d568701254
commit b08bdc5f6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -236,6 +236,9 @@ def main():
cmds = get_commands(proposed, existing, state, module)
if cmds:
# On N35 A8 images, some features return a yes/no prompt
# on enablement or disablement. Bypass using terminal dont-ask
cmds.insert(0, 'terminal dont-ask')
if not module.check_mode:
load_config(module, cmds)
results['changed'] = True

@ -99,6 +99,9 @@ def main():
result['commands'] = commands
if commands:
# On N35 A8 images, some features return a yes/no prompt
# on enablement or disablement. Bypass using terminal dont-ask
commands.insert(0, 'terminal dont-ask')
if not module.check_mode:
load_config(module, commands)

@ -7,6 +7,10 @@
- set_fact: testint2="{{ nxos_int2 }}"
- set_fact: testint3="{{ nxos_int3 }}"
- set_fact: ipv6_address=""
- set_fact: ipv6_address="33:db::2/8"
when: ipv6_supported
- name: Setup - remove address from interface prior to testing(Part1)
nxos_config:
lines:
@ -69,7 +73,7 @@
nxos_l3_interface: &conf_agg
aggregate:
- { name: "{{ testint2 }}", ipv4: 192.168.22.1/24 }
- { name: "{{ testint3 }}", ipv4: 192.168.20.1/24, ipv6: "33:db::2/8" }
- { name: "{{ testint3 }}", ipv4: 192.168.20.1/24, ipv6: "{{ ipv6_address }}" }
provider: "{{ cli }}"
register: result
@ -89,7 +93,7 @@
nxos_l3_interface: &rm_agg
aggregate:
- { name: "{{ testint2 }}", ipv4: 192.168.22.1/24 }
- { name: "{{ testint3 }}", ipv4: 192.168.20.1/24, ipv6: "33:db::2/8" }
- { name: "{{ testint3 }}", ipv4: 192.168.20.1/24, ipv6: "{{ ipv6_address }}" }
provider: "{{ cli }}"
state: absent
register: result

@ -7,11 +7,15 @@
- set_fact: testint2="{{ nxos_int2 }}"
- set_fact: testint3="{{ nxos_int3 }}"
- set_fact: ipv6_address=""
- set_fact: ipv6_address="33:db::2/8"
when: ipv6_supported
- name: Setup - Remove address from interfaces aggregate
nxos_l3_interface:
aggregate:
- { name: "{{ testint2 }}", ipv4: 192.168.22.1/24 }
- { name: "{{ testint3 }}", ipv4: 192.168.20.1/24, ipv6: "33:db::2/8" }
- { name: "{{ testint3 }}", ipv4: 192.168.20.1/24, ipv6: "{{ ipv6_address }}" }
provider: "{{ nxapi }}"
state: absent
ignore_errors: yes
@ -59,7 +63,7 @@
nxos_l3_interface: &conf_agg
aggregate:
- { name: "{{ testint2 }}", ipv4: 192.168.22.1/24 }
- { name: "{{ testint3 }}", ipv4: 192.168.20.1/24, ipv6: "33:db::2/8" }
- { name: "{{ testint3 }}", ipv4: 192.168.20.1/24, ipv6: "{{ ipv6_address }}" }
provider: "{{ nxapi }}"
register: result
@ -79,7 +83,7 @@
nxos_l3_interface: &rm_agg
aggregate:
- { name: "{{ testint2 }}", ipv4: 192.168.22.1/24 }
- { name: "{{ testint3 }}", ipv4: 192.168.20.1/24, ipv6: "33:db::2/8" }
- { name: "{{ testint3 }}", ipv4: 192.168.20.1/24, ipv6: "{{ ipv6_address }}" }
provider: "{{ nxapi }}"
state: absent
register: result

@ -31,6 +31,14 @@
- "interface {{ testint1 }}"
- "interface {{ testint2 }}"
- name: Put interface in L2 mode
nxos_interface:
aggregate:
- { name: "{{testint1}}" }
- { name: "{{testint2}}" }
mode: layer2
when: platform is match("N35")
- name: create linkagg
nxos_linkagg: &create
group: 20

@ -4,8 +4,9 @@
when: ansible_connection == "local"
- name: Make sure LLDP is not running before tests
nxos_config:
lines: no feature lldp
nxos_feature:
feature: lldp
state: disabled
provider: "{{ connection }}"
- name: Enable LLDP service

@ -4,8 +4,9 @@
when: ansible_connection == "local"
- name: Make sure LLDP is not running before tests
nxos_config:
lines: no feature lldp
nxos_feature:
feature: lldp
state: disabled
provider: "{{ connection }}"
- name: Enable LLDP service

@ -0,0 +1,36 @@
---
- debug: msg="START connection={{ ansible_connection }}/sanity.yaml"
- debug: msg="Using provider={{ connection.transport }}"
when: ansible_connection == "local"
- block:
- name: configure hostname and domain-name
nxos_system: &hostname
hostname: "{{ inventory_hostname_short }}"
domain_name: test.example.com
provider: "{{ connection }}"
- name: remove configuration
nxos_system:
state: absent
provider: "{{ connection }}"
- name: configure name servers
nxos_system:
name_servers:
- 8.8.8.8
- 8.8.4.4
provider: "{{ connection }}"
- name: configure name servers with VRF support
nxos_system:
name_servers:
- { server: 8.8.8.8, vrf: management }
- { server: 8.8.4.4, vrf: management }
provider: "{{ connection }}"
always:
- name: Re-configure hostname
nxos_system: *hostname
- debug: msg="END connection={{ ansible_connection }}/sanity.yaml"

@ -3,36 +3,39 @@
- debug: msg="Using provider={{ connection.transport }}"
when: ansible_connection == "local"
- name: setup
nxos_config:
lines: hostname switch
match: none
provider: "{{ connection }}"
- name: configure hostname
nxos_system:
hostname: foo
provider: "{{ connection }}"
register: result
- assert:
that:
- "result.changed == true"
- name: verify hostname
nxos_system:
hostname: foo
provider: "{{ connection }}"
register: result
- assert:
that:
- "result.changed == false"
- name: teardown
nxos_config:
lines: hostname switch
match: none
provider: "{{ connection }}"
- debug: msg="END connection={{ ansible_connection }}/set_hostname.yaml"
- block:
- name: setup
nxos_config:
lines: "hostname {{ inventory_hostname }}"
match: none
provider: "{{ connection }}"
- name: configure hostname
nxos_system:
hostname: foo
provider: "{{ connection }}"
register: result
- assert:
that:
- "result.changed == true"
- name: verify hostname
nxos_system:
hostname: foo
provider: "{{ connection }}"
register: result
- assert:
that:
- "result.changed == false"
always:
- name: teardown
nxos_config:
lines: "hostname {{ inventory_hostname }}"
match: none
provider: "{{ connection }}"
- debug: msg="END connection={{ ansible_connection }}/set_hostname.yaml"

@ -12,6 +12,7 @@
- no ip domain-list redhat.com
match: none
provider: "{{ nxapi }}"
ignore_errors: yes
- name: configure domain_list using platform agnostic module
net_system:

@ -105,3 +105,7 @@
- debug: msg="IMAGE VERSION {{ image_version }}"
- debug: msg="IMAGE TAG {{ imagetag }}"
- debug: msg="IMAGE MR {{ imagemr }}"
- set_fact: ipv6_supported="true"
- set_fact: ipv6_supported="false"
when: platform is match("N35")

@ -69,9 +69,9 @@ class TestNxosFeatureModule(TestNxosModule):
def test_nxos_feature_enable(self):
set_module_args(dict(feature='nve', state='enabled'))
result = self.execute_module(changed=True)
self.assertEqual(result['commands'], ['feature nv overlay'])
self.assertEqual(result['commands'], ['terminal dont-ask', 'feature nv overlay'])
def test_nxos_feature_disable(self):
set_module_args(dict(feature='ospf', state='disabled'))
result = self.execute_module(changed=True)
self.assertEqual(result['commands'], ['no feature ospf'])
self.assertEqual(result['commands'], ['terminal dont-ask', 'no feature ospf'])

Loading…
Cancel
Save