|  | #!/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 | 
|  |  | 
|  | ############################################################################### | 
|  |  |