1d9b473e56
* Add na_santricity_firmware module. Manages NetApp E-Series firmware upgrades. Includes unit and integration tests. * Add legacy support to na_santricity_firmware module. * Rename na_santricity_firmware to netapp_e_firmware * Improved netapp_e_firmware example documentation.
348 lines
16 KiB
YAML
348 lines
16 KiB
YAML
# Test code for the netapp_e_firmware module
|
|
# (c) 2018, NetApp, Inc
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
# TODO: MUST BE DOWNGRADE BEFORE EXECUTING INTEGRATION TO RCB_11.40.3R2_280x_5c7d81b3.dlp and N280X-842834-D02.dlp
|
|
# loadControllerFirmware_MT swartzn@10.113.1.250 /home/swartzn/Downloads/RCB_11.40.3R2_280x_5c7d81b3.dlp /home/swartzn/Downloads/N280X-842834-D02.dlp
|
|
|
|
# This integration test will validate upgrade functionality for firmware-only, firmware-and-nvsram, and check mode.
|
|
|
|
- name: NetApp Test ASUP module
|
|
fail:
|
|
msg: "Please define netapp_e_embedded_api_host, netapp_e_embedded_api_username, netapp_e_embedded_api_password, netapp_e_embedded_ssid,
|
|
netapp_e_proxy_api_host, netapp_e_proxy_api_username, netapp_e_proxy_api_password, and netapp_e_proxy_ssid."
|
|
when: "netapp_e_embedded_api_host is undefined or netapp_e_embedded_api_username is undefined or netapp_e_embedded_api_password is undefined or
|
|
netapp_e_embedded_ssid is undefined or netapp_e_proxy_api_host is undefined or netapp_e_proxy_api_username is undefined or
|
|
netapp_e_proxy_api_password is undefined or netapp_e_proxy_ssid is undefined"
|
|
|
|
- set_fact:
|
|
path: "/home/swartzn/Downloads/"
|
|
upgrades:
|
|
- firmware: "RCB_11.40.3R2_280x_5c7d81b3.dlp"
|
|
nvsram: "N280X-842834-D02.dlp"
|
|
expected_firmware_version: "08.42.30.05"
|
|
expected_nvsram_version: "N280X-842834-D02"
|
|
- firmware: "RCB_11.40.5_280x_5ceef00e.dlp"
|
|
nvsram: "N280X-842834-D02.dlp"
|
|
expected_firmware_version: "08.42.50.00"
|
|
expected_nvsram_version: "N280X-842834-D02"
|
|
- firmware: "RCB_11.50.2_280x_5ce8501f.dlp"
|
|
nvsram: "N280X-852834-D02.dlp"
|
|
expected_firmware_version: "08.52.00.00"
|
|
expected_nvsram_version: "N280X-852834-D02"
|
|
|
|
- name: Perform firmware upgrade using the Web Services REST API (checkmode-no change, firmware only)
|
|
netapp_e_firmware:
|
|
ssid: "{{ netapp_e_embedded_ssid }}"
|
|
api_url: "https://{{ netapp_e_embedded_api_host }}:8443/devmgr/v2"
|
|
api_username: "{{ netapp_e_embedded_api_username }}"
|
|
api_password: "{{ netapp_e_embedded_api_password }}"
|
|
validate_certs: no
|
|
nvsram: "{{ path }}{{ upgrades[0]['nvsram'] }}"
|
|
firmware: "{{ path }}{{ upgrades[0]['firmware'] }}"
|
|
wait_for_completion: true
|
|
ignore_health_check: true
|
|
check_mode: true
|
|
register: netapp_e_firmware
|
|
- name: Retrieve current firmware version
|
|
uri:
|
|
url: "https://{{ netapp_e_embedded_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_embedded_ssid }}/graph/xpath-filter?query=/sa/saData/fwVersion"
|
|
user: "{{ netapp_e_embedded_api_username }}"
|
|
password: "{{ netapp_e_embedded_api_password }}"
|
|
validate_certs: no
|
|
register: current_firmware
|
|
- name: Retrieve current nvsram version
|
|
uri:
|
|
url: "https://{{ netapp_e_embedded_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_embedded_ssid }}/graph/xpath-filter?query=/sa/saData/nvsramVersion"
|
|
user: "{{ netapp_e_embedded_api_username }}"
|
|
password: "{{ netapp_e_embedded_api_password }}"
|
|
validate_certs: no
|
|
register: current_nvsram
|
|
- name: Verify change status
|
|
assert:
|
|
that: "{{ netapp_e_firmware.changed == False }}"
|
|
msg: "Failed to return unchanged."
|
|
- name: Verify current firmware version
|
|
assert:
|
|
that: "{{ current_firmware['json'][0] == upgrades[0]['expected_firmware_version'] }}"
|
|
msg: "Unexpected firmware version."
|
|
- name: Verify current nvsram version
|
|
assert:
|
|
that: "{{ current_nvsram['json'][0] == upgrades[0]['expected_nvsram_version'] }}"
|
|
msg: "Unexpected nvsram version."
|
|
|
|
- name: Perform firmware upgrade using the Web Services REST API (no change, firmware only)
|
|
netapp_e_firmware:
|
|
ssid: "{{ netapp_e_embedded_ssid }}"
|
|
api_url: "https://{{ netapp_e_embedded_api_host }}:8443/devmgr/v2"
|
|
api_username: "{{ netapp_e_embedded_api_username }}"
|
|
api_password: "{{ netapp_e_embedded_api_password }}"
|
|
validate_certs: no
|
|
nvsram: "{{ path }}{{ upgrades[0]['nvsram'] }}"
|
|
firmware: "{{ path }}{{ upgrades[0]['firmware'] }}"
|
|
wait_for_completion: true
|
|
ignore_health_check: true
|
|
register: netapp_e_firmware
|
|
- name: Retrieve current firmware version
|
|
uri:
|
|
url: "https://{{ netapp_e_embedded_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_embedded_ssid }}/graph/xpath-filter?query=/sa/saData/fwVersion"
|
|
user: "{{ netapp_e_embedded_api_username }}"
|
|
password: "{{ netapp_e_embedded_api_password }}"
|
|
validate_certs: no
|
|
register: current_firmware
|
|
- name: Retrieve current nvsram version
|
|
uri:
|
|
url: "https://{{ netapp_e_embedded_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_embedded_ssid }}/graph/xpath-filter?query=/sa/saData/nvsramVersion"
|
|
user: "{{ netapp_e_embedded_api_username }}"
|
|
password: "{{ netapp_e_embedded_api_password }}"
|
|
validate_certs: no
|
|
register: current_nvsram
|
|
- name: Verify change status
|
|
assert:
|
|
that: "{{ netapp_e_firmware.changed == False }}"
|
|
msg: "Failed to return changed."
|
|
- name: Verify current firmware version
|
|
assert:
|
|
that: "{{ current_firmware['json'][0] == upgrades[0]['expected_firmware_version'] }}"
|
|
msg: "Unexpected firmware version."
|
|
- name: Verify current nvsram version
|
|
assert:
|
|
that: "{{ current_nvsram['json'][0] == upgrades[0]['expected_nvsram_version'] }}"
|
|
msg: "Unexpected nvsram version."
|
|
|
|
- name: Perform firmware upgrade using the Web Services REST API (checkmode-change, firmware)
|
|
netapp_e_firmware:
|
|
ssid: "{{ netapp_e_embedded_ssid }}"
|
|
api_url: "https://{{ netapp_e_embedded_api_host }}:8443/devmgr/v2"
|
|
api_username: "{{ netapp_e_embedded_api_username }}"
|
|
api_password: "{{ netapp_e_embedded_api_password }}"
|
|
validate_certs: no
|
|
nvsram: "{{ path }}{{ upgrades[1]['nvsram'] }}"
|
|
firmware: "{{ path }}{{ upgrades[1]['firmware'] }}"
|
|
wait_for_completion: true
|
|
ignore_health_check: true
|
|
register: netapp_e_firmware
|
|
check_mode: true
|
|
- name: Retrieve current firmware version
|
|
uri:
|
|
url: "https://{{ netapp_e_embedded_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_embedded_ssid }}/graph/xpath-filter?query=/sa/saData/fwVersion"
|
|
user: "{{ netapp_e_embedded_api_username }}"
|
|
password: "{{ netapp_e_embedded_api_password }}"
|
|
validate_certs: no
|
|
register: current_firmware
|
|
- name: Retrieve current nvsram version
|
|
uri:
|
|
url: "https://{{ netapp_e_embedded_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_embedded_ssid }}/graph/xpath-filter?query=/sa/saData/nvsramVersion"
|
|
user: "{{ netapp_e_embedded_api_username }}"
|
|
password: "{{ netapp_e_embedded_api_password }}"
|
|
validate_certs: no
|
|
register: current_nvsram
|
|
- name: Verify change status
|
|
assert:
|
|
that: "{{ netapp_e_firmware.changed == True }}"
|
|
msg: "Failed to return changed."
|
|
- name: Verify current firmware version
|
|
assert:
|
|
that: "{{ current_firmware['json'][0] == upgrades[0]['expected_firmware_version'] }}"
|
|
msg: "Unexpected firmware version."
|
|
- name: Verify current nvsram version
|
|
assert:
|
|
that: "{{ current_nvsram['json'][0] == upgrades[0]['expected_nvsram_version'] }}"
|
|
msg: "Unexpected nvsram version."
|
|
|
|
- name: Perform firmware upgrade using the Web Services REST API (change, firmware)
|
|
netapp_e_firmware:
|
|
ssid: "{{ netapp_e_embedded_ssid }}"
|
|
api_url: "https://{{ netapp_e_embedded_api_host }}:8443/devmgr/v2"
|
|
api_username: "{{ netapp_e_embedded_api_username }}"
|
|
api_password: "{{ netapp_e_embedded_api_password }}"
|
|
validate_certs: no
|
|
nvsram: "{{ path }}{{ upgrades[1]['nvsram'] }}"
|
|
firmware: "{{ path }}{{ upgrades[1]['firmware'] }}"
|
|
wait_for_completion: true
|
|
ignore_health_check: true
|
|
register: netapp_e_firmware
|
|
- name: Retrieve current firmware version
|
|
uri:
|
|
url: "https://{{ netapp_e_embedded_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_embedded_ssid }}/graph/xpath-filter?query=/sa/saData/fwVersion"
|
|
user: "{{ netapp_e_embedded_api_username }}"
|
|
password: "{{ netapp_e_embedded_api_password }}"
|
|
validate_certs: no
|
|
register: current_firmware
|
|
- name: Retrieve current nvsram version
|
|
uri:
|
|
url: "https://{{ netapp_e_embedded_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_embedded_ssid }}/graph/xpath-filter?query=/sa/saData/nvsramVersion"
|
|
user: "{{ netapp_e_embedded_api_username }}"
|
|
password: "{{ netapp_e_embedded_api_password }}"
|
|
validate_certs: no
|
|
register: current_nvsram
|
|
- name: Verify change status
|
|
assert:
|
|
that: "{{ netapp_e_firmware.changed == True }}"
|
|
msg: "Failed to return changed."
|
|
- name: Verify current firmware version
|
|
assert:
|
|
that: "{{ current_firmware['json'][0] == upgrades[1]['expected_firmware_version'] }}"
|
|
msg: "Unexpected firmware version. {{ current_firmware['json'][0] }} != {{ upgrades[1]['expected_firmware_version'] }}"
|
|
- name: Verify current nvsram version
|
|
assert:
|
|
that: "{{ current_nvsram['json'][0] == upgrades[1]['expected_nvsram_version'] }}"
|
|
msg: "Unexpected nvsram version. {{ current_nvsram['json'][0] }} != {{ upgrades[1]['expected_nvsram_version'] }}"
|
|
|
|
- name: Perform firmware upgrade using the Web Services REST API (changed, firmware)
|
|
netapp_e_firmware:
|
|
ssid: "{{ netapp_e_proxy_ssid }}"
|
|
api_url: "https://{{ netapp_e_proxy_api_host }}:8443/devmgr/v2"
|
|
api_username: "{{ netapp_e_proxy_api_username }}"
|
|
api_password: "{{ netapp_e_proxy_api_password }}"
|
|
validate_certs: no
|
|
nvsram: "{{ path }}{{ upgrades[0]['nvsram'] }}"
|
|
firmware: "{{ path }}{{ upgrades[0]['firmware'] }}"
|
|
wait_for_completion: true
|
|
ignore_health_check: true
|
|
register: netapp_e_firmware
|
|
- name: Retrieve current firmware version
|
|
uri:
|
|
url: "https://{{ netapp_e_proxy_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_proxy_ssid }}/graph/xpath-filter?query=/sa/saData/fwVersion"
|
|
user: "{{ netapp_e_proxy_api_username }}"
|
|
password: "{{ netapp_e_proxy_api_password }}"
|
|
validate_certs: no
|
|
register: current_firmware
|
|
- name: Retrieve current nvsram version
|
|
uri:
|
|
url: "https://{{ netapp_e_proxy_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_proxy_ssid }}/graph/xpath-filter?query=/sa/saData/nvsramVersion"
|
|
user: "{{ netapp_e_proxy_api_username }}"
|
|
password: "{{ netapp_e_proxy_api_password }}"
|
|
validate_certs: no
|
|
register: current_nvsram
|
|
- name: Verify change status
|
|
assert:
|
|
that: "{{ netapp_e_firmware.changed == True }}"
|
|
msg: "Failed to return changed."
|
|
- name: Verify current firmware version
|
|
assert:
|
|
that: "{{ current_firmware['json'][0] == upgrades[0]['expected_firmware_version'] }}"
|
|
msg: "Failed to change the firmware version."
|
|
- name: Verify current nvsram version
|
|
assert:
|
|
that: "{{ current_nvsram['json'][0] == upgrades[0]['expected_nvsram_version'] }}"
|
|
msg: "Failed to change the nvsram version."
|
|
|
|
- name: Perform firmware upgrade using the Web Services REST API (checkmode-unchanged, firmware)
|
|
netapp_e_firmware:
|
|
ssid: "{{ netapp_e_proxy_ssid }}"
|
|
api_url: "https://{{ netapp_e_proxy_api_host }}:8443/devmgr/v2"
|
|
api_username: "{{ netapp_e_proxy_api_username }}"
|
|
api_password: "{{ netapp_e_proxy_api_password }}"
|
|
validate_certs: no
|
|
nvsram: "{{ path }}{{ upgrades[0]['nvsram'] }}"
|
|
firmware: "{{ path }}{{ upgrades[0]['firmware'] }}"
|
|
wait_for_completion: true
|
|
ignore_health_check: true
|
|
check_mode: true
|
|
register: netapp_e_firmware
|
|
- name: Retrieve current firmware version
|
|
uri:
|
|
url: "https://{{ netapp_e_proxy_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_proxy_ssid }}/graph/xpath-filter?query=/sa/saData/fwVersion"
|
|
user: "{{ netapp_e_proxy_api_username }}"
|
|
password: "{{ netapp_e_proxy_api_password }}"
|
|
validate_certs: no
|
|
register: current_firmware
|
|
- name: Retrieve current nvsram version
|
|
uri:
|
|
url: "https://{{ netapp_e_proxy_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_proxy_ssid }}/graph/xpath-filter?query=/sa/saData/nvsramVersion"
|
|
user: "{{ netapp_e_proxy_api_username }}"
|
|
password: "{{ netapp_e_proxy_api_password }}"
|
|
validate_certs: no
|
|
register: current_nvsram
|
|
- name: Verify change status
|
|
assert:
|
|
that: "{{ netapp_e_firmware.changed == False }}"
|
|
msg: "Failed to return unchanged."
|
|
- name: Verify current firmware version
|
|
assert:
|
|
that: "{{ current_firmware['json'][0] == upgrades[0]['expected_firmware_version'] }}"
|
|
msg: "Failed to change the firmware version."
|
|
- name: Verify current nvsram version
|
|
assert:
|
|
that: "{{ current_nvsram['json'][0] == upgrades[0]['expected_nvsram_version'] }}"
|
|
msg: "Failed to change the nvsram version."
|
|
|
|
- name: Perform firmware upgrade using the Web Services REST API (checkmode-change, firmware and nvsram)
|
|
netapp_e_firmware:
|
|
ssid: "{{ netapp_e_proxy_ssid }}"
|
|
api_url: "https://{{ netapp_e_proxy_api_host }}:8443/devmgr/v2"
|
|
api_username: "{{ netapp_e_proxy_api_username }}"
|
|
api_password: "{{ netapp_e_proxy_api_password }}"
|
|
validate_certs: no
|
|
nvsram: "{{ path }}{{ upgrades[2]['nvsram'] }}"
|
|
firmware: "{{ path }}{{ upgrades[2]['firmware'] }}"
|
|
wait_for_completion: true
|
|
ignore_health_check: true
|
|
check_mode: true
|
|
register: netapp_e_firmware
|
|
- name: Retrieve current firmware version
|
|
uri:
|
|
url: "https://{{ netapp_e_proxy_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_proxy_ssid }}/graph/xpath-filter?query=/sa/saData/fwVersion"
|
|
user: "{{ netapp_e_proxy_api_username }}"
|
|
password: "{{ netapp_e_proxy_api_password }}"
|
|
validate_certs: no
|
|
register: current_firmware
|
|
- name: Retrieve current nvsram version
|
|
uri:
|
|
url: "https://{{ netapp_e_proxy_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_proxy_ssid }}/graph/xpath-filter?query=/sa/saData/nvsramVersion"
|
|
user: "{{ netapp_e_proxy_api_username }}"
|
|
password: "{{ netapp_e_proxy_api_password }}"
|
|
validate_certs: no
|
|
register: current_nvsram
|
|
- name: Verify change status
|
|
assert:
|
|
that: "{{ netapp_e_firmware.changed == True }}"
|
|
msg: "Failed to return changed."
|
|
- name: Verify current firmware version
|
|
assert:
|
|
that: "{{ current_firmware['json'][0] == upgrades[0]['expected_firmware_version'] }}"
|
|
msg: "Failed to change the firmware version."
|
|
- name: Verify current nvsram version
|
|
assert:
|
|
that: "{{ current_nvsram['json'][0] == upgrades[0]['expected_nvsram_version'] }}"
|
|
msg: "Failed to change the nvsram version."
|
|
|
|
- name: Perform firmware upgrade using the Web Services REST API (changed, firmware and nvsram)
|
|
netapp_e_firmware:
|
|
ssid: "{{ netapp_e_proxy_ssid }}"
|
|
api_url: "https://{{ netapp_e_proxy_api_host }}:8443/devmgr/v2"
|
|
api_username: "{{ netapp_e_proxy_api_username }}"
|
|
api_password: "{{ netapp_e_proxy_api_password }}"
|
|
validate_certs: no
|
|
nvsram: "{{ path }}{{ upgrades[2]['nvsram'] }}"
|
|
firmware: "{{ path }}{{ upgrades[2]['firmware'] }}"
|
|
wait_for_completion: true
|
|
ignore_health_check: true
|
|
register: netapp_e_firmware
|
|
- name: Retrieve current firmware version
|
|
uri:
|
|
url: "https://{{ netapp_e_proxy_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_proxy_ssid }}/graph/xpath-filter?query=/sa/saData/fwVersion"
|
|
user: "{{ netapp_e_proxy_api_username }}"
|
|
password: "{{ netapp_e_proxy_api_password }}"
|
|
validate_certs: no
|
|
register: current_firmware
|
|
- name: Retrieve current nvsram version
|
|
uri:
|
|
url: "https://{{ netapp_e_proxy_api_host }}:8443/devmgr/v2/storage-systems/{{ netapp_e_proxy_ssid }}/graph/xpath-filter?query=/sa/saData/nvsramVersion"
|
|
user: "{{ netapp_e_proxy_api_username }}"
|
|
password: "{{ netapp_e_proxy_api_password }}"
|
|
validate_certs: no
|
|
register: current_nvsram
|
|
- name: Verify change status
|
|
assert:
|
|
that: "{{ netapp_e_firmware.changed == True }}"
|
|
msg: "Failed to return changed."
|
|
- name: Verify current firmware version
|
|
assert:
|
|
that: "{{ current_firmware['json'][0] == upgrades[2]['expected_firmware_version'] }}"
|
|
msg: "Failed to change the firmware version."
|
|
- name: Verify current nvsram version
|
|
assert:
|
|
that: "{{ current_nvsram['json'][0] == upgrades[2]['expected_nvsram_version'] }}"
|
|
msg: "Failed to change the nvsram version."
|