| #!/usr/bin/env python3 | 
 |  | 
 | r""" | 
 | Variable constants applicable to all OpenBMC test. | 
 | """ | 
 |  | 
 | import os | 
 |  | 
 | from robot.libraries.BuiltIn import BuiltIn | 
 |  | 
 | OPENBMC_BASE_URI = "/xyz/openbmc_project/" | 
 | OPENBMC_BASE_DBUS = "xyz.openbmc_project." | 
 |  | 
 | # Generic Dbus commands. | 
 | OPENBMC_DBUS_GET_PROPERTY = "busctl get-property " | 
 | OPENBMC_DBUS_SET_PROPERTY = "busctl set-property " | 
 |  | 
 | # org open power base URI. | 
 | OPENPOWER_BASE_URI = "/org/open_power/" | 
 | OPENPOWER_CONTROL = OPENPOWER_BASE_URI + "control/" | 
 | OPENPOWER_SENSORS = OPENPOWER_BASE_URI + "sensors/" | 
 |  | 
 | # REST URI base endpoint paths. | 
 | CONTROL_URI = OPENBMC_BASE_URI + "control/" | 
 | # Continue to keep to support legacy code. | 
 | SETTINGS_URI = "/org/openbmc/settings/" | 
 | WATCHDOG_URI = OPENBMC_BASE_URI + "watchdog/" | 
 | TIME_MANAGER_URI = OPENBMC_BASE_URI + "time/" | 
 | NETWORK_MANAGER = OPENBMC_BASE_URI + "network/" | 
 | NETWORK_RESOURCE = "xyz.openbmc_project.Network.IP.Protocol.IPv4" | 
 | # SNMP | 
 | SNMP_MANAGER_URI = NETWORK_MANAGER + "snmp/manager/" | 
 | # Sensors base variables. | 
 | SENSORS_URI = OPENBMC_BASE_URI + "sensors/" | 
 | # Thermal Control base variables | 
 | THERMAL_CONTROL_URI = CONTROL_URI + "thermal/0" | 
 | THERMAL_METRICS = "ThermalSubsystem/ThermalMetrics" | 
 |  | 
 | COMPONENT_NAME_OF_POWER_SUPPLY = "powersupply" | 
 |  | 
 | # State Manager base variables | 
 | BMC_REBOOT_TRANS = "xyz.openbmc_project.State.BMC.Transition.Reboot" | 
 |  | 
 | HOST_POWEROFF_TRANS = "xyz.openbmc_project.State.Host.Transition.Off" | 
 | HOST_POWERON_TRANS = "xyz.openbmc_project.State.Host.Transition.On" | 
 | HOST_REBOOT_TRANS = "xyz.openbmc_project.State.Host.Transition.Reboot" | 
 | HOST_POWEROFF_STATE = "xyz.openbmc_project.State.Host.HostState.Off" | 
 | HOST_POWERON_STATE = "xyz.openbmc_project.State.Host.HostState.Running" | 
 |  | 
 | CHASSIS_POWEROFF_TRANS = "xyz.openbmc_project.State.Chassis.Transition.Off" | 
 | CHASSIS_POWERON_TRANS = "xyz.openbmc_project.State.Chassis.Transition.On" | 
 | CHASSIS_POWEROFF_STATE = "xyz.openbmc_project.State.Chassis.PowerState.Off" | 
 | CHASSIS_POWERON_STATE = "xyz.openbmc_project.State.Chassis.PowerState.On" | 
 |  | 
 | # State Manager URI variables. | 
 | SYSTEM_STATE_URI = OPENBMC_BASE_URI + "state/" | 
 | BMC_STATE_URI = OPENBMC_BASE_URI + "state/bmc0/" | 
 | HOST_STATE_URI = OPENBMC_BASE_URI + "state/host0/" | 
 | CHASSIS_STATE_URI = OPENBMC_BASE_URI + "state/chassis0/" | 
 | HOST_WATCHDOG_URI = OPENBMC_BASE_URI + "watchdog/host0/" | 
 |  | 
 | # OS state for x86 architecture | 
 | OS_STATE_URI = OPENBMC_BASE_URI + "state/os/" | 
 |  | 
 | # Logging URI variables | 
 | BMC_LOGGING_URI = OPENBMC_BASE_URI + "logging/" | 
 | BMC_LOGGING_ENTRY = BMC_LOGGING_URI + "entry/" | 
 | REDFISH_SYSTEM_ID = BuiltIn().get_variable_value( | 
 |     "${SYSTEM_ID}", default="system" | 
 | ) | 
 | REDFISH_BMC_LOGGING_ENTRY = ( | 
 |     "/redfish/v1/Systems/" | 
 |     + REDFISH_SYSTEM_ID | 
 |     + "/LogServices/EventLog/Entries/" | 
 | ) | 
 |  | 
 |  | 
 | # Software manager version | 
 | SOFTWARE_VERSION_URI = OPENBMC_BASE_URI + "software/" | 
 | ACTIVE = "xyz.openbmc_project.Software.Activation.Activations.Active" | 
 | READY = "xyz.openbmc_project.Software.Activation.Activations.Ready" | 
 | INVALID = "xyz.openbmc_project.Software.Activation.Activations.Invalid" | 
 | ACTIVATING = "xyz.openbmc_project.Software.Activation.Activations.Activating" | 
 | NOTREADY = "xyz.openbmc_project.Software.Activation.Activations.NotReady" | 
 | FAILED = "xyz.openbmc_project.Software.Activation.Activations.Failed" | 
 |  | 
 | SOFTWARE_ACTIVATION = "xyz.openbmc_project.Software.Activation" | 
 | REQUESTED_ACTIVATION = SOFTWARE_ACTIVATION + ".RequestedActivations" | 
 | REQUESTED_ACTIVE = REQUESTED_ACTIVATION + ".Active" | 
 | REQUESTED_NONE = REQUESTED_ACTIVATION + ".None" | 
 |  | 
 | SOFTWARE_PURPOSE = "xyz.openbmc_project.Software.Version.VersionPurpose" | 
 | VERSION_PURPOSE_HOST = SOFTWARE_PURPOSE + ".Host" | 
 | VERSION_PURPOSE_BMC = SOFTWARE_PURPOSE + ".BMC" | 
 | VERSION_PURPOSE_SYSTEM = SOFTWARE_PURPOSE + ".System" | 
 |  | 
 | # Image Upload Directory Path | 
 | IMAGE_UPLOAD_DIR_PATH = "/tmp/images/" | 
 |  | 
 | # Inventory URI variables | 
 | HOST_INVENTORY_URI = OPENBMC_BASE_URI + "inventory/" | 
 | CHASSIS_INVENTORY_URI = HOST_INVENTORY_URI + "system/chassis/" | 
 | MOTHERBOARD_INVENTORY_URI = CHASSIS_INVENTORY_URI + "motherboard/" | 
 |  | 
 | # Led URI variable | 
 | LED_GROUPS_URI = OPENBMC_BASE_URI + "led/groups/" | 
 | LED_PHYSICAL_URI = OPENBMC_BASE_URI + "led/physical/" | 
 | LED_LAMP_TEST_ASSERTED_URI = LED_GROUPS_URI + "lamp_test/" | 
 | LED_PHYSICAL_PS0_URI = LED_PHYSICAL_URI + "cffps1_69/" | 
 | LED_PHYSICAL_PS1_URI = LED_PHYSICAL_URI + "cffps1_68/" | 
 | LED_PHYSICAL_FAN0_URI = LED_PHYSICAL_URI + "fan0/" | 
 | LED_PHYSICAL_FAN2_URI = LED_PHYSICAL_URI + "fan2/" | 
 | LED_PHYSICAL_FAN3_URI = LED_PHYSICAL_URI + "fan3/" | 
 |  | 
 | # Host control URI variables. | 
 | CONTROL_HOST_URI = OPENBMC_BASE_URI + "control/host0/" | 
 |  | 
 | # Power restore variables. | 
 | POWER_RESTORE_URI = CONTROL_HOST_URI + "power_restore_policy" | 
 | CONTROL_DBUS_BASE = "xyz.openbmc_project.Control." | 
 |  | 
 | RESTORE_LAST_STATE = CONTROL_DBUS_BASE + "Power.RestorePolicy.Policy.Restore" | 
 | ALWAYS_POWER_ON = CONTROL_DBUS_BASE + "Power.RestorePolicy.Policy.AlwaysOn" | 
 | ALWAYS_POWER_OFF = CONTROL_DBUS_BASE + "Power.RestorePolicy.Policy.AlwaysOff" | 
 |  | 
 | # Dump URI variables. | 
 | REST_DUMP_URI = OPENBMC_BASE_URI + "dump/bmc/" | 
 | DUMP_ENTRY_URI = REST_DUMP_URI + "entry/" | 
 | DUMP_DOWNLOAD_URI = "/download/dump/" | 
 | # The path on the BMC where dumps are stored. | 
 | DUMP_DIR_PATH = "/var/lib/phosphor-debug-collector/" | 
 |  | 
 | # Boot progress variables. | 
 | STATE_DBUS_BASE = "xyz.openbmc_project.State." | 
 | OS_BOOT_START = STATE_DBUS_BASE + "Boot.Progress.ProgressStages.OSStart" | 
 | OS_BOOT_OFF = STATE_DBUS_BASE + "Boot.Progress.ProgressStages.Unspecified" | 
 | OS_BOOT_PCI = STATE_DBUS_BASE + "Boot.Progress.ProgressStages.PCIInit" | 
 | OS_BOOT_SECPCI = ( | 
 |     STATE_DBUS_BASE + "Boot.Progress.ProgressStages.SecondaryProcInit" | 
 | ) | 
 | OS_BOOT_MEM = STATE_DBUS_BASE + "Boot.Progress.ProgressStages.MemoryInit" | 
 | OS_BOOT_MOTHERBOARD = ( | 
 |     STATE_DBUS_BASE + "Boot.Progress.ProgressStages.MotherboardInit" | 
 | ) | 
 | OPENBMC_DBUS_BMC_STATE = STATE_DBUS_BASE + "BMC" | 
 |  | 
 | # OperatingSystem status variables. | 
 | OS_BOOT_COMPLETE = ( | 
 |     STATE_DBUS_BASE + "OperatingSystem.Status.OSStatus.BootComplete" | 
 | ) | 
 | OS_BOOT_CDROM = STATE_DBUS_BASE + "OperatingSystem.Status.OSStatus.CDROMBoot" | 
 | OS_BOOT_ROM = STATE_DBUS_BASE + "OperatingSystem.Status.OSStatus.ROMBoot" | 
 | OS_BOOT_PXE = STATE_DBUS_BASE + "OperatingSystem.Status.OSStatus.PXEBoot" | 
 | OS_BOOT_CBOOT = STATE_DBUS_BASE + "OperatingSystem.Status.OSStatus.CBoot" | 
 | OS_BOOT_DIAGBOOT = STATE_DBUS_BASE + "OperatingSystem.Status.OSStatus.DiagBoot" | 
 |  | 
 | # Boot variables. | 
 | BOOT_SOURCE_DEFAULT = "xyz.openbmc_project.Control.Boot.Source.Sources.Default" | 
 | BOOT_SOURCE_NETWORK = "xyz.openbmc_project.Control.Boot.Source.Sources.Network" | 
 | BOOT_SOURCE_DISK = "xyz.openbmc_project.Control.Boot.Source.Sources.Disk" | 
 | BOOT_SOURCE_CDROM = ( | 
 |     "xyz.openbmc_project.Control.Boot.Source.Sources.ExternalMedia" | 
 | ) | 
 | BOOT_MODE_SAFE = "xyz.openbmc_project.Control.Boot.Mode.Modes.Safe" | 
 | BOOT_MODE_SETUP = "xyz.openbmc_project.Control.Boot.Mode.Modes.Setup" | 
 | BOOT_MODE_REGULAR = "xyz.openbmc_project.Control.Boot.Mode.Modes.Regular" | 
 | BOOT_TYPE_LEGACY = "xyz.openbmc_project.Control.Boot.Type.Types.Legacy" | 
 | BOOT_TYPE_EFI = "xyz.openbmc_project.Control.Boot.Type.Types.EFI" | 
 |  | 
 | # Time variables. | 
 | TIME_DBUS_BASE = "xyz.openbmc_project.Time." | 
 | BMC_OWNER = TIME_DBUS_BASE + "Owner.Owners.BMC" | 
 | HOST_OWNER = TIME_DBUS_BASE + "Owner.Owners.Host" | 
 | SPLIT_OWNER = TIME_DBUS_BASE + "Owner.Owners.Split" | 
 | BOTH_OWNER = TIME_DBUS_BASE + "Owner.Owners.Both" | 
 | NTP_MODE = TIME_DBUS_BASE + "Synchronization.Method.NTP" | 
 | MANUAL_MODE = TIME_DBUS_BASE + "Synchronization.Method.Manual" | 
 |  | 
 | # User manager variable. | 
 | BMC_USER_URI = OPENBMC_BASE_URI + "user/" | 
 |  | 
 | # LDAP User manager variable. | 
 | BMC_LDAP_URI = BMC_USER_URI + "ldap" | 
 |  | 
 | # The path on the BMC where signed keys are stored. | 
 | ACTIVATION_DIR_PATH = "/etc/activationdata/" | 
 |  | 
 | # Redfish variables. | 
 | REDFISH_BASE_URI = "/redfish/v1/" | 
 | REDFISH_SESSION = REDFISH_BASE_URI + "SessionService/Sessions" | 
 | REDFISH_SESSION_URI = "SessionService/Sessions/" | 
 | REDFISH_MANAGERS_ID = BuiltIn().get_variable_value( | 
 |     "${MANAGER_ID}", default="bmc" | 
 | ) | 
 | REDFISH_NW_ETH0 = ( | 
 |     "Managers/" + REDFISH_MANAGERS_ID + "/EthernetInterfaces/eth0/" | 
 | ) | 
 | REDFISH_NW_ETH0_URI = REDFISH_BASE_URI + REDFISH_NW_ETH0 | 
 | REDFISH_NW_ETH_IFACE = ( | 
 |     REDFISH_BASE_URI | 
 |     + "Managers/" | 
 |     + REDFISH_MANAGERS_ID | 
 |     + "/EthernetInterfaces/" | 
 | ) | 
 | REDFISH_LLDP_ETH_IFACE = ( | 
 |     REDFISH_BASE_URI | 
 |     + "Managers/" | 
 |     + REDFISH_MANAGERS_ID | 
 |     + "/DedicatedNetworkPorts/" | 
 | ) | 
 | REDFISH_NW_PROTOCOL = "Managers/" + REDFISH_MANAGERS_ID + "/NetworkProtocol" | 
 | REDFISH_NW_PROTOCOL_URI = REDFISH_BASE_URI + REDFISH_NW_PROTOCOL | 
 | REDFISH_ACCOUNTS_SERVICE = "AccountService/" | 
 | REDFISH_ACCOUNTS_SERVICE_URI = REDFISH_BASE_URI + REDFISH_ACCOUNTS_SERVICE | 
 | REDFISH_ACCOUNTS = "AccountService/Accounts/" | 
 | REDFISH_ACCOUNTS_URI = REDFISH_BASE_URI + REDFISH_ACCOUNTS | 
 | REDFISH_HTTPS_CERTIFICATE = ( | 
 |     "Managers/" + REDFISH_MANAGERS_ID + "/NetworkProtocol/HTTPS/Certificates" | 
 | ) | 
 | REDFISH_HTTPS_CERTIFICATE_URI = REDFISH_BASE_URI + REDFISH_HTTPS_CERTIFICATE | 
 | REDFISH_LDAP_CERTIFICATE = "AccountService/LDAP/Certificates" | 
 | REDFISH_LDAP_CERTIFICATE_URI = REDFISH_BASE_URI + REDFISH_LDAP_CERTIFICATE | 
 | REDFISH_CA_CERTIFICATE = ( | 
 |     "Managers/" + REDFISH_MANAGERS_ID + "/Truststore/Certificates" | 
 | ) | 
 | REDFISH_CA_CERTIFICATE_URI = REDFISH_BASE_URI + REDFISH_CA_CERTIFICATE | 
 | REDFISH_CHASSIS_ID = BuiltIn().get_variable_value( | 
 |     "${CHASSIS_ID}", default="chassis" | 
 | ) | 
 | REDFISH_CHASSIS_URI = REDFISH_BASE_URI + "Chassis/" | 
 | REDFISH_CHASSIS_THERMAL = REDFISH_CHASSIS_ID + "/Thermal/" | 
 | REDFISH_CHASSIS_THERMAL_URI = REDFISH_CHASSIS_URI + REDFISH_CHASSIS_THERMAL | 
 | REDFISH_CHASSIS_POWER = REDFISH_CHASSIS_ID + "/Power/" | 
 | REDFISH_CHASSIS_POWER_URI = REDFISH_CHASSIS_URI + REDFISH_CHASSIS_POWER | 
 | REDFISH_CHASSIS_SENSORS = REDFISH_CHASSIS_ID + "/Sensors" | 
 | REDFISH_CHASSIS_SENSORS_URI = REDFISH_CHASSIS_URI + REDFISH_CHASSIS_SENSORS | 
 | REDFISH_BMC_DUMP = ( | 
 |     "Managers/" + REDFISH_MANAGERS_ID + "/LogServices/Dump/Entries" | 
 | ) | 
 | REDFISH_DUMP_URI = REDFISH_BASE_URI + REDFISH_BMC_DUMP | 
 | REDFISH_SYSTEM_DUMP = ( | 
 |     REDFISH_BASE_URI | 
 |     + "/Systems/" | 
 |     + REDFISH_SYSTEM_ID | 
 |     + "/LogServices/Dump/Entries" | 
 | ) | 
 |  | 
 | # Boot options and URI variables. | 
 | POWER_ON = "On" | 
 | POWER_GRACEFUL_OFF = "GracefulShutdown" | 
 | POWER_GRACEFUL_RESTART = "GracefulRestart" | 
 | POWER_FORCE_OFF = "ForceOff" | 
 |  | 
 | REDFISH_POWER = ( | 
 |     "Systems/" + REDFISH_SYSTEM_ID + "/Actions/ComputerSystem.Reset" | 
 | ) | 
 | REDFISH_POWER_URI = REDFISH_BASE_URI + REDFISH_POWER | 
 |  | 
 | # rsyslog variables. | 
 | REMOTE_LOGGING_URI = OPENBMC_BASE_URI + "logging/config/remote/" | 
 |  | 
 | # Certificate variables. | 
 | SERVER_CERTIFICATE_URI = OPENBMC_BASE_URI + "certs/server/https" | 
 | CLIENT_CERTIFICATE_URI = OPENBMC_BASE_URI + "certs/client/ldap" | 
 | CA_CERTIFICATE_URI = OPENBMC_BASE_URI + "certs/authority/truststore" | 
 |  | 
 | # EventLog variables. | 
 | SYSTEM_BASE_URI = REDFISH_BASE_URI + "Systems/" + REDFISH_SYSTEM_ID + "/" | 
 | EVENT_LOG_URI = SYSTEM_BASE_URI + "LogServices/EventLog/" | 
 | DUMP_URI = SYSTEM_BASE_URI + "LogServices/Dump/" | 
 |  | 
 | BIOS_ATTR_URI = SYSTEM_BASE_URI + "Bios" | 
 | BIOS_ATTR_SETTINGS_URI = BIOS_ATTR_URI + "/Settings" | 
 |  | 
 | """ | 
 |   QEMU HTTPS variable: | 
 |  | 
 |   By default lib/resource.robot AUTH URI construct is as | 
 |   ${AUTH_URI}   https://${OPENBMC_HOST}${AUTH_SUFFIX} | 
 |   ${AUTH_SUFFIX} is populated here by default EMPTY else | 
 |   the port from the OS environment | 
 | """ | 
 |  | 
 | AUTH_SUFFIX = ":" + BuiltIn().get_variable_value( | 
 |     "${HTTPS_PORT}", os.getenv("HTTPS_PORT", "443") | 
 | ) | 
 |  | 
 | # Here contains a list of valid Properties bases on fru_type after a boot. | 
 | INVENTORY_ITEMS = { | 
 |     "CPU": [ | 
 |         "Custom Field 1", | 
 |         "Custom Field 2", | 
 |         "Custom Field 3", | 
 |         "Custom Field 4", | 
 |         "Custom Field 5", | 
 |         "Custom Field 6", | 
 |         "Custom Field 7", | 
 |         "Custom Field 8", | 
 |         "FRU File ID", | 
 |         "Manufacturer", | 
 |         "Name", | 
 |         "Part Number", | 
 |         "Serial Number", | 
 |         "fault", | 
 |         "fru_type", | 
 |         "is_fru", | 
 |         "present", | 
 |         "version", | 
 |     ], | 
 |     "DIMM": [ | 
 |         "Asset Tag", | 
 |         "Custom Field 1", | 
 |         "Custom Field 2", | 
 |         "Custom Field 3", | 
 |         "Custom Field 4", | 
 |         "Custom Field 5", | 
 |         "Custom Field 6", | 
 |         "Custom Field 7", | 
 |         "Custom Field 8", | 
 |         "FRU File ID", | 
 |         "Manufacturer", | 
 |         "Model Number", | 
 |         "Name", | 
 |         "Serial Number", | 
 |         "Version", | 
 |         "fault", | 
 |         "fru_type", | 
 |         "is_fru", | 
 |         "present", | 
 |         "version", | 
 |     ], | 
 |     "MEMORY_BUFFER": [ | 
 |         "Custom Field 1", | 
 |         "Custom Field 2", | 
 |         "Custom Field 3", | 
 |         "Custom Field 4", | 
 |         "Custom Field 5", | 
 |         "Custom Field 6", | 
 |         "Custom Field 7", | 
 |         "Custom Field 8", | 
 |         "FRU File ID", | 
 |         "Manufacturer", | 
 |         "Name", | 
 |         "Part Number", | 
 |         "Serial Number", | 
 |         "fault", | 
 |         "fru_type", | 
 |         "is_fru", | 
 |         "present", | 
 |         "version", | 
 |     ], | 
 |     "FAN": [ | 
 |         "fault", | 
 |         "fru_type", | 
 |         "is_fru", | 
 |         "present", | 
 |         "version", | 
 |     ], | 
 |     "DAUGHTER_CARD": [ | 
 |         "Custom Field 1", | 
 |         "Custom Field 2", | 
 |         "Custom Field 3", | 
 |         "Custom Field 4", | 
 |         "Custom Field 5", | 
 |         "Custom Field 6", | 
 |         "Custom Field 7", | 
 |         "Custom Field 8", | 
 |         "FRU File ID", | 
 |         "Manufacturer", | 
 |         "Name", | 
 |         "Part Number", | 
 |         "Serial Number", | 
 |         "fault", | 
 |         "fru_type", | 
 |         "is_fru", | 
 |         "present", | 
 |         "version", | 
 |     ], | 
 |     "BMC": [ | 
 |         "fault", | 
 |         "fru_type", | 
 |         "is_fru", | 
 |         "manufacturer", | 
 |         "present", | 
 |         "version", | 
 |     ], | 
 |     "MAIN_PLANAR": [ | 
 |         "Custom Field 1", | 
 |         "Custom Field 2", | 
 |         "Custom Field 3", | 
 |         "Custom Field 4", | 
 |         "Custom Field 5", | 
 |         "Custom Field 6", | 
 |         "Custom Field 7", | 
 |         "Custom Field 8", | 
 |         "Part Number", | 
 |         "Serial Number", | 
 |         "Type", | 
 |         "fault", | 
 |         "fru_type", | 
 |         "is_fru", | 
 |         "present", | 
 |         "version", | 
 |     ], | 
 |     "SYSTEM": [ | 
 |         "Custom Field 1", | 
 |         "Custom Field 2", | 
 |         "Custom Field 3", | 
 |         "Custom Field 4", | 
 |         "Custom Field 5", | 
 |         "Custom Field 6", | 
 |         "Custom Field 7", | 
 |         "Custom Field 8", | 
 |         "FRU File ID", | 
 |         "Manufacturer", | 
 |         "Model Number", | 
 |         "Name", | 
 |         "Serial Number", | 
 |         "Version", | 
 |         "fault", | 
 |         "fru_type", | 
 |         "is_fru", | 
 |         "present", | 
 |         "version", | 
 |     ], | 
 |     "CORE": [ | 
 |         "fault", | 
 |         "fru_type", | 
 |         "is_fru", | 
 |         "present", | 
 |         "version", | 
 |     ], | 
 | } |