1e7e9171eSGeorge Keishing#!/usr/bin/env python3 20a3bdb4cSMichael Walsh 30a3bdb4cSMichael Walshr""" 40a3bdb4cSMichael WalshSet the auto_boot policy according to the caller's wishes. 50a3bdb4cSMichael Walsh""" 60a3bdb4cSMichael Walsh 70a3bdb4cSMichael Walshimport os 80a3bdb4cSMichael Walshimport sys 91cf49cd4SMichael Sheposimport time 100a3bdb4cSMichael Walsh 1191ef4686SMichael Walshsave_dir_path = sys.path.pop(0) 120a3bdb4cSMichael Walsh 1391ef4686SMichael Walshmodules = ['gen_arg', 'gen_print', 'gen_valid', 'gen_misc', 'gen_cmd', 'gen_plug_in_utils', 'gen_call_robot'] 1491ef4686SMichael Walshfor module in modules: 1591ef4686SMichael Walsh exec("from " + module + " import *") 160a3bdb4cSMichael Walsh 1791ef4686SMichael Walshsys.path.insert(0, save_dir_path) 1891ef4686SMichael Walsh 190a3bdb4cSMichael Walsh 200a3bdb4cSMichael Walsh# Set exit_on_error for gen_valid functions. 210a3bdb4cSMichael Walshset_exit_on_error(True) 220a3bdb4cSMichael Walsh 230a3bdb4cSMichael Walshparser = argparse.ArgumentParser( 240a3bdb4cSMichael Walsh usage='%(prog)s [OPTIONS]', 250a3bdb4cSMichael Walsh description="%(prog)s will set the auto_boot policy according to the" 260a3bdb4cSMichael Walsh + " user's wishes.", 270a3bdb4cSMichael Walsh formatter_class=argparse.RawTextHelpFormatter, 280a3bdb4cSMichael Walsh prefix_chars='-+') 290a3bdb4cSMichael Walsh 300a3bdb4cSMichael Walsh 310a3bdb4cSMichael Walsh# Populate stock_list with options we want. 320a3bdb4cSMichael Walshstock_list = [("test_mode", get_plug_default("test_mode", 0)), 330a3bdb4cSMichael Walsh ("quiet", get_plug_default("quiet", 0)), 340a3bdb4cSMichael Walsh ("debug", get_plug_default("debug", 0))] 350a3bdb4cSMichael Walsh 360a3bdb4cSMichael WalshAUTO_REBOOT_DISABLE = "1" 370a3bdb4cSMichael Walsh 380a3bdb4cSMichael Walshdef validate_parms(): 390a3bdb4cSMichael Walsh 400a3bdb4cSMichael Walsh r""" 41318a4feeSMichael Walsh Validate program parameters, etc. Return True or False (i.e. pass/fail) accordingly. 420a3bdb4cSMichael Walsh """ 430a3bdb4cSMichael Walsh 440a3bdb4cSMichael Walsh get_plug_vars() 450a3bdb4cSMichael Walsh 462ea965ceSMichael Walsh valid_value(AUTOBOOT_OPENBMC_HOST) 470a3bdb4cSMichael Walsh global AUTO_REBOOT_DISABLE 480a3bdb4cSMichael Walsh if pgm_name == "cp_cleanup": 490a3bdb4cSMichael Walsh AUTO_REBOOT_DISABLE = 0 500a3bdb4cSMichael Walsh else: 510a3bdb4cSMichael Walsh valid_value(AUTO_REBOOT_DISABLE, valid_values=["0", "1"]) 520a3bdb4cSMichael Walsh AUTO_REBOOT_DISABLE = int(AUTO_REBOOT_DISABLE) 530a3bdb4cSMichael Walsh 540a3bdb4cSMichael Walsh 550a3bdb4cSMichael Walshdef main(): 560a3bdb4cSMichael Walsh 5791ef4686SMichael Walsh gen_setup() 580a3bdb4cSMichael Walsh 5991ef4686SMichael Walsh set_term_options(term_requests='children') 600a3bdb4cSMichael Walsh 6180caea09SMichael Walsh print_plug_in_header() 6280caea09SMichael Walsh 6380caea09SMichael Walsh if pgm_name == "cp_setup" or pgm_name == "cp_cleanup": 6480caea09SMichael Walsh exit_not_master() 650a3bdb4cSMichael Walsh 660a3bdb4cSMichael Walsh init_robot_out_parms(get_plug_in_package_name() + "." + pgm_name + ".") 670a3bdb4cSMichael Walsh 680a3bdb4cSMichael Walsh lib_file_path = init_robot_file_path("lib/utils.robot") 690a3bdb4cSMichael Walsh 701cf49cd4SMichael Shepos REDFISH_SUPPORT_TRANS_STATE = int(os.environ.get('REDFISH_SUPPORT_TRANS_STATE', 0)) or \ 711cf49cd4SMichael Shepos int(os.environ.get('AUTOBOOT_REDFISH_SUPPORT_TRANS_STATE', 0)) 721cf49cd4SMichael Shepos 73318a4feeSMichael Walsh enable_auto_reboot = 1 - AUTO_REBOOT_DISABLE 74318a4feeSMichael Walsh print_var(enable_auto_reboot) 75ea568c2eSMichael Shepos keyword_string = "Set Auto Reboot Setting ${%i}" % enable_auto_reboot 760a3bdb4cSMichael Walsh 77046fe223SMichael Walsh cmd_buf = create_robot_cmd_string("extended/run_keyword.robot", OPENBMC_HOST, SSH_PORT, HTTPS_PORT, 78ea568c2eSMichael Shepos REST_USERNAME, REST_PASSWORD, OPENBMC_USERNAME, OPENBMC_PASSWORD, 79*b86e5380SDavid Shaw IPMI_USERNAME, IPMI_PASSWORD, REDFISH_SUPPORT_TRANS_STATE, 80*b86e5380SDavid Shaw keyword_string, lib_file_path, quiet, test_mode, debug, outputdir, 81*b86e5380SDavid Shaw output, log, report) 8234c7956cSMichael Shepos 831cf49cd4SMichael Shepos retry_count = 3 841cf49cd4SMichael Shepos while not robot_cmd_fnc(cmd_buf): 851cf49cd4SMichael Shepos retry_count -= 1 861cf49cd4SMichael Shepos if retry_count == 0: 870a3bdb4cSMichael Walsh print_error_report("Robot command execution failed.") 880a3bdb4cSMichael Walsh exit(1) 891cf49cd4SMichael Shepos time.sleep(30) 901cf49cd4SMichael Shepos return 910a3bdb4cSMichael Walsh 920a3bdb4cSMichael Walsh 930a3bdb4cSMichael Walshmain() 94