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" 1937937d51SGeorge 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" 46*664c9560SOliver Brewka #include "systems_logservices_dbus_eventlog.hpp" 47e21126ecSEd Tanous #include "systems_logservices_hostlogger.hpp" 4875dac00eSOliver Brewka #include "systems_logservices_journal_eventlog.hpp" 498d2f868cSEd Tanous #include "systems_logservices_postcodes.hpp" 503cd7072bSEd Tanous #include "task.hpp" 513cd7072bSEd Tanous #include "telemetry_service.hpp" 523cd7072bSEd Tanous #include "thermal.hpp" 533cd7072bSEd Tanous #include "thermal_metrics.hpp" 543cd7072bSEd Tanous #include "thermal_subsystem.hpp" 553cd7072bSEd Tanous #include "trigger.hpp" 563cd7072bSEd Tanous #include "update_service.hpp" 573cd7072bSEd Tanous #include "virtual_media.hpp" 583cd7072bSEd Tanous 593cd7072bSEd Tanous namespace redfish 603cd7072bSEd Tanous { 613cd7072bSEd Tanous 623cd7072bSEd Tanous RedfishService::RedfishService(App& app) 633cd7072bSEd Tanous { 64090ab8e1SEd Tanous requestRoutesMetadata(app); 65d5c0172eSEd Tanous requestRoutesOdata(app); 66090ab8e1SEd Tanous 673cd7072bSEd Tanous requestAccountServiceRoutes(app); 6825b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_AGGREGATION) 6925b54dbaSEd Tanous { 703cd7072bSEd Tanous requestRoutesAggregationService(app); 713cd7072bSEd Tanous requestRoutesAggregationSourceCollection(app); 723cd7072bSEd Tanous requestRoutesAggregationSource(app); 7325b54dbaSEd Tanous } 743cd7072bSEd Tanous requestRoutesRoles(app); 753cd7072bSEd Tanous requestRoutesRoleCollection(app); 763cd7072bSEd Tanous requestRoutesServiceRoot(app); 773cd7072bSEd Tanous requestRoutesNetworkProtocol(app); 783cd7072bSEd Tanous requestRoutesSession(app); 793cd7072bSEd Tanous requestEthernetInterfacesRoutes(app); 8025b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_ALLOW_DEPRECATED_POWER_THERMAL) 8125b54dbaSEd Tanous { 823cd7072bSEd Tanous requestRoutesThermal(app); 833cd7072bSEd Tanous requestRoutesPower(app); 8425b54dbaSEd Tanous } 8525b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_NEW_POWERSUBSYSTEM_THERMALSUBSYSTEM) 8625b54dbaSEd Tanous { 873cd7072bSEd Tanous requestRoutesEnvironmentMetrics(app); 883cd7072bSEd Tanous requestRoutesPowerSubsystem(app); 893cd7072bSEd Tanous requestRoutesPowerSupply(app); 903cd7072bSEd Tanous requestRoutesPowerSupplyCollection(app); 913cd7072bSEd Tanous requestRoutesThermalMetrics(app); 923cd7072bSEd Tanous requestRoutesThermalSubsystem(app); 933cd7072bSEd Tanous requestRoutesFan(app); 943cd7072bSEd Tanous requestRoutesFanCollection(app); 9525b54dbaSEd Tanous } 963cd7072bSEd Tanous requestRoutesManager(app); 973cd7072bSEd Tanous requestRoutesManagerResetAction(app); 983cd7072bSEd Tanous requestRoutesManagerDiagnosticData(app); 993cd7072bSEd Tanous requestRoutesChassisCollection(app); 1003cd7072bSEd Tanous requestRoutesChassis(app); 1013cd7072bSEd Tanous requestRoutesChassisResetAction(app); 1023cd7072bSEd Tanous requestRoutesChassisResetActionInfo(app); 1033cd7072bSEd Tanous requestRoutesChassisDrive(app); 1043cd7072bSEd Tanous requestRoutesChassisDriveName(app); 1053cd7072bSEd Tanous requestRoutesUpdateService(app); 1063cd7072bSEd Tanous requestRoutesStorageCollection(app); 1073cd7072bSEd Tanous requestRoutesStorage(app); 1083cd7072bSEd Tanous requestRoutesStorageControllerCollection(app); 1093cd7072bSEd Tanous requestRoutesStorageController(app); 1103cd7072bSEd Tanous requestRoutesDrive(app); 1113cd7072bSEd Tanous requestRoutesCable(app); 1123cd7072bSEd Tanous requestRoutesCableCollection(app); 1133cd7072bSEd Tanous 1143cd7072bSEd Tanous requestRoutesSystemLogServiceCollection(app); 1153cd7072bSEd Tanous requestRoutesEventLogService(app); 1163cd7072bSEd Tanous 1178d2f868cSEd Tanous requestRoutesSystemsLogServicesPostCode(app); 1183cd7072bSEd Tanous 11925b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_DUMP_LOG) 12025b54dbaSEd Tanous { 1213cd7072bSEd Tanous requestRoutesSystemDumpService(app); 1223cd7072bSEd Tanous requestRoutesSystemDumpEntryCollection(app); 1233cd7072bSEd Tanous requestRoutesSystemDumpEntry(app); 1243cd7072bSEd Tanous requestRoutesSystemDumpCreate(app); 1253cd7072bSEd Tanous requestRoutesSystemDumpClear(app); 1263cd7072bSEd Tanous 1273cd7072bSEd Tanous requestRoutesBMCDumpService(app); 1283cd7072bSEd Tanous requestRoutesBMCDumpEntryCollection(app); 1293cd7072bSEd Tanous requestRoutesBMCDumpEntry(app); 1303cd7072bSEd Tanous requestRoutesBMCDumpEntryDownload(app); 1313cd7072bSEd Tanous requestRoutesBMCDumpCreate(app); 1323cd7072bSEd Tanous requestRoutesBMCDumpClear(app); 1333cd7072bSEd Tanous 1343cd7072bSEd Tanous requestRoutesFaultLogDumpService(app); 1353cd7072bSEd Tanous requestRoutesFaultLogDumpEntryCollection(app); 1363cd7072bSEd Tanous requestRoutesFaultLogDumpEntry(app); 1373cd7072bSEd Tanous requestRoutesFaultLogDumpClear(app); 13825b54dbaSEd Tanous } 1393cd7072bSEd Tanous 1403cd7072bSEd Tanous requestRoutesBMCLogServiceCollection(app); 14184177a2fSEd Tanous 14225b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_BMC_JOURNAL) 14325b54dbaSEd Tanous { 1443cd7072bSEd Tanous requestRoutesBMCJournalLogService(app); 14525b54dbaSEd Tanous } 1463cd7072bSEd Tanous 14725b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_CPU_LOG) 14825b54dbaSEd Tanous { 1493cd7072bSEd Tanous requestRoutesCrashdumpService(app); 1503cd7072bSEd Tanous requestRoutesCrashdumpEntryCollection(app); 1513cd7072bSEd Tanous requestRoutesCrashdumpEntry(app); 1523cd7072bSEd Tanous requestRoutesCrashdumpFile(app); 1533cd7072bSEd Tanous requestRoutesCrashdumpClear(app); 1543cd7072bSEd Tanous requestRoutesCrashdumpCollect(app); 15525b54dbaSEd Tanous } 1563cd7072bSEd Tanous 1573cd7072bSEd Tanous requestRoutesProcessorCollection(app); 1583cd7072bSEd Tanous requestRoutesProcessor(app); 1593cd7072bSEd Tanous requestRoutesOperatingConfigCollection(app); 1603cd7072bSEd Tanous requestRoutesOperatingConfig(app); 1613cd7072bSEd Tanous requestRoutesMemoryCollection(app); 1623cd7072bSEd Tanous requestRoutesMemory(app); 1633cd7072bSEd Tanous 1643cd7072bSEd Tanous requestRoutesSystems(app); 1653cd7072bSEd Tanous 1663cd7072bSEd Tanous requestRoutesBiosService(app); 1673cd7072bSEd Tanous requestRoutesBiosReset(app); 1683cd7072bSEd Tanous 16925b54dbaSEd Tanous if constexpr (BMCWEB_VM_NBDPROXY) 17025b54dbaSEd Tanous { 1713cd7072bSEd Tanous requestNBDVirtualMediaRoutes(app); 17225b54dbaSEd Tanous } 1733cd7072bSEd Tanous 17425b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_DBUS_LOG) 17525b54dbaSEd Tanous { 1763cd7072bSEd Tanous requestRoutesDBusLogServiceActionsClear(app); 1773cd7072bSEd Tanous requestRoutesDBusEventLogEntryCollection(app); 1783cd7072bSEd Tanous requestRoutesDBusEventLogEntry(app); 1793cd7072bSEd Tanous requestRoutesDBusEventLogEntryDownload(app); 18025b54dbaSEd Tanous } 181a782e265SAlexander Hansen else 182a782e265SAlexander Hansen { 183a782e265SAlexander Hansen requestRoutesJournalEventLogEntryCollection(app); 184a782e265SAlexander Hansen requestRoutesJournalEventLogEntry(app); 185a782e265SAlexander Hansen requestRoutesJournalEventLogClear(app); 186a782e265SAlexander Hansen } 1873cd7072bSEd Tanous 18825b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_HOST_LOGGER) 18925b54dbaSEd Tanous { 190e21126ecSEd Tanous requestRoutesSystemsLogServiceHostlogger(app); 19125b54dbaSEd Tanous } 1923cd7072bSEd Tanous 1933cd7072bSEd Tanous requestRoutesMessageRegistryFileCollection(app); 1943cd7072bSEd Tanous requestRoutesMessageRegistryFile(app); 1953cd7072bSEd Tanous requestRoutesMessageRegistry(app); 1963cd7072bSEd Tanous 1973cd7072bSEd Tanous requestRoutesCertificateService(app); 1983cd7072bSEd Tanous requestRoutesHTTPSCertificate(app); 1993cd7072bSEd Tanous requestRoutesLDAPCertificate(app); 2003cd7072bSEd Tanous requestRoutesTrustStoreCertificate(app); 2013cd7072bSEd Tanous 2023cd7072bSEd Tanous requestRoutesSystemPCIeFunctionCollection(app); 2033cd7072bSEd Tanous requestRoutesSystemPCIeFunction(app); 2043cd7072bSEd Tanous requestRoutesSystemPCIeDeviceCollection(app); 2053cd7072bSEd Tanous requestRoutesSystemPCIeDevice(app); 2063cd7072bSEd Tanous 2073cd7072bSEd Tanous requestRoutesSensorCollection(app); 2083cd7072bSEd Tanous requestRoutesSensor(app); 2093cd7072bSEd Tanous 2103cd7072bSEd Tanous requestRoutesTaskMonitor(app); 2113cd7072bSEd Tanous requestRoutesTaskService(app); 2123cd7072bSEd Tanous requestRoutesTaskCollection(app); 2133cd7072bSEd Tanous requestRoutesTask(app); 2143cd7072bSEd Tanous requestRoutesEventService(app); 2153cd7072bSEd Tanous requestRoutesEventServiceSse(app); 2163cd7072bSEd Tanous requestRoutesEventDestinationCollection(app); 2173cd7072bSEd Tanous requestRoutesEventDestination(app); 2183cd7072bSEd Tanous requestRoutesFabricAdapters(app); 2193cd7072bSEd Tanous requestRoutesFabricAdapterCollection(app); 22037937d51SGeorge Liu requestRoutesFabricPort(app); 2213cd7072bSEd Tanous requestRoutesSubmitTestEvent(app); 2223cd7072bSEd Tanous 22368896206SGunnar Mills if constexpr (BMCWEB_HYPERVISOR_COMPUTER_SYSTEM) 22468896206SGunnar Mills { 2253cd7072bSEd Tanous requestRoutesHypervisorSystems(app); 22668896206SGunnar Mills } 2273cd7072bSEd Tanous 2283cd7072bSEd Tanous requestRoutesTelemetryService(app); 2293cd7072bSEd Tanous requestRoutesMetricReportDefinitionCollection(app); 2303cd7072bSEd Tanous requestRoutesMetricReportDefinition(app); 2313cd7072bSEd Tanous requestRoutesMetricReportCollection(app); 2323cd7072bSEd Tanous requestRoutesMetricReport(app); 2333cd7072bSEd Tanous requestRoutesTriggerCollection(app); 2343cd7072bSEd Tanous requestRoutesTrigger(app); 2353cd7072bSEd Tanous 2363cd7072bSEd Tanous // Note, this must be the last route registered 2373cd7072bSEd Tanous requestRoutesRedfish(app); 238c1a75ebcSrohitpai 239c1a75ebcSrohitpai requestRoutesOpenBmcManager(*this); 240c1a75ebcSrohitpai 241c1a75ebcSrohitpai validate(); 2423cd7072bSEd Tanous } 2433cd7072bSEd Tanous 2443cd7072bSEd Tanous } // namespace redfish 245