1import os 2from robot.libraries.BuiltIn import BuiltIn 3 4OPENBMC_BASE_URI = '/xyz/openbmc_project/' 5OPENBMC_BASE_DBUS = 'xyz.openbmc_project.' 6 7# Generic Dbus commands. 8OPENBMC_DBUS_GET_PROPERTY = "busctl get-property " 9OPENBMC_DBUS_SET_PROPERTY = "busctl set-property " 10 11# org open power base URI. 12OPENPOWER_BASE_URI = '/org/open_power/' 13OPENPOWER_CONTROL = OPENPOWER_BASE_URI + 'control/' 14OPENPOWER_SENSORS = OPENPOWER_BASE_URI + 'sensors/' 15 16# REST URI base endpoint paths. 17CONTROL_URI = OPENBMC_BASE_URI + 'control/' 18# Continue to keep to support legacy code. 19SETTINGS_URI = '/org/openbmc/settings/' 20WATCHDOG_URI = OPENBMC_BASE_URI + 'watchdog/' 21TIME_MANAGER_URI = OPENBMC_BASE_URI + 'time/' 22NETWORK_MANAGER = OPENBMC_BASE_URI + 'network/' 23NETWORK_RESOURCE = 'xyz.openbmc_project.Network.IP.Protocol.IPv4' 24# SNMP 25SNMP_MANAGER_URI = NETWORK_MANAGER + 'snmp/manager/' 26# Sensors base variables. 27SENSORS_URI = OPENBMC_BASE_URI + 'sensors/' 28# Thermal Control base variables 29THERMAL_CONTROL_URI = CONTROL_URI + 'thermal/0' 30THERMAL_METRICS = 'ThermalSubsystem/ThermalMetrics' 31 32COMPONENT_NAME_OF_POWER_SUPPLY = 'powersupply' 33 34# State Manager base variables 35BMC_REBOOT_TRANS = 'xyz.openbmc_project.State.BMC.Transition.Reboot' 36 37HOST_POWEROFF_TRANS = 'xyz.openbmc_project.State.Host.Transition.Off' 38HOST_POWERON_TRANS = 'xyz.openbmc_project.State.Host.Transition.On' 39HOST_REBOOT_TRANS = 'xyz.openbmc_project.State.Host.Transition.Reboot' 40HOST_POWEROFF_STATE = 'xyz.openbmc_project.State.Host.HostState.Off' 41HOST_POWERON_STATE = 'xyz.openbmc_project.State.Host.HostState.Running' 42 43CHASSIS_POWEROFF_TRANS = 'xyz.openbmc_project.State.Chassis.Transition.Off' 44CHASSIS_POWERON_TRANS = 'xyz.openbmc_project.State.Chassis.Transition.On' 45CHASSIS_POWEROFF_STATE = 'xyz.openbmc_project.State.Chassis.PowerState.Off' 46CHASSIS_POWERON_STATE = 'xyz.openbmc_project.State.Chassis.PowerState.On' 47 48# State Manager URI variables. 49SYSTEM_STATE_URI = OPENBMC_BASE_URI + 'state/' 50BMC_STATE_URI = OPENBMC_BASE_URI + 'state/bmc0/' 51HOST_STATE_URI = OPENBMC_BASE_URI + 'state/host0/' 52CHASSIS_STATE_URI = OPENBMC_BASE_URI + 'state/chassis0/' 53HOST_WATCHDOG_URI = OPENBMC_BASE_URI + 'watchdog/host0/' 54 55# OS state for x86 architecture 56OS_STATE_URI = OPENBMC_BASE_URI + 'state/os/' 57 58# Logging URI variables 59BMC_LOGGING_URI = OPENBMC_BASE_URI + 'logging/' 60BMC_LOGGING_ENTRY = BMC_LOGGING_URI + 'entry/' 61REDFISH_BMC_LOGGING_ENTRY = '/redfish/v1/Systems/system/LogServices/EventLog/Entries/' 62 63# Software manager version 64SOFTWARE_VERSION_URI = OPENBMC_BASE_URI + 'software/' 65ACTIVE = 'xyz.openbmc_project.Software.Activation.Activations.Active' 66READY = 'xyz.openbmc_project.Software.Activation.Activations.Ready' 67INVALID = 'xyz.openbmc_project.Software.Activation.Activations.Invalid' 68ACTIVATING = 'xyz.openbmc_project.Software.Activation.Activations.Activating' 69NOTREADY = 'xyz.openbmc_project.Software.Activation.Activations.NotReady' 70FAILED = 'xyz.openbmc_project.Software.Activation.Activations.Failed' 71 72SOFTWARE_ACTIVATION = 'xyz.openbmc_project.Software.Activation' 73REQUESTED_ACTIVATION = SOFTWARE_ACTIVATION + '.RequestedActivations' 74REQUESTED_ACTIVE = REQUESTED_ACTIVATION + '.Active' 75REQUESTED_NONE = REQUESTED_ACTIVATION + '.None' 76 77SOFTWARE_PURPOSE = 'xyz.openbmc_project.Software.Version.VersionPurpose' 78VERSION_PURPOSE_HOST = SOFTWARE_PURPOSE + '.Host' 79VERSION_PURPOSE_BMC = SOFTWARE_PURPOSE + '.BMC' 80VERSION_PURPOSE_SYSTEM = SOFTWARE_PURPOSE + '.System' 81 82# Image Upload Directory Path 83IMAGE_UPLOAD_DIR_PATH = '/tmp/images/' 84 85# Inventory URI variables 86HOST_INVENTORY_URI = OPENBMC_BASE_URI + 'inventory/' 87CHASSIS_INVENTORY_URI = HOST_INVENTORY_URI + 'system/chassis/' 88MOTHERBOARD_INVENTORY_URI = CHASSIS_INVENTORY_URI + 'motherboard/' 89 90# Led URI variable 91LED_GROUPS_URI = OPENBMC_BASE_URI + 'led/groups/' 92LED_PHYSICAL_URI = OPENBMC_BASE_URI + 'led/physical/' 93LED_LAMP_TEST_ASSERTED_URI = LED_GROUPS_URI + 'lamp_test/' 94LED_PHYSICAL_PS0_URI = LED_PHYSICAL_URI + 'cffps1_69/' 95LED_PHYSICAL_PS1_URI = LED_PHYSICAL_URI + 'cffps1_68/' 96LED_PHYSICAL_FAN0_URI = LED_PHYSICAL_URI + 'fan0/' 97LED_PHYSICAL_FAN2_URI = LED_PHYSICAL_URI + 'fan2/' 98LED_PHYSICAL_FAN3_URI = LED_PHYSICAL_URI + 'fan3/' 99 100# Host control URI variables. 101CONTROL_HOST_URI = OPENBMC_BASE_URI + 'control/host0/' 102 103# Power restore variables. 104POWER_RESTORE_URI = CONTROL_HOST_URI + 'power_restore_policy' 105CONTROL_DBUS_BASE = 'xyz.openbmc_project.Control.' 106 107RESTORE_LAST_STATE = CONTROL_DBUS_BASE + 'Power.RestorePolicy.Policy.Restore' 108ALWAYS_POWER_ON = CONTROL_DBUS_BASE + 'Power.RestorePolicy.Policy.AlwaysOn' 109ALWAYS_POWER_OFF = CONTROL_DBUS_BASE + 'Power.RestorePolicy.Policy.AlwaysOff' 110 111# Dump URI variables. 112REST_DUMP_URI = OPENBMC_BASE_URI + 'dump/bmc/' 113DUMP_ENTRY_URI = REST_DUMP_URI + 'entry/' 114DUMP_DOWNLOAD_URI = "/download/dump/" 115# The path on the BMC where dumps are stored. 116DUMP_DIR_PATH = "/var/lib/phosphor-debug-collector/" 117 118# Boot progress variables. 119STATE_DBUS_BASE = 'xyz.openbmc_project.State.' 120OS_BOOT_START = STATE_DBUS_BASE + 'Boot.Progress.ProgressStages.OSStart' 121OS_BOOT_OFF = STATE_DBUS_BASE + 'Boot.Progress.ProgressStages.Unspecified' 122OS_BOOT_PCI = STATE_DBUS_BASE + 'Boot.Progress.ProgressStages.PCIInit' 123OS_BOOT_SECPCI = STATE_DBUS_BASE + \ 124 'Boot.Progress.ProgressStages.SecondaryProcInit' 125OS_BOOT_MEM = STATE_DBUS_BASE + 'Boot.Progress.ProgressStages.MemoryInit' 126OS_BOOT_MOTHERBOARD = STATE_DBUS_BASE + \ 127 'Boot.Progress.ProgressStages.MotherboardInit' 128OPENBMC_DBUS_BMC_STATE = STATE_DBUS_BASE + "BMC" 129 130# OperatingSystem status variables. 131OS_BOOT_COMPLETE = STATE_DBUS_BASE + \ 132 'OperatingSystem.Status.OSStatus.BootComplete' 133OS_BOOT_CDROM = STATE_DBUS_BASE + 'OperatingSystem.Status.OSStatus.CDROMBoot' 134OS_BOOT_ROM = STATE_DBUS_BASE + 'OperatingSystem.Status.OSStatus.ROMBoot' 135OS_BOOT_PXE = STATE_DBUS_BASE + 'OperatingSystem.Status.OSStatus.PXEBoot' 136OS_BOOT_CBoot = STATE_DBUS_BASE + 'OperatingSystem.Status.OSStatus.CBoot' 137OS_BOOT_DiagBoot = STATE_DBUS_BASE + 'OperatingSystem.Status.OSStatus.DiagBoot' 138 139# Boot variables. 140BOOT_SOURCE_DEFAULT = 'xyz.openbmc_project.Control.Boot.Source.Sources.Default' 141BOOT_SOURCE_NETWORK = 'xyz.openbmc_project.Control.Boot.Source.Sources.Network' 142BOOT_SOURCE_DISK = 'xyz.openbmc_project.Control.Boot.Source.Sources.Disk' 143BOOT_SOURCE_CDROM = 'xyz.openbmc_project.Control.Boot.Source.Sources.ExternalMedia' 144BOOT_MODE_SAFE = 'xyz.openbmc_project.Control.Boot.Mode.Modes.Safe' 145BOOT_MODE_SETUP = 'xyz.openbmc_project.Control.Boot.Mode.Modes.Setup' 146BOOT_MODE_REGULAR = 'xyz.openbmc_project.Control.Boot.Mode.Modes.Regular' 147BOOT_TYPE_LEGACY = 'xyz.openbmc_project.Control.Boot.Type.Types.Legacy' 148BOOT_TYPE_EFI = 'xyz.openbmc_project.Control.Boot.Type.Types.EFI' 149 150# Time variables. 151TIME_DBUS_BASE = 'xyz.openbmc_project.Time.' 152BMC_OWNER = TIME_DBUS_BASE + 'Owner.Owners.BMC' 153HOST_OWNER = TIME_DBUS_BASE + 'Owner.Owners.Host' 154SPLIT_OWNER = TIME_DBUS_BASE + 'Owner.Owners.Split' 155BOTH_OWNER = TIME_DBUS_BASE + 'Owner.Owners.Both' 156NTP_MODE = TIME_DBUS_BASE + 'Synchronization.Method.NTP' 157MANUAL_MODE = TIME_DBUS_BASE + 'Synchronization.Method.Manual' 158 159# User manager variable. 160BMC_USER_URI = OPENBMC_BASE_URI + 'user/' 161 162# LDAP User manager variable. 163BMC_LDAP_URI = BMC_USER_URI + 'ldap' 164 165# The path on the BMC where signed keys are stored. 166ACTIVATION_DIR_PATH = "/etc/activationdata/" 167 168# Redfish variables. 169REDFISH_BASE_URI = '/redfish/v1/' 170REDFISH_SESSION = REDFISH_BASE_URI + 'SessionService/Sessions' 171REDFISH_SESSION_URI = 'SessionService/Sessions/' 172REDFISH_NW_ETH0 = 'Managers/bmc/EthernetInterfaces/eth0/' 173REDFISH_NW_ETH0_URI = REDFISH_BASE_URI + REDFISH_NW_ETH0 174REDFISH_NW_ETH_IFACE = REDFISH_BASE_URI + 'Managers/bmc/EthernetInterfaces/' 175REDFISH_NW_PROTOCOL = 'Managers/bmc/NetworkProtocol' 176REDFISH_NW_PROTOCOL_URI = REDFISH_BASE_URI + REDFISH_NW_PROTOCOL 177REDFISH_ACCOUNTS_SERVICE = 'AccountService/' 178REDFISH_ACCOUNTS_SERVICE_URI = REDFISH_BASE_URI + REDFISH_ACCOUNTS_SERVICE 179REDFISH_ACCOUNTS = 'AccountService/Accounts/' 180REDFISH_ACCOUNTS_URI = REDFISH_BASE_URI + REDFISH_ACCOUNTS 181REDFISH_HTTPS_CERTIFICATE = 'Managers/bmc/NetworkProtocol/HTTPS/Certificates' 182REDFISH_HTTPS_CERTIFICATE_URI = REDFISH_BASE_URI + REDFISH_HTTPS_CERTIFICATE 183REDFISH_LDAP_CERTIFICATE = 'AccountService/LDAP/Certificates' 184REDFISH_LDAP_CERTIFICATE_URI = REDFISH_BASE_URI + REDFISH_LDAP_CERTIFICATE 185REDFISH_CA_CERTIFICATE = 'Managers/bmc/Truststore/Certificates' 186REDFISH_CA_CERTIFICATE_URI = REDFISH_BASE_URI + REDFISH_CA_CERTIFICATE 187REDFISH_CHASSIS_URI = REDFISH_BASE_URI + 'Chassis/' 188REDFISH_CHASSIS_THERMAL = 'chassis/Thermal/' 189REDFISH_CHASSIS_THERMAL_URI = REDFISH_CHASSIS_URI + REDFISH_CHASSIS_THERMAL 190REDFISH_CHASSIS_POWER = 'chassis/Power/' 191REDFISH_CHASSIS_POWER_URI = REDFISH_CHASSIS_URI + REDFISH_CHASSIS_POWER 192REDFISH_CHASSIS_SENSORS = 'chassis/Sensors' 193REDFISH_CHASSIS_SENSORS_URI = REDFISH_CHASSIS_URI + REDFISH_CHASSIS_SENSORS 194 195# Boot options and URI variables. 196POWER_ON = 'On' 197POWER_GRACEFUL_OFF = "GracefulShutdown" 198POWER_GRACEFUL_RESTART = "GracefulRestart" 199POWER_FORCE_OFF = 'ForceOff' 200 201REDFISH_POWER = 'Systems/system/Actions/ComputerSystem.Reset' 202REDFISH_POWER_URI = REDFISH_BASE_URI + REDFISH_POWER 203 204# rsyslog variables. 205REMOTE_LOGGING_URI = OPENBMC_BASE_URI + 'logging/config/remote/' 206 207# Certificate variables. 208SERVER_CERTIFICATE_URI = OPENBMC_BASE_URI + 'certs/server/https' 209CLIENT_CERTIFICATE_URI = OPENBMC_BASE_URI + 'certs/client/ldap' 210CA_CERTIFICATE_URI = OPENBMC_BASE_URI + 'certs/authority/ldap' 211 212# EventLog variables. 213SYSTEM_BASE_URI = REDFISH_BASE_URI + 'Systems/system/' 214EVENT_LOG_URI = SYSTEM_BASE_URI + 'LogServices/EventLog/' 215DUMP_URI = SYSTEM_BASE_URI + 'LogServices/Dump/' 216 217BIOS_ATTR_URI = SYSTEM_BASE_URI + 'Bios' 218BIOS_ATTR_SETTINGS_URI = BIOS_ATTR_URI + '/Settings' 219 220''' 221 QEMU HTTPS variable: 222 223 By default lib/resource.robot AUTH URI construct is as 224 ${AUTH_URI} https://${OPENBMC_HOST}${AUTH_SUFFIX} 225 ${AUTH_SUFFIX} is populated here by default EMPTY else 226 the port from the OS environment 227''' 228 229AUTH_SUFFIX = ":" + BuiltIn().get_variable_value("${HTTPS_PORT}", os.getenv('HTTPS_PORT', '443')) 230 231# Here contains a list of valid Properties bases on fru_type after a boot. 232INVENTORY_ITEMS = { 233 "CPU": [ 234 "Custom Field 1", 235 "Custom Field 2", 236 "Custom Field 3", 237 "Custom Field 4", 238 "Custom Field 5", 239 "Custom Field 6", 240 "Custom Field 7", 241 "Custom Field 8", 242 "FRU File ID", 243 "Manufacturer", 244 "Name", 245 "Part Number", 246 "Serial Number", 247 "fault", 248 "fru_type", 249 "is_fru", 250 "present", 251 "version", 252 ], 253 254 "DIMM": [ 255 "Asset Tag", 256 "Custom Field 1", 257 "Custom Field 2", 258 "Custom Field 3", 259 "Custom Field 4", 260 "Custom Field 5", 261 "Custom Field 6", 262 "Custom Field 7", 263 "Custom Field 8", 264 "FRU File ID", 265 "Manufacturer", 266 "Model Number", 267 "Name", 268 "Serial Number", 269 "Version", 270 "fault", 271 "fru_type", 272 "is_fru", 273 "present", 274 "version", 275 ], 276 "MEMORY_BUFFER": [ 277 "Custom Field 1", 278 "Custom Field 2", 279 "Custom Field 3", 280 "Custom Field 4", 281 "Custom Field 5", 282 "Custom Field 6", 283 "Custom Field 7", 284 "Custom Field 8", 285 "FRU File ID", 286 "Manufacturer", 287 "Name", 288 "Part Number", 289 "Serial Number", 290 "fault", 291 "fru_type", 292 "is_fru", 293 "present", 294 "version", 295 ], 296 "FAN": [ 297 "fault", 298 "fru_type", 299 "is_fru", 300 "present", 301 "version", 302 ], 303 "DAUGHTER_CARD": [ 304 "Custom Field 1", 305 "Custom Field 2", 306 "Custom Field 3", 307 "Custom Field 4", 308 "Custom Field 5", 309 "Custom Field 6", 310 "Custom Field 7", 311 "Custom Field 8", 312 "FRU File ID", 313 "Manufacturer", 314 "Name", 315 "Part Number", 316 "Serial Number", 317 "fault", 318 "fru_type", 319 "is_fru", 320 "present", 321 "version", 322 ], 323 "BMC": [ 324 "fault", 325 "fru_type", 326 "is_fru", 327 "manufacturer", 328 "present", 329 "version", 330 ], 331 "MAIN_PLANAR": [ 332 "Custom Field 1", 333 "Custom Field 2", 334 "Custom Field 3", 335 "Custom Field 4", 336 "Custom Field 5", 337 "Custom Field 6", 338 "Custom Field 7", 339 "Custom Field 8", 340 "Part Number", 341 "Serial Number", 342 "Type", 343 "fault", 344 "fru_type", 345 "is_fru", 346 "present", 347 "version", 348 ], 349 "SYSTEM": [ 350 "Custom Field 1", 351 "Custom Field 2", 352 "Custom Field 3", 353 "Custom Field 4", 354 "Custom Field 5", 355 "Custom Field 6", 356 "Custom Field 7", 357 "Custom Field 8", 358 "FRU File ID", 359 "Manufacturer", 360 "Model Number", 361 "Name", 362 "Serial Number", 363 "Version", 364 "fault", 365 "fru_type", 366 "is_fru", 367 "present", 368 "version", 369 ], 370 "CORE": [ 371 "fault", 372 "fru_type", 373 "is_fru", 374 "present", 375 "version", 376 ], 377} 378