blob: 843d73e9866ae2bf0dad4f981f8f77ed32b734e1 [file] [log] [blame]
George Keishinge7e91712021-09-03 11:28:44 -05001#!/usr/bin/env python3
Michael Walsh0a3bdb42019-01-31 16:21:44 +00002
3r"""
4Set the auto_boot policy according to the caller's wishes.
5"""
6
7import os
8import sys
Michael Shepos1cf49cd2021-10-25 11:40:47 -05009import time
Michael Walsh0a3bdb42019-01-31 16:21:44 +000010
Michael Walsh91ef4682019-12-13 12:19:56 -060011save_dir_path = sys.path.pop(0)
Michael Walsh0a3bdb42019-01-31 16:21:44 +000012
Michael Walsh91ef4682019-12-13 12:19:56 -060013modules = ['gen_arg', 'gen_print', 'gen_valid', 'gen_misc', 'gen_cmd', 'gen_plug_in_utils', 'gen_call_robot']
14for module in modules:
15 exec("from " + module + " import *")
Michael Walsh0a3bdb42019-01-31 16:21:44 +000016
Michael Walsh91ef4682019-12-13 12:19:56 -060017sys.path.insert(0, save_dir_path)
18
Michael Walsh0a3bdb42019-01-31 16:21:44 +000019
20# Set exit_on_error for gen_valid functions.
21set_exit_on_error(True)
22
23parser = argparse.ArgumentParser(
24 usage='%(prog)s [OPTIONS]',
25 description="%(prog)s will set the auto_boot policy according to the"
26 + " user's wishes.",
27 formatter_class=argparse.RawTextHelpFormatter,
28 prefix_chars='-+')
29
30
31# Populate stock_list with options we want.
32stock_list = [("test_mode", get_plug_default("test_mode", 0)),
33 ("quiet", get_plug_default("quiet", 0)),
34 ("debug", get_plug_default("debug", 0))]
35
36AUTO_REBOOT_DISABLE = "1"
37
Michael Walsh0a3bdb42019-01-31 16:21:44 +000038def validate_parms():
39
40 r"""
Michael Walsh318a4fe2019-10-17 10:38:56 -050041 Validate program parameters, etc. Return True or False (i.e. pass/fail) accordingly.
Michael Walsh0a3bdb42019-01-31 16:21:44 +000042 """
43
44 get_plug_vars()
45
Michael Walsh2ea965c2019-08-01 16:14:25 -050046 valid_value(AUTOBOOT_OPENBMC_HOST)
Michael Walsh0a3bdb42019-01-31 16:21:44 +000047 global AUTO_REBOOT_DISABLE
48 if pgm_name == "cp_cleanup":
49 AUTO_REBOOT_DISABLE = 0
50 else:
51 valid_value(AUTO_REBOOT_DISABLE, valid_values=["0", "1"])
52 AUTO_REBOOT_DISABLE = int(AUTO_REBOOT_DISABLE)
53
Michael Walsh0a3bdb42019-01-31 16:21:44 +000054
55def main():
56
Michael Walsh91ef4682019-12-13 12:19:56 -060057 gen_setup()
Michael Walsh0a3bdb42019-01-31 16:21:44 +000058
Michael Walsh91ef4682019-12-13 12:19:56 -060059 set_term_options(term_requests='children')
Michael Walsh0a3bdb42019-01-31 16:21:44 +000060
Michael Walsh80caea02019-06-21 11:31:41 -050061 print_plug_in_header()
62
63 if pgm_name == "cp_setup" or pgm_name == "cp_cleanup":
64 exit_not_master()
Michael Walsh0a3bdb42019-01-31 16:21:44 +000065
66 init_robot_out_parms(get_plug_in_package_name() + "." + pgm_name + ".")
67
68 lib_file_path = init_robot_file_path("lib/utils.robot")
69
Michael Shepos1cf49cd2021-10-25 11:40:47 -050070 REDFISH_SUPPORT_TRANS_STATE = int(os.environ.get('REDFISH_SUPPORT_TRANS_STATE', 0)) or \
71 int(os.environ.get('AUTOBOOT_REDFISH_SUPPORT_TRANS_STATE', 0))
72
Michael Walsh318a4fe2019-10-17 10:38:56 -050073 enable_auto_reboot = 1 - AUTO_REBOOT_DISABLE
74 print_var(enable_auto_reboot)
Michael Sheposea568c22021-01-08 12:38:23 -060075 keyword_string = "Set Auto Reboot Setting ${%i}" % enable_auto_reboot
Michael Walsh0a3bdb42019-01-31 16:21:44 +000076
Michael Walsh046fe222019-11-08 14:33:53 -060077 cmd_buf = create_robot_cmd_string("extended/run_keyword.robot", OPENBMC_HOST, SSH_PORT, HTTPS_PORT,
Michael Sheposea568c22021-01-08 12:38:23 -060078 REST_USERNAME, REST_PASSWORD, OPENBMC_USERNAME, OPENBMC_PASSWORD,
David Shawb86e5382022-01-31 16:14:11 -060079 IPMI_USERNAME, IPMI_PASSWORD, REDFISH_SUPPORT_TRANS_STATE,
80 keyword_string, lib_file_path, quiet, test_mode, debug, outputdir,
81 output, log, report)
Michael Shepos34c79562021-03-18 18:49:44 -050082
Michael Shepos1cf49cd2021-10-25 11:40:47 -050083 retry_count = 3
84 while not robot_cmd_fnc(cmd_buf):
85 retry_count -= 1
86 if retry_count == 0:
87 print_error_report("Robot command execution failed.")
88 exit(1)
89 time.sleep(30)
90 return
Michael Walsh0a3bdb42019-01-31 16:21:44 +000091
92
93main()