| #!/usr/bin/env python |
| |
| r""" |
| Provide useful ipmi functions. |
| """ |
| |
| import gen_misc as gm |
| import gen_robot_keyword as grk |
| import gen_robot_utils as gru |
| import tempfile |
| gru.my_import_resource("ipmi_client.robot") |
| |
| |
| ############################################################################### |
| def get_sol_info(): |
| |
| r""" |
| Get all SOL info and return it as a dictionary. |
| |
| Example use: |
| |
| Robot code: |
| ${sol_info}= get_sol_info |
| Rpvars sol_info |
| |
| Output: |
| sol_info: |
| sol_info[Info]: SOL parameter 'Payload Channel (7)' not supported - defaulting to 0x0e |
| sol_info[Character Send Threshold]: 1 |
| sol_info[Force Authentication]: true |
| sol_info[Privilege Level]: USER |
| sol_info[Set in progress]: set-complete |
| sol_info[Retry Interval (ms)]: 100 |
| sol_info[Non-Volatile Bit Rate (kbps)]: IPMI-Over-Serial-Setting |
| sol_info[Character Accumulate Level (ms)]: 100 |
| sol_info[Enabled]: true |
| sol_info[Volatile Bit Rate (kbps)]: IPMI-Over-Serial-Setting |
| sol_info[Payload Channel]: 14 (0x0e) |
| sol_info[Payload Port]: 623 |
| sol_info[Force Encryption]: true |
| sol_info[Retry Count]: 7 |
| """ |
| |
| status, ret_values = grk.run_key_u("Run IPMI Standard Command sol info") |
| |
| # Create temp file path. |
| temp = tempfile.NamedTemporaryFile() |
| temp_file_path = temp.name |
| |
| # Write sol info to temp file path. |
| text_file = open(temp_file_path, "w") |
| text_file.write(ret_values) |
| text_file.close() |
| |
| # Use my_parm_file to interpret data. |
| sol_info = gm.my_parm_file(temp_file_path) |
| |
| return sol_info |
| |
| ############################################################################### |
| |
| |
| ############################################################################### |
| def set_sol_setting(setting_name, setting_value): |
| |
| r""" |
| Set SOL setting with given value. |
| |
| # Description of argument(s): |
| # setting_name SOL setting which needs to be set (e.g. "retry-count"). |
| # setting_value Value which needs to be set (e.g. "7"). |
| """ |
| |
| status, ret_values = grk.run_key_u("Run IPMI Standard Command sol set " + |
| setting_name + " " + setting_value) |
| |
| return status |
| |
| ############################################################################### |
| |