Created
October 6, 2020 16:31
-
-
Save Teagan42/3c3ebac91a1042af52e8357b25178fd0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- name: Verify FAN is in spec | |
block: | |
- name: Get FAN Data | |
shell: | |
cmd: "ipmitool sdr elist | grep FAN" | |
register: siad_hard_diag_fan | |
- name: Prep PSU data for processing | |
set_facts: | |
fan_dict: > | |
{ | |
{% for attr, id_regex in impi_fan_attr_map.items() %} | |
"{{attr}}": { | |
{% set fan_lines = stdout_lines | map('regex_search', id_regex) | list | select('ne', None) | unique %} | |
{% for fan_id in fan_lines | map('regex_search', id_regex, '\\1') | first %} | |
{% set fan_line = fan_lines | map('regex_search', '^(?:.*)?'~fan_id~'.*$') | first %} | |
"{{fan_id}}": { | |
"state": "{{fan_line.split('|')[2] | trim}}", | |
"value": "{{fan_line.split('|')[4] | trim}}" | |
}, | |
{% endfor %} | |
}, | |
{% endfor %} | |
} | |
- name: Verify FAN temperature state is in spec | |
assert: | |
that: | |
- fan_dict.Temp.[item].state == 'ok' | |
fail_msg: "Failed: Expected {{ item }} temperature state to be 'ok', is {{ fan_dict.Temp.[item].state }}" | |
success_msg: "OK: {{ item }} temperature state matches: 'ok'" | |
loop: "{{ fan_dict.Temp.keys() }}" | |
- name: Verify FAN temperature is in spec | |
assert: | |
that: | |
- fan_dict.Temp.[item].value | regex_search('(\\d+)') | int >= siad_fan_temp_range.min | |
- fan_dict.Temp.[item].value | regex_search('(\\d+)') | int <= siad_fan_temp_range.max | |
fail_msg: "Failed: Expected {{ item }} temperature to be within {{siad_fan_temp_range.min}}-{{siad_fan_temp_range.max}} °C, is {{ fan_dict.Temp.[item].value }}" | |
success_msg: "OK: {{ item }} temperature within range: {{siad_fan_temp_range.min}}-{{siad_fan_temp_range.max}} °C" | |
loop: "{{ fan_dict.Temp.keys() }}" | |
- name: Verify FAN speed state is in spec | |
assert: | |
that: | |
- fan_dict.Speed.[item].state == 'ok' | |
fail_msg: "Failed: Expected {{ item }} speed state to be 'ok', is {{ fan_dict.Speed.[item].state }}" | |
success_msg: "OK: {{ item }} speed state matches: 'ok'" | |
loop: "{{ fan_dict.Speed.keys() }}" | |
- name: Verify FAN speed is in spec | |
assert: | |
that: | |
- fan_dict.Speed.[item].value | regex_search('(\\d+)') | int >= siad_fan_speed_range.min | |
- fan_dict.Speed.[item].value | regex_search('(\\d+)') | int <= siad_fan_speed_range.max | |
fail_msg: "Failed: Expected {{ item }} temperature to be within {{siad_fan_speed_range.min}}-{{siad_fan_speed_range.max}} RPM, is {{ fan_dict.Speed.[item].value }}" | |
success_msg: "OK: {{ item }} speed within range: {{siad_fan_speed_range.min}}-{{siad_fan_speed_range.max}} RPM" | |
loop: "{{ fan_dict.Speed.keys() }}" | |
- name: Verify FAN interrupt is in spec | |
assert: | |
that: | |
- fan_dict.Interrupt.[item].value == 'State Deasserted' | |
fail_msg: "Failed: Expected {{ item }} interrupt to be 'State Deasserted, is {{ fan_dict.Interrupt.[item].value }}" | |
success_msg: "OK: {{ item }} interrupt matches: 'State Deasserted'" | |
loop: "{{ fan_dict.Interrupt.keys() }}" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
siad_impi_fan_attr_map: | |
Temp: '^Temp_(FANCARD[0-9]).*$' | |
Speed: '^(FAN_[0-9]).*$' | |
Interrupt: '^(FAN_CARD_INT).*$' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment