Power State Transition Rules
Rules when no devices are being ignored
"""
import rule_engine
POWER_STATE_RULES_ALL_DEVICES = {
"UPS": rule_engine.Rule("DS.powerstate in ['DSPowerState.UPS', 'DSPowerState.OFF']"),
"LOW_1": rule_engine.Rule("DS.powerstate == 'DSPowerState.LOW_POWER'"),
"FULL_1": rule_engine.Rule("DS.powerstate == 'DSPowerState.FULL_POWER'"),
# consider case where DS is UNKNOWN and only SPF powerState is available
"LOW_2": rule_engine.Rule(
"DS.powerstate == 'DSPowerState.UNKNOWN' and SPF.powerstate == 'SPFPowerState.LOW_POWER'"
),
"FULL_2": rule_engine.Rule(
"DS.powerstate == 'DSPowerState.UNKNOWN' and "
"SPF.powerstate == 'SPFPowerState.FULL_POWER'"
),
# consider case where both components report UNKNOWN powerstate
"LOW_3": rule_engine.Rule(
"DS.powerstate == 'DSPowerState.UNKNOWN' and SPF.powerstate == 'SPFPowerState.UNKNOWN'"
Rules when ignoring SPFC device
}
POWER_STATE_RULES_SPF_IGNORED = {
"UPS": rule_engine.Rule("DS.powerstate in ['DSPowerState.UPS', 'DSPowerState.OFF']"),
"LOW": rule_engine.Rule("DS.powerstate in ['DSPowerState.LOW_POWER', 'DSPowerState.UNKNOWN']"),
"FULL": rule_engine.Rule("DS.powerstate == 'DSPowerState.FULL_POWER'"),