140e9b92eSEd Tanous // SPDX-License-Identifier: Apache-2.0 240e9b92eSEd Tanous // SPDX-FileCopyrightText: Copyright OpenBMC Authors 33cd7072bSEd Tanous #include "redfish.hpp" 43cd7072bSEd Tanous 55b90429aSEd Tanous #include "bmcweb_config.h" 65b90429aSEd Tanous 73cd7072bSEd Tanous #include "account_service.hpp" 83cd7072bSEd Tanous #include "aggregation_service.hpp" 93cd7072bSEd Tanous #include "app.hpp" 103cd7072bSEd Tanous #include "bios.hpp" 113cd7072bSEd Tanous #include "cable.hpp" 123cd7072bSEd Tanous #include "certificate_service.hpp" 133cd7072bSEd Tanous #include "chassis.hpp" 143cd7072bSEd Tanous #include "environment_metrics.hpp" 153cd7072bSEd Tanous #include "ethernet.hpp" 163cd7072bSEd Tanous #include "event_service.hpp" 173cd7072bSEd Tanous #include "eventservice_sse.hpp" 183cd7072bSEd Tanous #include "fabric_adapters.hpp" 19*37937d51SGeorge Liu #include "fabric_ports.hpp" 203cd7072bSEd Tanous #include "fan.hpp" 213cd7072bSEd Tanous #include "hypervisor_system.hpp" 223cd7072bSEd Tanous #include "log_services.hpp" 233cd7072bSEd Tanous #include "manager_diagnostic_data.hpp" 24b0983db2SEd Tanous #include "manager_logservices_journal.hpp" 253cd7072bSEd Tanous #include "managers.hpp" 263cd7072bSEd Tanous #include "memory.hpp" 273cd7072bSEd Tanous #include "message_registries.hpp" 28090ab8e1SEd Tanous #include "metadata.hpp" 293cd7072bSEd Tanous #include "metric_report.hpp" 303cd7072bSEd Tanous #include "metric_report_definition.hpp" 313cd7072bSEd Tanous #include "network_protocol.hpp" 32d5c0172eSEd Tanous #include "odata.hpp" 33c1a75ebcSrohitpai #include "openbmc/openbmc_managers.hpp" 343cd7072bSEd Tanous #include "pcie.hpp" 353cd7072bSEd Tanous #include "power.hpp" 363cd7072bSEd Tanous #include "power_subsystem.hpp" 373cd7072bSEd Tanous #include "power_supply.hpp" 383cd7072bSEd Tanous #include "processor.hpp" 393cd7072bSEd Tanous #include "redfish_sessions.hpp" 403cd7072bSEd Tanous #include "redfish_v1.hpp" 413cd7072bSEd Tanous #include "roles.hpp" 423cd7072bSEd Tanous #include "sensors.hpp" 433cd7072bSEd Tanous #include "service_root.hpp" 443cd7072bSEd Tanous #include "storage.hpp" 453cd7072bSEd Tanous #include "systems.hpp" 46e21126ecSEd Tanous #include "systems_logservices_hostlogger.hpp" 478d2f868cSEd Tanous #include "systems_logservices_postcodes.hpp" 483cd7072bSEd Tanous #include "task.hpp" 493cd7072bSEd Tanous #include "telemetry_service.hpp" 503cd7072bSEd Tanous #include "thermal.hpp" 513cd7072bSEd Tanous #include "thermal_metrics.hpp" 523cd7072bSEd Tanous #include "thermal_subsystem.hpp" 533cd7072bSEd Tanous #include "trigger.hpp" 543cd7072bSEd Tanous #include "update_service.hpp" 553cd7072bSEd Tanous #include "virtual_media.hpp" 563cd7072bSEd Tanous 573cd7072bSEd Tanous namespace redfish 583cd7072bSEd Tanous { 593cd7072bSEd Tanous 603cd7072bSEd Tanous RedfishService::RedfishService(App& app) 613cd7072bSEd Tanous { 62090ab8e1SEd Tanous requestRoutesMetadata(app); 63d5c0172eSEd Tanous requestRoutesOdata(app); 64090ab8e1SEd Tanous 653cd7072bSEd Tanous requestAccountServiceRoutes(app); 6625b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_AGGREGATION) 6725b54dbaSEd Tanous { 683cd7072bSEd Tanous requestRoutesAggregationService(app); 693cd7072bSEd Tanous requestRoutesAggregationSourceCollection(app); 703cd7072bSEd Tanous requestRoutesAggregationSource(app); 7125b54dbaSEd Tanous } 723cd7072bSEd Tanous requestRoutesRoles(app); 733cd7072bSEd Tanous requestRoutesRoleCollection(app); 743cd7072bSEd Tanous requestRoutesServiceRoot(app); 753cd7072bSEd Tanous requestRoutesNetworkProtocol(app); 763cd7072bSEd Tanous requestRoutesSession(app); 773cd7072bSEd Tanous requestEthernetInterfacesRoutes(app); 7825b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_ALLOW_DEPRECATED_POWER_THERMAL) 7925b54dbaSEd Tanous { 803cd7072bSEd Tanous requestRoutesThermal(app); 813cd7072bSEd Tanous requestRoutesPower(app); 8225b54dbaSEd Tanous } 8325b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_NEW_POWERSUBSYSTEM_THERMALSUBSYSTEM) 8425b54dbaSEd Tanous { 853cd7072bSEd Tanous requestRoutesEnvironmentMetrics(app); 863cd7072bSEd Tanous requestRoutesPowerSubsystem(app); 873cd7072bSEd Tanous requestRoutesPowerSupply(app); 883cd7072bSEd Tanous requestRoutesPowerSupplyCollection(app); 893cd7072bSEd Tanous requestRoutesThermalMetrics(app); 903cd7072bSEd Tanous requestRoutesThermalSubsystem(app); 913cd7072bSEd Tanous requestRoutesFan(app); 923cd7072bSEd Tanous requestRoutesFanCollection(app); 9325b54dbaSEd Tanous } 943cd7072bSEd Tanous requestRoutesManager(app); 953cd7072bSEd Tanous requestRoutesManagerResetAction(app); 963cd7072bSEd Tanous requestRoutesManagerDiagnosticData(app); 973cd7072bSEd Tanous requestRoutesChassisCollection(app); 983cd7072bSEd Tanous requestRoutesChassis(app); 993cd7072bSEd Tanous requestRoutesChassisResetAction(app); 1003cd7072bSEd Tanous requestRoutesChassisResetActionInfo(app); 1013cd7072bSEd Tanous requestRoutesChassisDrive(app); 1023cd7072bSEd Tanous requestRoutesChassisDriveName(app); 1033cd7072bSEd Tanous requestRoutesUpdateService(app); 1043cd7072bSEd Tanous requestRoutesStorageCollection(app); 1053cd7072bSEd Tanous requestRoutesStorage(app); 1063cd7072bSEd Tanous requestRoutesStorageControllerCollection(app); 1073cd7072bSEd Tanous requestRoutesStorageController(app); 1083cd7072bSEd Tanous requestRoutesDrive(app); 1093cd7072bSEd Tanous requestRoutesCable(app); 1103cd7072bSEd Tanous requestRoutesCableCollection(app); 1113cd7072bSEd Tanous 1123cd7072bSEd Tanous requestRoutesSystemLogServiceCollection(app); 1133cd7072bSEd Tanous requestRoutesEventLogService(app); 1143cd7072bSEd Tanous 1158d2f868cSEd Tanous requestRoutesSystemsLogServicesPostCode(app); 1163cd7072bSEd Tanous 11725b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_DUMP_LOG) 11825b54dbaSEd Tanous { 1193cd7072bSEd Tanous requestRoutesSystemDumpService(app); 1203cd7072bSEd Tanous requestRoutesSystemDumpEntryCollection(app); 1213cd7072bSEd Tanous requestRoutesSystemDumpEntry(app); 1223cd7072bSEd Tanous requestRoutesSystemDumpCreate(app); 1233cd7072bSEd Tanous requestRoutesSystemDumpClear(app); 1243cd7072bSEd Tanous 1253cd7072bSEd Tanous requestRoutesBMCDumpService(app); 1263cd7072bSEd Tanous requestRoutesBMCDumpEntryCollection(app); 1273cd7072bSEd Tanous requestRoutesBMCDumpEntry(app); 1283cd7072bSEd Tanous requestRoutesBMCDumpEntryDownload(app); 1293cd7072bSEd Tanous requestRoutesBMCDumpCreate(app); 1303cd7072bSEd Tanous requestRoutesBMCDumpClear(app); 1313cd7072bSEd Tanous 1323cd7072bSEd Tanous requestRoutesFaultLogDumpService(app); 1333cd7072bSEd Tanous requestRoutesFaultLogDumpEntryCollection(app); 1343cd7072bSEd Tanous requestRoutesFaultLogDumpEntry(app); 1353cd7072bSEd Tanous requestRoutesFaultLogDumpClear(app); 13625b54dbaSEd Tanous } 1373cd7072bSEd Tanous 1383cd7072bSEd Tanous requestRoutesBMCLogServiceCollection(app); 13984177a2fSEd Tanous 14025b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_BMC_JOURNAL) 14125b54dbaSEd Tanous { 1423cd7072bSEd Tanous requestRoutesBMCJournalLogService(app); 14325b54dbaSEd Tanous } 1443cd7072bSEd Tanous 14525b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_CPU_LOG) 14625b54dbaSEd Tanous { 1473cd7072bSEd Tanous requestRoutesCrashdumpService(app); 1483cd7072bSEd Tanous requestRoutesCrashdumpEntryCollection(app); 1493cd7072bSEd Tanous requestRoutesCrashdumpEntry(app); 1503cd7072bSEd Tanous requestRoutesCrashdumpFile(app); 1513cd7072bSEd Tanous requestRoutesCrashdumpClear(app); 1523cd7072bSEd Tanous requestRoutesCrashdumpCollect(app); 15325b54dbaSEd Tanous } 1543cd7072bSEd Tanous 1553cd7072bSEd Tanous requestRoutesProcessorCollection(app); 1563cd7072bSEd Tanous requestRoutesProcessor(app); 1573cd7072bSEd Tanous requestRoutesOperatingConfigCollection(app); 1583cd7072bSEd Tanous requestRoutesOperatingConfig(app); 1593cd7072bSEd Tanous requestRoutesMemoryCollection(app); 1603cd7072bSEd Tanous requestRoutesMemory(app); 1613cd7072bSEd Tanous 1623cd7072bSEd Tanous requestRoutesSystems(app); 1633cd7072bSEd Tanous 1643cd7072bSEd Tanous requestRoutesBiosService(app); 1653cd7072bSEd Tanous requestRoutesBiosReset(app); 1663cd7072bSEd Tanous 16725b54dbaSEd Tanous if constexpr (BMCWEB_VM_NBDPROXY) 16825b54dbaSEd Tanous { 1693cd7072bSEd Tanous requestNBDVirtualMediaRoutes(app); 17025b54dbaSEd Tanous } 1713cd7072bSEd Tanous 17225b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_DBUS_LOG) 17325b54dbaSEd Tanous { 1743cd7072bSEd Tanous requestRoutesDBusLogServiceActionsClear(app); 1753cd7072bSEd Tanous requestRoutesDBusEventLogEntryCollection(app); 1763cd7072bSEd Tanous requestRoutesDBusEventLogEntry(app); 1773cd7072bSEd Tanous requestRoutesDBusEventLogEntryDownload(app); 17825b54dbaSEd Tanous } 179a782e265SAlexander Hansen else 180a782e265SAlexander Hansen { 181a782e265SAlexander Hansen requestRoutesJournalEventLogEntryCollection(app); 182a782e265SAlexander Hansen requestRoutesJournalEventLogEntry(app); 183a782e265SAlexander Hansen requestRoutesJournalEventLogClear(app); 184a782e265SAlexander Hansen } 1853cd7072bSEd Tanous 18625b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_HOST_LOGGER) 18725b54dbaSEd Tanous { 188e21126ecSEd Tanous requestRoutesSystemsLogServiceHostlogger(app); 18925b54dbaSEd Tanous } 1903cd7072bSEd Tanous 1913cd7072bSEd Tanous requestRoutesMessageRegistryFileCollection(app); 1923cd7072bSEd Tanous requestRoutesMessageRegistryFile(app); 1933cd7072bSEd Tanous requestRoutesMessageRegistry(app); 1943cd7072bSEd Tanous 1953cd7072bSEd Tanous requestRoutesCertificateService(app); 1963cd7072bSEd Tanous requestRoutesHTTPSCertificate(app); 1973cd7072bSEd Tanous requestRoutesLDAPCertificate(app); 1983cd7072bSEd Tanous requestRoutesTrustStoreCertificate(app); 1993cd7072bSEd Tanous 2003cd7072bSEd Tanous requestRoutesSystemPCIeFunctionCollection(app); 2013cd7072bSEd Tanous requestRoutesSystemPCIeFunction(app); 2023cd7072bSEd Tanous requestRoutesSystemPCIeDeviceCollection(app); 2033cd7072bSEd Tanous requestRoutesSystemPCIeDevice(app); 2043cd7072bSEd Tanous 2053cd7072bSEd Tanous requestRoutesSensorCollection(app); 2063cd7072bSEd Tanous requestRoutesSensor(app); 2073cd7072bSEd Tanous 2083cd7072bSEd Tanous requestRoutesTaskMonitor(app); 2093cd7072bSEd Tanous requestRoutesTaskService(app); 2103cd7072bSEd Tanous requestRoutesTaskCollection(app); 2113cd7072bSEd Tanous requestRoutesTask(app); 2123cd7072bSEd Tanous requestRoutesEventService(app); 2133cd7072bSEd Tanous requestRoutesEventServiceSse(app); 2143cd7072bSEd Tanous requestRoutesEventDestinationCollection(app); 2153cd7072bSEd Tanous requestRoutesEventDestination(app); 2163cd7072bSEd Tanous requestRoutesFabricAdapters(app); 2173cd7072bSEd Tanous requestRoutesFabricAdapterCollection(app); 218*37937d51SGeorge Liu requestRoutesFabricPort(app); 2193cd7072bSEd Tanous requestRoutesSubmitTestEvent(app); 2203cd7072bSEd Tanous 22168896206SGunnar Mills if constexpr (BMCWEB_HYPERVISOR_COMPUTER_SYSTEM) 22268896206SGunnar Mills { 2233cd7072bSEd Tanous requestRoutesHypervisorSystems(app); 22468896206SGunnar Mills } 2253cd7072bSEd Tanous 2263cd7072bSEd Tanous requestRoutesTelemetryService(app); 2273cd7072bSEd Tanous requestRoutesMetricReportDefinitionCollection(app); 2283cd7072bSEd Tanous requestRoutesMetricReportDefinition(app); 2293cd7072bSEd Tanous requestRoutesMetricReportCollection(app); 2303cd7072bSEd Tanous requestRoutesMetricReport(app); 2313cd7072bSEd Tanous requestRoutesTriggerCollection(app); 2323cd7072bSEd Tanous requestRoutesTrigger(app); 2333cd7072bSEd Tanous 2343cd7072bSEd Tanous // Note, this must be the last route registered 2353cd7072bSEd Tanous requestRoutesRedfish(app); 236c1a75ebcSrohitpai 237c1a75ebcSrohitpai requestRoutesOpenBmcManager(*this); 238c1a75ebcSrohitpai 239c1a75ebcSrohitpai validate(); 2403cd7072bSEd Tanous } 2413cd7072bSEd Tanous 2423cd7072bSEd Tanous } // namespace redfish 243