1#!/usr/bin/env python
2
3r"""
4Set the auto_boot policy according to the caller's wishes.
5"""
6
7import os
8import sys
9from robot.libraries.BuiltIn import BuiltIn
10
11save_dir_path = sys.path.pop(0)
12
13modules = ['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 *")
16
17sys.path.insert(0, save_dir_path)
18
19
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
38REDFISH_SUPPORT_TRANS_STATE = int(os.environ.get('REDFISH_SUPPORT_TRANS_STATE', 0))
39try:
40    REDFISH_SUPPORT_TRANS_STATE = REDFISH_SUPPORT_TRANS_STATE or \
41        int(BuiltIn().get_variable_value("${REDFISH_SUPPORT_TRANS_STATE}", default=0))
42except:
43    pass
44
45def validate_parms():
46
47    r"""
48    Validate program parameters, etc.  Return True or False (i.e. pass/fail) accordingly.
49    """
50
51    get_plug_vars()
52
53    valid_value(AUTOBOOT_OPENBMC_HOST)
54    global AUTO_REBOOT_DISABLE
55    if pgm_name == "cp_cleanup":
56        AUTO_REBOOT_DISABLE = 0
57    else:
58        valid_value(AUTO_REBOOT_DISABLE, valid_values=["0", "1"])
59        AUTO_REBOOT_DISABLE = int(AUTO_REBOOT_DISABLE)
60
61
62def main():
63
64    gen_setup()
65
66    set_term_options(term_requests='children')
67
68    print_plug_in_header()
69
70    if pgm_name == "cp_setup" or pgm_name == "cp_cleanup":
71        exit_not_master()
72
73    init_robot_out_parms(get_plug_in_package_name() + "." + pgm_name + ".")
74
75    lib_file_path = init_robot_file_path("lib/utils.robot")
76
77    enable_auto_reboot = 1 - AUTO_REBOOT_DISABLE
78    print_var(enable_auto_reboot)
79    keyword_string = "Set Auto Reboot Setting  ${%i}" % enable_auto_reboot
80
81    cmd_buf = create_robot_cmd_string("extended/run_keyword.robot", OPENBMC_HOST, SSH_PORT, HTTPS_PORT,
82                                      REST_USERNAME, REST_PASSWORD, OPENBMC_USERNAME, OPENBMC_PASSWORD,
83                                      REDFISH_SUPPORT_TRANS_STATE, keyword_string, lib_file_path, quiet,
84                                      test_mode, debug, outputdir, output, log, report)
85
86    if not robot_cmd_fnc(cmd_buf):
87        print_error_report("Robot command execution failed.")
88        exit(1)
89
90
91main()
92