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