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