| #!/usr/bin/env python |
| |
| r""" |
| Companion file to utils.robot. |
| """ |
| |
| import gen_print as gp |
| import gen_robot_keyword as grk |
| from robot.libraries.BuiltIn import BuiltIn |
| |
| |
| ############################################################################### |
| def set_power_policy_method(): |
| |
| r""" |
| Set the global bmc_power_policy_method to either 'Old' or 'New'. |
| |
| The power policy data has moved from an 'org' location to an 'xyz' |
| location. This keyword will determine whether the new method of getting |
| the power policy is valid and will set the global bmc_power_policy_method |
| variable accordingly. If power_policy_setup is already set (by a prior |
| call to this function), this keyword will simply return. |
| |
| If bmc_power_policy_method is "Old", this function will adjust the global |
| policy variables from data/variables.py: RESTORE_LAST_STATE, |
| ALWAYS_POWER_ON, ALWAYS_POWER_OFF. |
| """ |
| |
| # Retrieve global variables. |
| power_policy_setup = \ |
| int(BuiltIn().get_variable_value("${power_policy_setup}", |
| default=0)) |
| bmc_power_policy_method = \ |
| BuiltIn().get_variable_value("${bmc_power_policy_method}", |
| default=0) |
| gp.dpvar(power_policy_setup) |
| |
| # If this function has already been run once, we need not continue. |
| if power_policy_setup: |
| return |
| |
| gp.dpvar(bmc_power_policy_method, 1) |
| |
| # The user has not set bmc_power_policy_method via a -v parm so we will |
| # determine what it should be. |
| if bmc_power_policy_method == "": |
| status, ret_values = grk.run_key_u("New Get Power Policy", ignore=1) |
| if status == 'PASS': |
| bmc_power_policy_method = 'New' |
| else: |
| bmc_power_policy_method = 'Old' |
| |
| gp.qpvar(bmc_power_policy_method) |
| # For old style, we will rewrite these global variable settings to old |
| # values. |
| if bmc_power_policy_method == "Old": |
| BuiltIn().set_global_variable("${RESTORE_LAST_STATE}", |
| "RESTORE_LAST_STATE") |
| BuiltIn().set_global_variable("${ALWAYS_POWER_ON}", |
| "ALWAYS_POWER_ON") |
| BuiltIn().set_global_variable("${ALWAYS_POWER_OFF}", |
| "ALWAYS_POWER_OFF") |
| |
| # Set global variables to control subsequent calls to this function. |
| BuiltIn().set_global_variable("${bmc_power_policy_method}", |
| bmc_power_policy_method) |
| BuiltIn().set_global_variable("${power_policy_setup}", 1) |
| |
| |
| ############################################################################### |
| |
| |
| ############################################################################### |
| def translate_power_policy_value(policy): |
| |
| r""" |
| Translate the policy value and return the result. |
| |
| Using old style functions, callers might call like this with a hard- |
| code value for policy: |
| |
| Set BMC Power Policy RESTORE_LAST_STATE |
| |
| This function will get the value of the corresponding global variable (if |
| it exists) and return it. |
| |
| This will allow the old style call to still work on systems using the new |
| method of storing the policy value. |
| """ |
| |
| valid_power_policy_vars = \ |
| BuiltIn().get_variable_value("${valid_power_policy_vars}") |
| |
| if policy not in valid_power_policy_vars: |
| return policy |
| |
| status, ret_values = grk.run_key_u("Get Variable Value ${" + policy + "}", |
| quiet=1) |
| return ret_values |
| |
| ############################################################################### |