Skip to content

Commit

Permalink
nxos_interface: Fix admin_state check for n6k (ansible#55673)
Browse files Browse the repository at this point in the history
* Fix admin_state check for n6k

* Fix rx and tx_rate intent check test
  • Loading branch information
mikewiebe authored and trishnaguha committed May 8, 2019
1 parent a5b6a16 commit bceca72
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
15 changes: 15 additions & 0 deletions lib/ansible/modules/network/nxos/nxos_interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -573,6 +573,11 @@ def map_config_to_obj(want, module):
elif intf_type in ('loopback', 'management', 'nve'):
obj['name'] = normalize_interface(interface_table.get('interface'))
obj['admin_state'] = interface_table.get('admin_state')
if obj['admin_state'] is None and intf_type == 'loopback':
# Some platforms don't have the 'admin_state' key.
# For loopback interfaces it's safe to use the
# 'state' key instead.
obj['admin_state'] = interface_table.get('state')
obj['description'] = interface_table.get('desc')

elif intf_type == 'portchannel':
Expand All @@ -581,6 +586,16 @@ def map_config_to_obj(want, module):
obj['description'] = interface_table.get('desc')
obj['mtu'] = interface_table.get('eth_mtu')

if obj['admin_state'] is None:
# Some nxos platforms do not have the 'admin_state' key.
# Use the 'state_rsn_desc' key instead to determine the
# admin state of the interface.
state_description = interface_table.get('state_rsn_desc')
if state_description == 'Administratively down':
obj['admin_state'] = 'down'
elif state_description is not None:
obj['admin_state'] = 'up'

objs.append(obj)

return objs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,16 @@
that:
- "result.failed == false"

- name: "Clear interface {{ testint2 }} counters before next task"
nxos_command:
commands: "clear counters interface {{ testint2 }}"
ignore_errors: yes

- name: Check intent arguments (failed condition)
nxos_interface:
name: "{{ testint2 }}"
admin_state: down
tx_rate: gt(0)
tx_rate: gt(10000)
rx_rate: lt(0)
provider: "{{ connection }}"
ignore_errors: yes
Expand All @@ -39,7 +44,7 @@
- assert:
that:
- "result.failed == true"
- "'tx_rate gt(0)' in result.failed_conditions"
- "'tx_rate gt(10000)' in result.failed_conditions"
- "'rx_rate lt(0)' in result.failed_conditions"

- name: aggregate definition of interface
Expand Down

0 comments on commit bceca72

Please sign in to comment.