black: re-format
black and isort are enabled in the openbmc-build-scripts on Python files
to have a consistent formatting. Re-run the formatter on the whole
repository.
Change-Id: If1010ead857d41364c024bf8145a979a9377d382
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/lib/state.py b/lib/state.py
index 26c3f79..00fa124 100755
--- a/lib/state.py
+++ b/lib/state.py
@@ -27,27 +27,27 @@
compared with the expected state.
"""
-import gen_print as gp
-import gen_valid as gv
-import gen_robot_utils as gru
-import gen_cmd as gc
-import bmc_ssh_utils as bsu
+import imp
+import os
+import re
+import sys
+import bmc_ssh_utils as bsu
+import gen_cmd as gc
+import gen_print as gp
+import gen_robot_utils as gru
+import gen_valid as gv
from robot.libraries.BuiltIn import BuiltIn
from robot.utils import DotDict
-import re
-import os
-import sys
-import imp
-
-
# NOTE: Avoid importing utils.robot because utils.robot imports state.py
# (indirectly) which will cause failures.
gru.my_import_resource("rest_client.robot")
-base_path = os.path.dirname(os.path.dirname(
- imp.find_module("gen_robot_print")[1])) + os.sep
+base_path = (
+ os.path.dirname(os.path.dirname(imp.find_module("gen_robot_print")[1]))
+ + os.sep
+)
sys.path.append(base_path + "data/")
# Previously, I had this coded:
@@ -76,192 +76,243 @@
# is being removed but the OBMC_STATES_VERSION value will stay for now in the
# event that it is needed in the future.
-OBMC_STATES_VERSION = int(os.environ.get('OBMC_STATES_VERSION', 1))
+OBMC_STATES_VERSION = int(os.environ.get("OBMC_STATES_VERSION", 1))
-redfish_support_trans_state = int(os.environ.get('REDFISH_SUPPORT_TRANS_STATE', 0)) or \
- int(BuiltIn().get_variable_value("${REDFISH_SUPPORT_TRANS_STATE}", default=0))
+redfish_support_trans_state = int(
+ os.environ.get("REDFISH_SUPPORT_TRANS_STATE", 0)
+) or int(
+ BuiltIn().get_variable_value("${REDFISH_SUPPORT_TRANS_STATE}", default=0)
+)
-platform_arch_type = os.environ.get('PLATFORM_ARCH_TYPE', '') or \
- BuiltIn().get_variable_value("${PLATFORM_ARCH_TYPE}", default="power")
+platform_arch_type = os.environ.get(
+ "PLATFORM_ARCH_TYPE", ""
+) or BuiltIn().get_variable_value("${PLATFORM_ARCH_TYPE}", default="power")
# valid_os_req_states and default_os_req_states are used by the os_get_state
# function.
# valid_os_req_states is a list of state information supported by the
# get_os_state function.
-valid_os_req_states = ['os_ping',
- 'os_login',
- 'os_run_cmd']
+valid_os_req_states = ["os_ping", "os_login", "os_run_cmd"]
# When a user calls get_os_state w/o specifying req_states,
# default_os_req_states is used as its value.
-default_os_req_states = ['os_ping',
- 'os_login',
- 'os_run_cmd']
+default_os_req_states = ["os_ping", "os_login", "os_run_cmd"]
# Presently, some BMCs appear to not keep time very well. This environment
# variable directs the get_state function to use either the BMC's epoch time
# or the local epoch time.
-USE_BMC_EPOCH_TIME = int(os.environ.get('USE_BMC_EPOCH_TIME', 0))
+USE_BMC_EPOCH_TIME = int(os.environ.get("USE_BMC_EPOCH_TIME", 0))
# Useful state constant definition(s).
if not redfish_support_trans_state:
# When a user calls get_state w/o specifying req_states, default_req_states
# is used as its value.
- default_req_states = ['rest',
- 'chassis',
- 'bmc',
- 'boot_progress',
- 'operating_system',
- 'host',
- 'os_ping',
- 'os_login',
- 'os_run_cmd']
+ default_req_states = [
+ "rest",
+ "chassis",
+ "bmc",
+ "boot_progress",
+ "operating_system",
+ "host",
+ "os_ping",
+ "os_login",
+ "os_run_cmd",
+ ]
# valid_req_states is a list of sub states supported by the get_state function.
# valid_req_states, default_req_states and master_os_up_match are used by the
# get_state function.
- valid_req_states = ['ping',
- 'packet_loss',
- 'uptime',
- 'epoch_seconds',
- 'elapsed_boot_time',
- 'rest',
- 'chassis',
- 'requested_chassis',
- 'bmc',
- 'requested_bmc',
- 'boot_progress',
- 'operating_system',
- 'host',
- 'requested_host',
- 'attempts_left',
- 'os_ping',
- 'os_login',
- 'os_run_cmd']
+ valid_req_states = [
+ "ping",
+ "packet_loss",
+ "uptime",
+ "epoch_seconds",
+ "elapsed_boot_time",
+ "rest",
+ "chassis",
+ "requested_chassis",
+ "bmc",
+ "requested_bmc",
+ "boot_progress",
+ "operating_system",
+ "host",
+ "requested_host",
+ "attempts_left",
+ "os_ping",
+ "os_login",
+ "os_run_cmd",
+ ]
# default_state is an initial value which may be of use to callers.
- default_state = DotDict([('rest', '1'),
- ('chassis', 'On'),
- ('bmc', 'Ready'),
- ('boot_progress', 'OSStart'),
- ('operating_system', 'BootComplete'),
- ('host', 'Running'),
- ('os_ping', '1'),
- ('os_login', '1'),
- ('os_run_cmd', '1')])
+ default_state = DotDict(
+ [
+ ("rest", "1"),
+ ("chassis", "On"),
+ ("bmc", "Ready"),
+ ("boot_progress", "OSStart"),
+ ("operating_system", "BootComplete"),
+ ("host", "Running"),
+ ("os_ping", "1"),
+ ("os_login", "1"),
+ ("os_run_cmd", "1"),
+ ]
+ )
# A match state for checking that the system is at "standby".
- standby_match_state = DotDict([('rest', '^1$'),
- ('chassis', '^Off$'),
- ('bmc', '^Ready$'),
- ('boot_progress', '^Off|Unspecified$'),
- ('operating_system', '^Inactive$'),
- ('host', '^Off$')])
+ standby_match_state = DotDict(
+ [
+ ("rest", "^1$"),
+ ("chassis", "^Off$"),
+ ("bmc", "^Ready$"),
+ ("boot_progress", "^Off|Unspecified$"),
+ ("operating_system", "^Inactive$"),
+ ("host", "^Off$"),
+ ]
+ )
# A match state for checking that the system is at "os running".
- os_running_match_state = DotDict([('chassis', '^On$'),
- ('bmc', '^Ready$'),
- ('boot_progress',
- 'FW Progress, Starting OS|OSStart'),
- ('operating_system', 'BootComplete'),
- ('host', '^Running$'),
- ('os_ping', '^1$'),
- ('os_login', '^1$'),
- ('os_run_cmd', '^1$')])
+ os_running_match_state = DotDict(
+ [
+ ("chassis", "^On$"),
+ ("bmc", "^Ready$"),
+ ("boot_progress", "FW Progress, Starting OS|OSStart"),
+ ("operating_system", "BootComplete"),
+ ("host", "^Running$"),
+ ("os_ping", "^1$"),
+ ("os_login", "^1$"),
+ ("os_run_cmd", "^1$"),
+ ]
+ )
# A master dictionary to determine whether the os may be up.
- master_os_up_match = DotDict([('chassis', '^On$'),
- ('bmc', '^Ready$'),
- ('boot_progress',
- 'FW Progress, Starting OS|OSStart'),
- ('operating_system', 'BootComplete'),
- ('host', '^Running|Quiesced$')])
+ master_os_up_match = DotDict(
+ [
+ ("chassis", "^On$"),
+ ("bmc", "^Ready$"),
+ ("boot_progress", "FW Progress, Starting OS|OSStart"),
+ ("operating_system", "BootComplete"),
+ ("host", "^Running|Quiesced$"),
+ ]
+ )
- invalid_state_match = DotDict([('rest', '^$'),
- ('chassis', '^$'),
- ('bmc', '^$'),
- ('boot_progress', '^$'),
- ('operating_system', '^$'),
- ('host', '^$')])
+ invalid_state_match = DotDict(
+ [
+ ("rest", "^$"),
+ ("chassis", "^$"),
+ ("bmc", "^$"),
+ ("boot_progress", "^$"),
+ ("operating_system", "^$"),
+ ("host", "^$"),
+ ]
+ )
else:
# When a user calls get_state w/o specifying req_states, default_req_states
# is used as its value.
- default_req_states = ['redfish',
- 'chassis',
- 'bmc',
- 'boot_progress',
- 'host',
- 'os_ping',
- 'os_login',
- 'os_run_cmd']
+ default_req_states = [
+ "redfish",
+ "chassis",
+ "bmc",
+ "boot_progress",
+ "host",
+ "os_ping",
+ "os_login",
+ "os_run_cmd",
+ ]
# valid_req_states is a list of sub states supported by the get_state function.
# valid_req_states, default_req_states and master_os_up_match are used by the
# get_state function.
- valid_req_states = ['ping',
- 'packet_loss',
- 'uptime',
- 'epoch_seconds',
- 'elapsed_boot_time',
- 'redfish',
- 'chassis',
- 'requested_chassis',
- 'bmc',
- 'requested_bmc',
- 'boot_progress',
- 'host',
- 'requested_host',
- 'attempts_left',
- 'os_ping',
- 'os_login',
- 'os_run_cmd']
+ valid_req_states = [
+ "ping",
+ "packet_loss",
+ "uptime",
+ "epoch_seconds",
+ "elapsed_boot_time",
+ "redfish",
+ "chassis",
+ "requested_chassis",
+ "bmc",
+ "requested_bmc",
+ "boot_progress",
+ "host",
+ "requested_host",
+ "attempts_left",
+ "os_ping",
+ "os_login",
+ "os_run_cmd",
+ ]
# default_state is an initial value which may be of use to callers.
- default_state = DotDict([('redfish', '1'),
- ('chassis', 'On'),
- ('bmc', 'Enabled'),
- ('boot_progress',
- 'SystemHardwareInitializationComplete|OSBootStarted|OSRunning'),
- ('host', 'Enabled'),
- ('os_ping', '1'),
- ('os_login', '1'),
- ('os_run_cmd', '1')])
+ default_state = DotDict(
+ [
+ ("redfish", "1"),
+ ("chassis", "On"),
+ ("bmc", "Enabled"),
+ (
+ "boot_progress",
+ "SystemHardwareInitializationComplete|OSBootStarted|OSRunning",
+ ),
+ ("host", "Enabled"),
+ ("os_ping", "1"),
+ ("os_login", "1"),
+ ("os_run_cmd", "1"),
+ ]
+ )
# A match state for checking that the system is at "standby".
- standby_match_state = DotDict([('redfish', '^1$'),
- ('chassis', '^Off$'),
- ('bmc', '^Enabled$'),
- ('boot_progress', '^None$'),
- ('host', '^Disabled$')])
+ standby_match_state = DotDict(
+ [
+ ("redfish", "^1$"),
+ ("chassis", "^Off$"),
+ ("bmc", "^Enabled$"),
+ ("boot_progress", "^None$"),
+ ("host", "^Disabled$"),
+ ]
+ )
# A match state for checking that the system is at "os running".
- os_running_match_state = DotDict([('chassis', '^On$'),
- ('bmc', '^Enabled$'),
- ('boot_progress',
- 'SystemHardwareInitializationComplete|OSBootStarted|OSRunning'),
- ('host', '^Enabled$'),
- ('os_ping', '^1$'),
- ('os_login', '^1$'),
- ('os_run_cmd', '^1$')])
+ os_running_match_state = DotDict(
+ [
+ ("chassis", "^On$"),
+ ("bmc", "^Enabled$"),
+ (
+ "boot_progress",
+ "SystemHardwareInitializationComplete|OSBootStarted|OSRunning",
+ ),
+ ("host", "^Enabled$"),
+ ("os_ping", "^1$"),
+ ("os_login", "^1$"),
+ ("os_run_cmd", "^1$"),
+ ]
+ )
# A master dictionary to determine whether the os may be up.
- master_os_up_match = DotDict([('chassis', '^On$'),
- ('bmc', '^Enabled$'),
- ('boot_progress',
- 'SystemHardwareInitializationComplete|OSBootStarted|OSRunning'),
- ('host', '^Enabled$')])
+ master_os_up_match = DotDict(
+ [
+ ("chassis", "^On$"),
+ ("bmc", "^Enabled$"),
+ (
+ "boot_progress",
+ "SystemHardwareInitializationComplete|OSBootStarted|OSRunning",
+ ),
+ ("host", "^Enabled$"),
+ ]
+ )
- invalid_state_match = DotDict([('redfish', '^$'),
- ('chassis', '^$'),
- ('bmc', '^$'),
- ('boot_progress', '^$'),
- ('host', '^$')])
+ invalid_state_match = DotDict(
+ [
+ ("redfish", "^$"),
+ ("chassis", "^$"),
+ ("bmc", "^$"),
+ ("boot_progress", "^$"),
+ ("host", "^$"),
+ ]
+ )
# Filter the states based on platform type.
if platform_arch_type == "x86":
-
if not redfish_support_trans_state:
default_req_states.remove("operating_system")
valid_req_states.remove("operating_system")
@@ -280,7 +331,7 @@
del invalid_state_match["boot_progress"]
-def return_state_constant(state_name='default_state'):
+def return_state_constant(state_name="default_state"):
r"""
Return the named state dictionary constant.
"""
@@ -328,12 +379,10 @@
r"""
Return expressions key constant.
"""
- return '<expressions>'
+ return "<expressions>"
-def compare_states(state,
- match_state,
- match_type='and'):
+def compare_states(state, match_state, match_type="and"):
r"""
Compare 2 state dictionaries. Return True if they match and False if they
don't. Note that the match_state dictionary does not need to have an entry
@@ -373,7 +422,7 @@
match_type This may be 'and' or 'or'.
"""
- error_message = gv.valid_value(match_type, valid_values=['and', 'or'])
+ error_message = gv.valid_value(match_type, valid_values=["and", "or"])
if error_message != "":
BuiltIn().fail(gp.sprint_error(error_message))
@@ -382,7 +431,7 @@
except TypeError:
pass
- default_match = (match_type == 'and')
+ default_match = match_type == "and"
for key, match_state_value in match_state.items():
# Blank match_state_value means "don't care".
if match_state_value == "":
@@ -395,7 +444,9 @@
return match
else:
try:
- match = (re.match(match_state_value, str(state[key])) is not None)
+ match = (
+ re.match(match_state_value, str(state[key])) is not None
+ )
except KeyError:
match = False
if match != default_match:
@@ -404,12 +455,14 @@
return default_match
-def get_os_state(os_host="",
- os_username="",
- os_password="",
- req_states=default_os_req_states,
- os_up=True,
- quiet=None):
+def get_os_state(
+ os_host="",
+ os_username="",
+ os_password="",
+ req_states=default_os_req_states,
+ os_up=True,
+ quiet=None,
+):
r"""
Get component states for the operating system such as ping, login,
etc, put them into a dictionary and return them to the caller.
@@ -455,11 +508,16 @@
if error_message != "":
BuiltIn().fail(gp.sprint_error(error_message))
- invalid_req_states = [sub_state for sub_state in req_states
- if sub_state not in valid_os_req_states]
+ invalid_req_states = [
+ sub_state
+ for sub_state in req_states
+ if sub_state not in valid_os_req_states
+ ]
if len(invalid_req_states) > 0:
- error_message = "The following req_states are not supported:\n" +\
- gp.sprint_var(invalid_req_states)
+ error_message = (
+ "The following req_states are not supported:\n"
+ + gp.sprint_var(invalid_req_states)
+ )
BuiltIn().fail(gp.sprint_error(error_message))
# Initialize all substate values supported by this function.
@@ -468,28 +526,37 @@
os_run_cmd = 0
if os_up:
- if 'os_ping' in req_states:
+ if "os_ping" in req_states:
# See if the OS pings.
- rc, out_buf = gc.shell_cmd("ping -c 1 -w 2 " + os_host,
- print_output=0, show_err=0,
- ignore_err=1)
+ rc, out_buf = gc.shell_cmd(
+ "ping -c 1 -w 2 " + os_host,
+ print_output=0,
+ show_err=0,
+ ignore_err=1,
+ )
if rc == 0:
os_ping = 1
# Programming note: All attributes which do not require an ssh login
# should have been processed by this point.
- master_req_login = ['os_login', 'os_run_cmd']
- req_login = [sub_state for sub_state in req_states if sub_state in
- master_req_login]
- must_login = (len(req_login) > 0)
+ master_req_login = ["os_login", "os_run_cmd"]
+ req_login = [
+ sub_state
+ for sub_state in req_states
+ if sub_state in master_req_login
+ ]
+ must_login = len(req_login) > 0
if must_login:
- output, stderr, rc = bsu.os_execute_command("uptime", quiet=quiet,
- ignore_err=1,
- time_out=20,
- os_host=os_host,
- os_username=os_username,
- os_password=os_password)
+ output, stderr, rc = bsu.os_execute_command(
+ "uptime",
+ quiet=quiet,
+ ignore_err=1,
+ time_out=20,
+ os_host=os_host,
+ os_username=os_username,
+ os_password=os_password,
+ )
if rc == 0:
os_login = 1
os_run_cmd = 1
@@ -505,14 +572,16 @@
return os_state
-def get_state(openbmc_host="",
- openbmc_username="",
- openbmc_password="",
- os_host="",
- os_username="",
- os_password="",
- req_states=default_req_states,
- quiet=None):
+def get_state(
+ openbmc_host="",
+ openbmc_username="",
+ openbmc_password="",
+ os_host="",
+ os_username="",
+ os_password="",
+ req_states=default_req_states,
+ quiet=None,
+):
r"""
Get component states such as chassis state, bmc state, etc, put them into a
dictionary and return them to the caller.
@@ -581,116 +650,149 @@
if os_password is None:
os_password = ""
- invalid_req_states = [sub_state for sub_state in req_states
- if sub_state not in valid_req_states]
+ invalid_req_states = [
+ sub_state
+ for sub_state in req_states
+ if sub_state not in valid_req_states
+ ]
if len(invalid_req_states) > 0:
- error_message = "The following req_states are not supported:\n" +\
- gp.sprint_var(invalid_req_states)
+ error_message = (
+ "The following req_states are not supported:\n"
+ + gp.sprint_var(invalid_req_states)
+ )
BuiltIn().fail(gp.sprint_error(error_message))
# Initialize all substate values supported by this function.
ping = 0
- packet_loss = ''
- uptime = ''
- epoch_seconds = ''
- elapsed_boot_time = ''
- rest = ''
- redfish = ''
- chassis = ''
- requested_chassis = ''
- bmc = ''
- requested_bmc = ''
+ packet_loss = ""
+ uptime = ""
+ epoch_seconds = ""
+ elapsed_boot_time = ""
+ rest = ""
+ redfish = ""
+ chassis = ""
+ requested_chassis = ""
+ bmc = ""
+ requested_bmc = ""
# BootProgress state will get populated when state logic enumerates the
# state URI. This is to prevent state dictionary boot_progress value
# getting empty when the BootProgress is NOT found, making it optional.
- boot_progress = 'NA'
- operating_system = ''
- host = ''
- requested_host = ''
- attempts_left = ''
+ boot_progress = "NA"
+ operating_system = ""
+ host = ""
+ requested_host = ""
+ attempts_left = ""
# Get the component states.
- if 'ping' in req_states:
+ if "ping" in req_states:
# See if the OS pings.
- rc, out_buf = gc.shell_cmd("ping -c 1 -w 2 " + openbmc_host,
- print_output=0, show_err=0,
- ignore_err=1)
+ rc, out_buf = gc.shell_cmd(
+ "ping -c 1 -w 2 " + openbmc_host,
+ print_output=0,
+ show_err=0,
+ ignore_err=1,
+ )
if rc == 0:
ping = 1
- if 'packet_loss' in req_states:
+ if "packet_loss" in req_states:
# See if the OS pings.
- cmd_buf = "ping -c 5 -w 5 " + openbmc_host +\
- " | egrep 'packet loss' | sed -re 's/.* ([0-9]+)%.*/\\1/g'"
- rc, out_buf = gc.shell_cmd(cmd_buf,
- print_output=0, show_err=0,
- ignore_err=1)
+ cmd_buf = (
+ "ping -c 5 -w 5 "
+ + openbmc_host
+ + " | egrep 'packet loss' | sed -re 's/.* ([0-9]+)%.*/\\1/g'"
+ )
+ rc, out_buf = gc.shell_cmd(
+ cmd_buf, print_output=0, show_err=0, ignore_err=1
+ )
if rc == 0:
packet_loss = out_buf.rstrip("\n")
- if 'uptime' in req_states:
+ if "uptime" in req_states:
# Sometimes reading uptime results in a blank value. Call with
# wait_until_keyword_succeeds to ensure a non-blank value is obtained.
- remote_cmd_buf = "bash -c 'read uptime filler 2>/dev/null < /proc/uptime" +\
- " && [ ! -z \"${uptime}\" ] && echo ${uptime}'"
- cmd_buf = ["BMC Execute Command",
- re.sub('\\$', '\\$', remote_cmd_buf), 'quiet=1',
- 'test_mode=0', 'time_out=5']
+ remote_cmd_buf = (
+ "bash -c 'read uptime filler 2>/dev/null < /proc/uptime"
+ + ' && [ ! -z "${uptime}" ] && echo ${uptime}\''
+ )
+ cmd_buf = [
+ "BMC Execute Command",
+ re.sub("\\$", "\\$", remote_cmd_buf),
+ "quiet=1",
+ "test_mode=0",
+ "time_out=5",
+ ]
gp.qprint_issuing(cmd_buf, 0)
gp.qprint_issuing(remote_cmd_buf, 0)
try:
- stdout, stderr, rc =\
- BuiltIn().wait_until_keyword_succeeds("10 sec", "5 sec",
- *cmd_buf)
+ stdout, stderr, rc = BuiltIn().wait_until_keyword_succeeds(
+ "10 sec", "5 sec", *cmd_buf
+ )
if rc == 0 and stderr == "":
uptime = stdout
except AssertionError as my_assertion_error:
pass
- if 'epoch_seconds' in req_states or 'elapsed_boot_time' in req_states:
+ if "epoch_seconds" in req_states or "elapsed_boot_time" in req_states:
date_cmd_buf = "date -u +%s"
if USE_BMC_EPOCH_TIME:
- cmd_buf = ["BMC Execute Command", date_cmd_buf, 'quiet=${1}']
+ cmd_buf = ["BMC Execute Command", date_cmd_buf, "quiet=${1}"]
if not quiet:
gp.print_issuing(cmd_buf)
- status, ret_values = \
- BuiltIn().run_keyword_and_ignore_error(*cmd_buf)
+ status, ret_values = BuiltIn().run_keyword_and_ignore_error(
+ *cmd_buf
+ )
if status == "PASS":
stdout, stderr, rc = ret_values
if rc == 0 and stderr == "":
epoch_seconds = stdout.rstrip("\n")
else:
- shell_rc, out_buf = gc.cmd_fnc_u(date_cmd_buf,
- quiet=quiet,
- print_output=0)
+ shell_rc, out_buf = gc.cmd_fnc_u(
+ date_cmd_buf, quiet=quiet, print_output=0
+ )
if shell_rc == 0:
epoch_seconds = out_buf.rstrip("\n")
- if 'elapsed_boot_time' in req_states:
+ if "elapsed_boot_time" in req_states:
global start_boot_seconds
elapsed_boot_time = int(epoch_seconds) - start_boot_seconds
if not redfish_support_trans_state:
- master_req_rest = ['rest', 'host', 'requested_host', 'operating_system',
- 'attempts_left', 'boot_progress', 'chassis',
- 'requested_chassis' 'bmc' 'requested_bmc']
+ master_req_rest = [
+ "rest",
+ "host",
+ "requested_host",
+ "operating_system",
+ "attempts_left",
+ "boot_progress",
+ "chassis",
+ "requested_chassisbmcrequested_bmc",
+ ]
- req_rest = [sub_state for sub_state in req_states if sub_state in
- master_req_rest]
- need_rest = (len(req_rest) > 0)
+ req_rest = [
+ sub_state
+ for sub_state in req_states
+ if sub_state in master_req_rest
+ ]
+ need_rest = len(req_rest) > 0
state = DotDict()
if need_rest:
- cmd_buf = ["Read Properties", SYSTEM_STATE_URI + "enumerate",
- "quiet=${" + str(quiet) + "}", "timeout=30"]
+ cmd_buf = [
+ "Read Properties",
+ SYSTEM_STATE_URI + "enumerate",
+ "quiet=${" + str(quiet) + "}",
+ "timeout=30",
+ ]
gp.dprint_issuing(cmd_buf)
- status, ret_values = \
- BuiltIn().run_keyword_and_ignore_error(*cmd_buf)
+ status, ret_values = BuiltIn().run_keyword_and_ignore_error(
+ *cmd_buf
+ )
if status == "PASS":
- state['rest'] = '1'
+ state["rest"] = "1"
else:
- state['rest'] = '0'
+ state["rest"] = "0"
- if int(state['rest']):
+ if int(state["rest"]):
for url_path in ret_values:
# Skip conflicting "CurrentHostState" URL from the enum
# /xyz/openbmc_project/state/hypervisor0
@@ -706,54 +808,69 @@
for attr_name in ret_values[url_path]:
# Create a state key value based on the attr_name.
try:
- ret_values[url_path][attr_name] = \
- re.sub(r'.*\.', "",
- ret_values[url_path][attr_name])
+ ret_values[url_path][attr_name] = re.sub(
+ r".*\.", "", ret_values[url_path][attr_name]
+ )
except TypeError:
pass
# Do some key name manipulations.
- new_attr_name = re.sub(r'^Current|(State|Transition)$',
- "", attr_name)
- new_attr_name = re.sub(r'BMC', r'Bmc', new_attr_name)
- new_attr_name = re.sub(r'([A-Z][a-z])', r'_\1',
- new_attr_name)
+ new_attr_name = re.sub(
+ r"^Current|(State|Transition)$", "", attr_name
+ )
+ new_attr_name = re.sub(r"BMC", r"Bmc", new_attr_name)
+ new_attr_name = re.sub(
+ r"([A-Z][a-z])", r"_\1", new_attr_name
+ )
new_attr_name = new_attr_name.lower().lstrip("_")
- new_attr_name = re.sub(r'power', r'chassis', new_attr_name)
+ new_attr_name = re.sub(
+ r"power", r"chassis", new_attr_name
+ )
if new_attr_name in req_states:
- state[new_attr_name] = ret_values[url_path][attr_name]
+ state[new_attr_name] = ret_values[url_path][
+ attr_name
+ ]
else:
- master_req_rf = ['redfish', 'host', 'requested_host',
- 'attempts_left', 'boot_progress', 'chassis',
- 'requested_chassis' 'bmc' 'requested_bmc']
+ master_req_rf = [
+ "redfish",
+ "host",
+ "requested_host",
+ "attempts_left",
+ "boot_progress",
+ "chassis",
+ "requested_chassisbmcrequested_bmc",
+ ]
- req_rf = [sub_state for sub_state in req_states if sub_state in
- master_req_rf]
- need_rf = (len(req_rf) > 0)
+ req_rf = [
+ sub_state for sub_state in req_states if sub_state in master_req_rf
+ ]
+ need_rf = len(req_rf) > 0
state = DotDict()
if need_rf:
cmd_buf = ["Redfish Get States"]
gp.dprint_issuing(cmd_buf)
try:
- status, ret_values = \
- BuiltIn().run_keyword_and_ignore_error(*cmd_buf)
+ status, ret_values = BuiltIn().run_keyword_and_ignore_error(
+ *cmd_buf
+ )
except Exception as ex:
# Robot raised UserKeywordExecutionFailed error exception.
gp.dprint_issuing("Retrying Redfish Get States")
- status, ret_values = \
- BuiltIn().run_keyword_and_ignore_error(*cmd_buf)
+ status, ret_values = BuiltIn().run_keyword_and_ignore_error(
+ *cmd_buf
+ )
gp.dprint_vars(status, ret_values)
if status == "PASS":
- state['redfish'] = '1'
+ state["redfish"] = "1"
else:
- state['redfish'] = '0'
+ state["redfish"] = "0"
- if int(state['redfish']):
- state['chassis'] = ret_values['chassis']
- state['host'] = ret_values['host']
- state['bmc'] = ret_values['bmc']
+ if int(state["redfish"]):
+ state["chassis"] = ret_values["chassis"]
+ state["host"] = ret_values["host"]
+ state["bmc"] = ret_values["bmc"]
if platform_arch_type != "x86":
- state['boot_progress'] = ret_values['boot_progress']
+ state["boot_progress"] = ret_values["boot_progress"]
for sub_state in req_states:
if sub_state in state:
@@ -769,8 +886,9 @@
# it doesn't exist.
return state
- os_req_states = [sub_state for sub_state in req_states
- if sub_state.startswith('os_')]
+ os_req_states = [
+ sub_state for sub_state in req_states if sub_state.startswith("os_")
+ ]
if len(os_req_states) > 0:
# The caller has specified an os_host and they have requested
@@ -784,12 +902,14 @@
if sub_state in req_states:
os_up_match[sub_state] = master_os_up_match[sub_state]
os_up = compare_states(state, os_up_match)
- os_state = get_os_state(os_host=os_host,
- os_username=os_username,
- os_password=os_password,
- req_states=os_req_states,
- os_up=os_up,
- quiet=quiet)
+ os_state = get_os_state(
+ os_host=os_host,
+ os_username=os_username,
+ os_password=os_password,
+ req_states=os_req_states,
+ os_up=os_up,
+ quiet=quiet,
+ )
# Append os_state dictionary to ours.
state.update(os_state)
@@ -815,16 +935,18 @@
exit_wait_early_message = value
-def check_state(match_state,
- invert=0,
- print_string="",
- openbmc_host="",
- openbmc_username="",
- openbmc_password="",
- os_host="",
- os_username="",
- os_password="",
- quiet=None):
+def check_state(
+ match_state,
+ invert=0,
+ print_string="",
+ openbmc_host="",
+ openbmc_username="",
+ openbmc_password="",
+ os_host="",
+ os_username="",
+ os_password="",
+ quiet=None,
+):
r"""
Check that the Open BMC machine's composite state matches the specified
state. On success, this keyword returns the machine's composite state as a
@@ -873,14 +995,16 @@
if expressions_key() in req_states:
req_states.remove(expressions_key())
# Initialize state.
- state = get_state(openbmc_host=openbmc_host,
- openbmc_username=openbmc_username,
- openbmc_password=openbmc_password,
- os_host=os_host,
- os_username=os_username,
- os_password=os_password,
- req_states=req_states,
- quiet=quiet)
+ state = get_state(
+ openbmc_host=openbmc_host,
+ openbmc_username=openbmc_username,
+ openbmc_password=openbmc_password,
+ os_host=os_host,
+ os_username=os_username,
+ os_password=os_password,
+ req_states=req_states,
+ quiet=quiet,
+ )
if not quiet:
gp.print_var(state)
@@ -894,29 +1018,36 @@
match = compare_states(state, match_state)
if invert and match:
- fail_msg = "The current state of the machine matches the match" +\
- " state:\n" + gp.sprint_varx("state", state)
+ fail_msg = (
+ "The current state of the machine matches the match"
+ + " state:\n"
+ + gp.sprint_varx("state", state)
+ )
BuiltIn().fail("\n" + gp.sprint_error(fail_msg))
elif not invert and not match:
- fail_msg = "The current state of the machine does NOT match the" +\
- " match state:\n" +\
- gp.sprint_varx("state", state)
+ fail_msg = (
+ "The current state of the machine does NOT match the"
+ + " match state:\n"
+ + gp.sprint_varx("state", state)
+ )
BuiltIn().fail("\n" + gp.sprint_error(fail_msg))
return state
-def wait_state(match_state=(),
- wait_time="1 min",
- interval="1 second",
- invert=0,
- openbmc_host="",
- openbmc_username="",
- openbmc_password="",
- os_host="",
- os_username="",
- os_password="",
- quiet=None):
+def wait_state(
+ match_state=(),
+ wait_time="1 min",
+ interval="1 second",
+ invert=0,
+ openbmc_host="",
+ openbmc_username="",
+ openbmc_password="",
+ os_host="",
+ os_username="",
+ os_password="",
+ quiet=None,
+):
r"""
Wait for the Open BMC machine's composite state to match the specified
state. On success, this keyword returns the machine's composite state as
@@ -967,9 +1098,15 @@
alt_text = "cease to "
else:
alt_text = ""
- gp.print_timen("Checking every " + str(interval) + " for up to "
- + str(wait_time) + " for the state of the machine to "
- + alt_text + "match the state shown below.")
+ gp.print_timen(
+ "Checking every "
+ + str(interval)
+ + " for up to "
+ + str(wait_time)
+ + " for the state of the machine to "
+ + alt_text
+ + "match the state shown below."
+ )
gp.print_var(match_state)
if quiet:
@@ -982,16 +1119,24 @@
# In debug we print state so no need to print the "#".
print_string = ""
check_state_quiet = 1 - debug
- cmd_buf = ["Check State", match_state, "invert=${" + str(invert) + "}",
- "print_string=" + print_string, "openbmc_host=" + openbmc_host,
- "openbmc_username=" + openbmc_username,
- "openbmc_password=" + openbmc_password, "os_host=" + os_host,
- "os_username=" + os_username, "os_password=" + os_password,
- "quiet=${" + str(check_state_quiet) + "}"]
+ cmd_buf = [
+ "Check State",
+ match_state,
+ "invert=${" + str(invert) + "}",
+ "print_string=" + print_string,
+ "openbmc_host=" + openbmc_host,
+ "openbmc_username=" + openbmc_username,
+ "openbmc_password=" + openbmc_password,
+ "os_host=" + os_host,
+ "os_username=" + os_username,
+ "os_password=" + os_password,
+ "quiet=${" + str(check_state_quiet) + "}",
+ ]
gp.dprint_issuing(cmd_buf)
try:
- state = BuiltIn().wait_until_keyword_succeeds(wait_time, interval,
- *cmd_buf)
+ state = BuiltIn().wait_until_keyword_succeeds(
+ wait_time, interval, *cmd_buf
+ )
except AssertionError as my_assertion_error:
gp.printn()
message = my_assertion_error.args[0]
@@ -1024,8 +1169,7 @@
set_start_boot_seconds(0)
-def wait_for_comm_cycle(start_boot_seconds,
- quiet=None):
+def wait_for_comm_cycle(start_boot_seconds, quiet=None):
r"""
Wait for the BMC uptime to be less than elapsed_boot_time.
@@ -1055,15 +1199,19 @@
# Wait for uptime to be less than elapsed_boot_time.
set_start_boot_seconds(start_boot_seconds)
- expr = 'int(float(state[\'uptime\'])) < int(state[\'elapsed_boot_time\'])'
- match_state = DotDict([('uptime', '^[0-9\\.]+$'),
- ('elapsed_boot_time', '^[0-9]+$'),
- (expressions_key(), [expr])])
+ expr = "int(float(state['uptime'])) < int(state['elapsed_boot_time'])"
+ match_state = DotDict(
+ [
+ ("uptime", "^[0-9\\.]+$"),
+ ("elapsed_boot_time", "^[0-9]+$"),
+ (expressions_key(), [expr]),
+ ]
+ )
wait_state(match_state, wait_time="12 mins", interval="5 seconds")
gp.qprint_timen("Verifying that REST/Redfish API interface is working.")
if not redfish_support_trans_state:
- match_state = DotDict([('rest', '^1$')])
+ match_state = DotDict([("rest", "^1$")])
else:
- match_state = DotDict([('redfish', '^1$')])
+ match_state = DotDict([("redfish", "^1$")])
state = wait_state(match_state, wait_time="5 mins", interval="2 seconds")