1#!/usr/bin/env python 2 3r""" 4Provide useful ipmi functions. 5""" 6 7import gen_misc as gm 8import gen_robot_keyword as grk 9import gen_robot_utils as gru 10import tempfile 11gru.my_import_resource("ipmi_client.robot") 12 13 14############################################################################### 15def get_sol_info(): 16 17 r""" 18 Get all SOL info and return it as a dictionary. 19 20 Example use: 21 22 Robot code: 23 ${sol_info}= get_sol_info 24 Rpvars sol_info 25 26 Output: 27 sol_info: 28 sol_info[Info]: SOL parameter 'Payload Channel (7)' not supported - defaulting to 0x0e 29 sol_info[Character Send Threshold]: 1 30 sol_info[Force Authentication]: true 31 sol_info[Privilege Level]: USER 32 sol_info[Set in progress]: set-complete 33 sol_info[Retry Interval (ms)]: 100 34 sol_info[Non-Volatile Bit Rate (kbps)]: IPMI-Over-Serial-Setting 35 sol_info[Character Accumulate Level (ms)]: 100 36 sol_info[Enabled]: true 37 sol_info[Volatile Bit Rate (kbps)]: IPMI-Over-Serial-Setting 38 sol_info[Payload Channel]: 14 (0x0e) 39 sol_info[Payload Port]: 623 40 sol_info[Force Encryption]: true 41 sol_info[Retry Count]: 7 42 """ 43 44 status, ret_values = grk.run_key_u("Run IPMI Standard Command sol info") 45 46 # Create temp file path. 47 temp = tempfile.NamedTemporaryFile() 48 temp_file_path = temp.name 49 50 # Write sol info to temp file path. 51 text_file = open(temp_file_path, "w") 52 text_file.write(ret_values) 53 text_file.close() 54 55 # Use my_parm_file to interpret data. 56 sol_info = gm.my_parm_file(temp_file_path) 57 58 return sol_info 59 60############################################################################### 61