mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-08 22:30:04 -07:00
Enforcing NXAPI default HTTP behavior (#41817)
* nxos_nxapi http default behavior * Use nxos_nxapi module in prepare_nxos_tests * Refactor nxos_nxapi configure test to use yaml block * Extend nxos_nxapi https & http test cases * Removed NXOS internal release naming * Resolved ansibot sanity errors * Fix typo in prepare_nxos_tests * Address PR comments * Shippable indicates this is no longer needed * Add port change logic and testing
This commit is contained in:
parent
b87e1a023d
commit
db7300904d
17 changed files with 279 additions and 64 deletions
|
@ -1,7 +0,0 @@
|
|||
---
|
||||
- name: Assert configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'].l_port
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'].l_port|string is search("9443")
|
||||
- result.stdout[0]['operation_status'].o_status == 'nxapi enabled'
|
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
- name: Assert HTTP configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'].l_port
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'].l_port|string is search("80")
|
||||
- result.stdout[0]['operation_status'].o_status == 'nxapi enabled'
|
||||
when: major_version is version('9.2', '<')
|
||||
|
||||
- name: Assert HTTP configuration changes 9.2 or greater
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0]['http_port']
|
||||
- result.stdout[0]['http_port']|string is search("80")
|
||||
- result.stdout[0]['nxapi_status'] == 'nxapi enabled'
|
||||
when: major_version is version('9.2', '>=')
|
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
- name: Assert HTTPS configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'].l_port
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'].l_port|string is search("9443")
|
||||
- result.stdout[0]['operation_status'].o_status == 'nxapi enabled'
|
||||
when: major_version is version('9.2', '<')
|
||||
|
||||
- name: Assert HTTPS configuration changes 9.2 or greater
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0]['https_port']
|
||||
- result.stdout[0]['https_port']|string is search("9443")
|
||||
- result.stdout[0]['nxapi_status'] == 'nxapi enabled'
|
||||
when: major_version is version('9.2', '>=')
|
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
- name: Assert HTTPS & HTTP configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'][1].l_port
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'][1].l_port|string is search("9443")
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'][0].l_port
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'][0].l_port|string is search("80")
|
||||
- result.stdout[0]['operation_status'].o_status == 'nxapi enabled'
|
||||
when: major_version is version('9.2', '<')
|
||||
|
||||
- name: Assert HTTPS & HTTP configuration changes 9.2 or greater
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0]['https_port']
|
||||
- result.stdout[0]['https_port']|string is search("9443")
|
||||
- result.stdout[0]['http_port']
|
||||
- result.stdout[0]['http_port']|string is search("80")
|
||||
- result.stdout[0]['nxapi_status'] == 'nxapi enabled'
|
||||
when: major_version is version('9.2', '>=')
|
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
- name: Assert HTTPS & HTTP configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'][1].l_port
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'][1].l_port|string is search("500")
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'][0].l_port
|
||||
- result.stdout[0]['TABLE_listen_on_port']['ROW_listen_on_port'][0].l_port|string is search("99")
|
||||
- result.stdout[0]['operation_status'].o_status == 'nxapi enabled'
|
||||
when: major_version is version('9.2', '<')
|
||||
|
||||
- name: Assert HTTPS & HTTP configuration changes 9.2 or greater
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0]['https_port']
|
||||
- result.stdout[0]['https_port']|string is search("500")
|
||||
- result.stdout[0]['http_port']
|
||||
- result.stdout[0]['http_port']|string is search("99")
|
||||
- result.stdout[0]['nxapi_status'] == 'nxapi enabled'
|
||||
when: major_version is version('9.2', '>=')
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
- name: Assert HTTP configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0].https_port is not defined
|
||||
- result.stdout[0].http_port|string is search("80")
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
- name: Assert configuration changes
|
||||
- name: Assert HTTPS configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0].http_port is not defined
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
- name: Assert HTTPS && HTTP configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0].https_port is defined
|
||||
- result.stdout[0].http_port is defined
|
||||
- result.stdout[0].https_port|string is search("9443")
|
||||
- result.stdout[0].http_port|string is search("80")
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
- name: Assert HTTPS && HTTP configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0].https_port is defined
|
||||
- result.stdout[0].http_port is defined
|
||||
- result.stdout[0].https_port|string is search("500")
|
||||
- result.stdout[0].http_port|string is search("99")
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
- name: Assert HTTP configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0].https_port is not defined
|
||||
- result.stdout[0].http_port|string is search("80")
|
||||
- result.stdout[0].sandbox_status == 'Enabled'
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
- name: Assert configuration changes
|
||||
- name: Assert HTTPS configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0].http_port is not defined
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
- name: Assert HTTPS & HTTP configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0].https_port is defined
|
||||
- result.stdout[0].http_port is defined
|
||||
- result.stdout[0].https_port|string is search("9443")
|
||||
- result.stdout[0].http_port|string is search("80")
|
||||
- result.stdout[0].sandbox_status == 'Enabled'
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
- name: Assert HTTPS & HTTP configuration changes
|
||||
assert:
|
||||
that:
|
||||
- result.stdout[0].https_port is defined
|
||||
- result.stdout[0].http_port is defined
|
||||
- result.stdout[0].https_port|string is search("500")
|
||||
- result.stdout[0].http_port|string is search("99")
|
||||
- result.stdout[0].sandbox_status == 'Enabled'
|
|
@ -8,39 +8,135 @@
|
|||
nxos_nxapi:
|
||||
state: absent
|
||||
|
||||
- name: Configure NXAPI
|
||||
nxos_nxapi:
|
||||
enable_http: no
|
||||
enable_sandbox: "{{nxapi_sandbox_option|default(omit)}}"
|
||||
enable_https: yes
|
||||
https_port: 9443
|
||||
register: result
|
||||
- block:
|
||||
- name: Configure NXAPI HTTPS
|
||||
nxos_nxapi: &configure_https
|
||||
enable_http: no
|
||||
enable_sandbox: "{{nxapi_sandbox_option|default(omit)}}"
|
||||
enable_https: yes
|
||||
https_port: 9443
|
||||
register: result
|
||||
|
||||
- nxos_command:
|
||||
commands:
|
||||
- show nxapi | json
|
||||
register: result
|
||||
- nxos_command:
|
||||
commands:
|
||||
- show nxapi | json
|
||||
register: result
|
||||
|
||||
- include: targets/nxos_nxapi/tasks/platform/n7k/assert_changes.yaml
|
||||
when: platform is match('N7K')
|
||||
- include: targets/nxos_nxapi/tasks/platform/n7k/assert_changes_https.yaml
|
||||
when: platform is match('N7K')
|
||||
|
||||
- include: targets/nxos_nxapi/tasks/platform/n5k/assert_changes.yaml
|
||||
when: platform is match('N5K')
|
||||
- include: targets/nxos_nxapi/tasks/platform/n5k/assert_changes_https.yaml
|
||||
when: platform is match('N5K')
|
||||
|
||||
- include: targets/nxos_nxapi/tasks/platform/default/assert_changes.yaml
|
||||
when: not ( platform is search('N7K')) and not (platform is search('N5K')) and not (platform is search('N35'))
|
||||
- include: targets/nxos_nxapi/tasks/platform/default/assert_changes_https.yaml
|
||||
when: not ( platform is search('N7K')) and not (platform is search('N5K')) and not (platform is search('N35'))
|
||||
|
||||
- name: Configure NXAPI again
|
||||
nxos_nxapi:
|
||||
enable_http: no
|
||||
enable_sandbox: "{{nxapi_sandbox_option|default(omit)}}"
|
||||
enable_https: yes
|
||||
https_port: 9443
|
||||
register: result
|
||||
- name: Configure NXAPI HTTPS again
|
||||
nxos_nxapi: *configure_https
|
||||
register: result
|
||||
|
||||
- name: Assert configuration is idempotent
|
||||
assert:
|
||||
that:
|
||||
- result.changed == false
|
||||
- name: Assert configuration is idempotent
|
||||
assert: &assert_false
|
||||
that:
|
||||
- result.changed == false
|
||||
|
||||
- debug: msg="END cli/configure.yaml"
|
||||
|
||||
- name: Configure NXAPI HTTPS & HTTP
|
||||
nxos_nxapi: &configure_https_http
|
||||
enable_http: yes
|
||||
enable_sandbox: "{{nxapi_sandbox_option|default(omit)}}"
|
||||
enable_https: yes
|
||||
https_port: 9443
|
||||
register: result
|
||||
|
||||
- nxos_command:
|
||||
commands:
|
||||
- show nxapi | json
|
||||
register: result
|
||||
|
||||
- include: targets/nxos_nxapi/tasks/platform/n7k/assert_changes_https_http.yaml
|
||||
when: platform is match('N7K')
|
||||
|
||||
- include: targets/nxos_nxapi/tasks/platform/n5k/assert_changes_https_http.yaml
|
||||
when: platform is match('N5K')
|
||||
|
||||
- include: targets/nxos_nxapi/tasks/platform/default/assert_changes_https_http.yaml
|
||||
when: not ( platform is search('N7K')) and not (platform is search('N5K')) and not (platform is search('N35'))
|
||||
|
||||
- name: Configure NXAPI HTTPS & HTTP again
|
||||
nxos_nxapi: *configure_https_http
|
||||
register: result
|
||||
|
||||
- name: Assert configuration is idempotent
|
||||
assert: *assert_false
|
||||
|
||||
- name: Configure different NXAPI HTTPS & HTTP ports
|
||||
nxos_nxapi: &configure_https_http_ports
|
||||
enable_http: yes
|
||||
enable_sandbox: "{{nxapi_sandbox_option|default(omit)}}"
|
||||
enable_https: yes
|
||||
http_port: 99
|
||||
https_port: 500
|
||||
register: result
|
||||
|
||||
- nxos_command:
|
||||
commands:
|
||||
- show nxapi | json
|
||||
register: result
|
||||
|
||||
- include: targets/nxos_nxapi/tasks/platform/n7k/assert_changes_https_http_ports.yaml
|
||||
when: platform is match('N7K')
|
||||
|
||||
- include: targets/nxos_nxapi/tasks/platform/n5k/assert_changes_https_http_ports.yaml
|
||||
when: platform is match('N5K')
|
||||
|
||||
- include: targets/nxos_nxapi/tasks/platform/default/assert_changes_https_http_ports.yaml
|
||||
when: not ( platform is search('N7K')) and not (platform is search('N5K')) and not (platform is search('N35'))
|
||||
|
||||
- name: Configure different NXAPI HTTPS & HTTP ports again
|
||||
nxos_nxapi: *configure_https_http_ports
|
||||
register: result
|
||||
|
||||
- name: Assert configuration is idempotent
|
||||
assert: *assert_false
|
||||
|
||||
- name: Configure NXAPI HTTP
|
||||
nxos_nxapi: &configure_http
|
||||
enable_http: yes
|
||||
enable_sandbox: "{{nxapi_sandbox_option|default(omit)}}"
|
||||
enable_https: no
|
||||
register: result
|
||||
|
||||
- nxos_command:
|
||||
commands:
|
||||
- show nxapi | json
|
||||
register: result
|
||||
|
||||
- include: targets/nxos_nxapi/tasks/platform/n7k/assert_changes_http.yaml
|
||||
when: platform is match('N7K')
|
||||
|
||||
- include: targets/nxos_nxapi/tasks/platform/n5k/assert_changes_http.yaml
|
||||
when: platform is match('N5K')
|
||||
|
||||
- include: targets/nxos_nxapi/tasks/platform/default/assert_changes_http.yaml
|
||||
when: not ( platform is search('N7K')) and not (platform is search('N5K')) and not (platform is search('N35'))
|
||||
|
||||
- name: Configure NXAPI HTTP again
|
||||
nxos_nxapi: *configure_http
|
||||
register: result
|
||||
|
||||
- name: Assert configuration is idempotent
|
||||
assert: *assert_false
|
||||
|
||||
always:
|
||||
- name: Cleanup - Disable NXAPI
|
||||
nxos_nxapi:
|
||||
state: absent
|
||||
register: result
|
||||
|
||||
- name: Cleanup - Re-enable NXAPI
|
||||
nxos_nxapi:
|
||||
state: present
|
||||
register: result
|
||||
|
||||
- debug: msg="END cli/configure.yaml"
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
---
|
||||
- name: Toggle feature nxapi - Enable
|
||||
- name: Enable Feature Privilage
|
||||
nxos_config:
|
||||
lines:
|
||||
- feature nxapi
|
||||
- feature privilege
|
||||
connection: network_cli
|
||||
ignore_errors: yes
|
||||
|
||||
- name: Set nxapi to default state
|
||||
- name: Enable Feature NXAPI
|
||||
nxos_nxapi:
|
||||
state: present
|
||||
connection: network_cli
|
||||
|
||||
# Gather the list of interfaces on this device and make the list
|
||||
|
@ -93,6 +93,7 @@
|
|||
# 8.0(1)
|
||||
# 7.3(0)D1(1)
|
||||
# 7.0(3)IHD8(1)
|
||||
- set_fact: major_version="{{ image_version[0:3] }}"
|
||||
- set_fact: imagetag="{{ image_version[0:3] }}"
|
||||
when: image_version is search("\d\.\d\(\d\)")
|
||||
- set_fact: imagetag="{{ image_version[6:8] }}"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue