xref: /openbmc/bmcweb/features/redfish/src/redfish.cpp (revision d5c0172e0335df05db2eaae3dae2c7d3def56089)
13cd7072bSEd Tanous #include "redfish.hpp"
23cd7072bSEd Tanous 
35b90429aSEd Tanous #include "bmcweb_config.h"
45b90429aSEd Tanous 
53cd7072bSEd Tanous #include "account_service.hpp"
63cd7072bSEd Tanous #include "aggregation_service.hpp"
73cd7072bSEd Tanous #include "app.hpp"
83cd7072bSEd Tanous #include "bios.hpp"
93cd7072bSEd Tanous #include "cable.hpp"
103cd7072bSEd Tanous #include "certificate_service.hpp"
113cd7072bSEd Tanous #include "chassis.hpp"
123cd7072bSEd Tanous #include "environment_metrics.hpp"
133cd7072bSEd Tanous #include "ethernet.hpp"
143cd7072bSEd Tanous #include "event_service.hpp"
153cd7072bSEd Tanous #include "eventservice_sse.hpp"
163cd7072bSEd Tanous #include "fabric_adapters.hpp"
173cd7072bSEd Tanous #include "fan.hpp"
183cd7072bSEd Tanous #include "hypervisor_system.hpp"
193cd7072bSEd Tanous #include "log_services.hpp"
203cd7072bSEd Tanous #include "manager_diagnostic_data.hpp"
21b0983db2SEd Tanous #include "manager_logservices_journal.hpp"
223cd7072bSEd Tanous #include "managers.hpp"
233cd7072bSEd Tanous #include "memory.hpp"
243cd7072bSEd Tanous #include "message_registries.hpp"
25090ab8e1SEd Tanous #include "metadata.hpp"
263cd7072bSEd Tanous #include "metric_report.hpp"
273cd7072bSEd Tanous #include "metric_report_definition.hpp"
283cd7072bSEd Tanous #include "network_protocol.hpp"
29*d5c0172eSEd Tanous #include "odata.hpp"
303cd7072bSEd Tanous #include "pcie.hpp"
313cd7072bSEd Tanous #include "power.hpp"
323cd7072bSEd Tanous #include "power_subsystem.hpp"
333cd7072bSEd Tanous #include "power_supply.hpp"
343cd7072bSEd Tanous #include "processor.hpp"
353cd7072bSEd Tanous #include "redfish_sessions.hpp"
363cd7072bSEd Tanous #include "redfish_v1.hpp"
373cd7072bSEd Tanous #include "roles.hpp"
383cd7072bSEd Tanous #include "sensors.hpp"
393cd7072bSEd Tanous #include "service_root.hpp"
403cd7072bSEd Tanous #include "storage.hpp"
413cd7072bSEd Tanous #include "systems.hpp"
423cd7072bSEd Tanous #include "task.hpp"
433cd7072bSEd Tanous #include "telemetry_service.hpp"
443cd7072bSEd Tanous #include "thermal.hpp"
453cd7072bSEd Tanous #include "thermal_metrics.hpp"
463cd7072bSEd Tanous #include "thermal_subsystem.hpp"
473cd7072bSEd Tanous #include "trigger.hpp"
483cd7072bSEd Tanous #include "update_service.hpp"
493cd7072bSEd Tanous #include "virtual_media.hpp"
503cd7072bSEd Tanous 
513cd7072bSEd Tanous namespace redfish
523cd7072bSEd Tanous {
533cd7072bSEd Tanous 
543cd7072bSEd Tanous RedfishService::RedfishService(App& app)
553cd7072bSEd Tanous {
56090ab8e1SEd Tanous     requestRoutesMetadata(app);
57*d5c0172eSEd Tanous     requestRoutesOdata(app);
58090ab8e1SEd Tanous 
593cd7072bSEd Tanous     requestAccountServiceRoutes(app);
6025b54dbaSEd Tanous     if constexpr (BMCWEB_REDFISH_AGGREGATION)
6125b54dbaSEd Tanous     {
623cd7072bSEd Tanous         requestRoutesAggregationService(app);
633cd7072bSEd Tanous         requestRoutesAggregationSourceCollection(app);
643cd7072bSEd Tanous         requestRoutesAggregationSource(app);
6525b54dbaSEd Tanous     }
663cd7072bSEd Tanous     requestRoutesRoles(app);
673cd7072bSEd Tanous     requestRoutesRoleCollection(app);
683cd7072bSEd Tanous     requestRoutesServiceRoot(app);
693cd7072bSEd Tanous     requestRoutesNetworkProtocol(app);
703cd7072bSEd Tanous     requestRoutesSession(app);
713cd7072bSEd Tanous     requestEthernetInterfacesRoutes(app);
7225b54dbaSEd Tanous     if constexpr (BMCWEB_REDFISH_ALLOW_DEPRECATED_POWER_THERMAL)
7325b54dbaSEd Tanous     {
743cd7072bSEd Tanous         requestRoutesThermal(app);
753cd7072bSEd Tanous         requestRoutesPower(app);
7625b54dbaSEd Tanous     }
7725b54dbaSEd Tanous     if constexpr (BMCWEB_REDFISH_NEW_POWERSUBSYSTEM_THERMALSUBSYSTEM)
7825b54dbaSEd Tanous     {
793cd7072bSEd Tanous         requestRoutesEnvironmentMetrics(app);
803cd7072bSEd Tanous         requestRoutesPowerSubsystem(app);
813cd7072bSEd Tanous         requestRoutesPowerSupply(app);
823cd7072bSEd Tanous         requestRoutesPowerSupplyCollection(app);
833cd7072bSEd Tanous         requestRoutesThermalMetrics(app);
843cd7072bSEd Tanous         requestRoutesThermalSubsystem(app);
853cd7072bSEd Tanous         requestRoutesFan(app);
863cd7072bSEd Tanous         requestRoutesFanCollection(app);
8725b54dbaSEd Tanous     }
883cd7072bSEd Tanous     requestRoutesManagerCollection(app);
893cd7072bSEd Tanous     requestRoutesManager(app);
903cd7072bSEd Tanous     requestRoutesManagerResetAction(app);
913cd7072bSEd Tanous     requestRoutesManagerResetActionInfo(app);
923cd7072bSEd Tanous     requestRoutesManagerResetToDefaultsAction(app);
933cd7072bSEd Tanous     requestRoutesManagerDiagnosticData(app);
943cd7072bSEd Tanous     requestRoutesChassisCollection(app);
953cd7072bSEd Tanous     requestRoutesChassis(app);
963cd7072bSEd Tanous     requestRoutesChassisResetAction(app);
973cd7072bSEd Tanous     requestRoutesChassisResetActionInfo(app);
983cd7072bSEd Tanous     requestRoutesChassisDrive(app);
993cd7072bSEd Tanous     requestRoutesChassisDriveName(app);
1003cd7072bSEd Tanous     requestRoutesUpdateService(app);
1013cd7072bSEd Tanous     requestRoutesStorageCollection(app);
1023cd7072bSEd Tanous     requestRoutesStorage(app);
1033cd7072bSEd Tanous     requestRoutesStorageControllerCollection(app);
1043cd7072bSEd Tanous     requestRoutesStorageController(app);
1053cd7072bSEd Tanous     requestRoutesDrive(app);
1063cd7072bSEd Tanous     requestRoutesCable(app);
1073cd7072bSEd Tanous     requestRoutesCableCollection(app);
1083cd7072bSEd Tanous 
1093cd7072bSEd Tanous     requestRoutesSystemLogServiceCollection(app);
1103cd7072bSEd Tanous     requestRoutesEventLogService(app);
1113cd7072bSEd Tanous     requestRoutesPostCodesEntryAdditionalData(app);
1123cd7072bSEd Tanous 
1133cd7072bSEd Tanous     requestRoutesPostCodesLogService(app);
1143cd7072bSEd Tanous     requestRoutesPostCodesClear(app);
1153cd7072bSEd Tanous     requestRoutesPostCodesEntry(app);
1163cd7072bSEd Tanous     requestRoutesPostCodesEntryCollection(app);
1173cd7072bSEd Tanous 
11825b54dbaSEd Tanous     if constexpr (BMCWEB_REDFISH_DUMP_LOG)
11925b54dbaSEd Tanous     {
1203cd7072bSEd Tanous         requestRoutesSystemDumpService(app);
1213cd7072bSEd Tanous         requestRoutesSystemDumpEntryCollection(app);
1223cd7072bSEd Tanous         requestRoutesSystemDumpEntry(app);
1233cd7072bSEd Tanous         requestRoutesSystemDumpCreate(app);
1243cd7072bSEd Tanous         requestRoutesSystemDumpClear(app);
1253cd7072bSEd Tanous 
1263cd7072bSEd Tanous         requestRoutesBMCDumpService(app);
1273cd7072bSEd Tanous         requestRoutesBMCDumpEntryCollection(app);
1283cd7072bSEd Tanous         requestRoutesBMCDumpEntry(app);
1293cd7072bSEd Tanous         requestRoutesBMCDumpEntryDownload(app);
1303cd7072bSEd Tanous         requestRoutesBMCDumpCreate(app);
1313cd7072bSEd Tanous         requestRoutesBMCDumpClear(app);
1323cd7072bSEd Tanous 
1333cd7072bSEd Tanous         requestRoutesFaultLogDumpService(app);
1343cd7072bSEd Tanous         requestRoutesFaultLogDumpEntryCollection(app);
1353cd7072bSEd Tanous         requestRoutesFaultLogDumpEntry(app);
1363cd7072bSEd Tanous         requestRoutesFaultLogDumpClear(app);
13725b54dbaSEd Tanous     }
1383cd7072bSEd Tanous 
13936a59eafSEd Tanous     if constexpr (!BMCWEB_REDFISH_DBUS_LOG)
14025b54dbaSEd Tanous     {
1413cd7072bSEd Tanous         requestRoutesJournalEventLogEntryCollection(app);
1423cd7072bSEd Tanous         requestRoutesJournalEventLogEntry(app);
1433cd7072bSEd Tanous         requestRoutesJournalEventLogClear(app);
14425b54dbaSEd Tanous     }
1453cd7072bSEd Tanous 
1463cd7072bSEd Tanous     requestRoutesBMCLogServiceCollection(app);
14784177a2fSEd Tanous 
14825b54dbaSEd Tanous     if constexpr (BMCWEB_REDFISH_BMC_JOURNAL)
14925b54dbaSEd Tanous     {
1503cd7072bSEd Tanous         requestRoutesBMCJournalLogService(app);
15125b54dbaSEd Tanous     }
1523cd7072bSEd Tanous 
15325b54dbaSEd Tanous     if constexpr (BMCWEB_REDFISH_CPU_LOG)
15425b54dbaSEd Tanous     {
1553cd7072bSEd Tanous         requestRoutesCrashdumpService(app);
1563cd7072bSEd Tanous         requestRoutesCrashdumpEntryCollection(app);
1573cd7072bSEd Tanous         requestRoutesCrashdumpEntry(app);
1583cd7072bSEd Tanous         requestRoutesCrashdumpFile(app);
1593cd7072bSEd Tanous         requestRoutesCrashdumpClear(app);
1603cd7072bSEd Tanous         requestRoutesCrashdumpCollect(app);
16125b54dbaSEd Tanous     }
1623cd7072bSEd Tanous 
1633cd7072bSEd Tanous     requestRoutesProcessorCollection(app);
1643cd7072bSEd Tanous     requestRoutesProcessor(app);
1653cd7072bSEd Tanous     requestRoutesOperatingConfigCollection(app);
1663cd7072bSEd Tanous     requestRoutesOperatingConfig(app);
1673cd7072bSEd Tanous     requestRoutesMemoryCollection(app);
1683cd7072bSEd Tanous     requestRoutesMemory(app);
1693cd7072bSEd Tanous 
1703cd7072bSEd Tanous     requestRoutesSystems(app);
1713cd7072bSEd Tanous 
1723cd7072bSEd Tanous     requestRoutesBiosService(app);
1733cd7072bSEd Tanous     requestRoutesBiosReset(app);
1743cd7072bSEd Tanous 
17525b54dbaSEd Tanous     if constexpr (BMCWEB_VM_NBDPROXY)
17625b54dbaSEd Tanous     {
1773cd7072bSEd Tanous         requestNBDVirtualMediaRoutes(app);
17825b54dbaSEd Tanous     }
1793cd7072bSEd Tanous 
18025b54dbaSEd Tanous     if constexpr (BMCWEB_REDFISH_DBUS_LOG)
18125b54dbaSEd Tanous     {
1823cd7072bSEd Tanous         requestRoutesDBusLogServiceActionsClear(app);
1833cd7072bSEd Tanous         requestRoutesDBusEventLogEntryCollection(app);
1843cd7072bSEd Tanous         requestRoutesDBusEventLogEntry(app);
1853cd7072bSEd Tanous         requestRoutesDBusEventLogEntryDownload(app);
18625b54dbaSEd Tanous     }
1873cd7072bSEd Tanous 
18825b54dbaSEd Tanous     if constexpr (BMCWEB_REDFISH_HOST_LOGGER)
18925b54dbaSEd Tanous     {
1903cd7072bSEd Tanous         requestRoutesSystemHostLogger(app);
1913cd7072bSEd Tanous         requestRoutesSystemHostLoggerCollection(app);
1923cd7072bSEd Tanous         requestRoutesSystemHostLoggerLogEntry(app);
19325b54dbaSEd Tanous     }
1943cd7072bSEd Tanous 
1953cd7072bSEd Tanous     requestRoutesMessageRegistryFileCollection(app);
1963cd7072bSEd Tanous     requestRoutesMessageRegistryFile(app);
1973cd7072bSEd Tanous     requestRoutesMessageRegistry(app);
1983cd7072bSEd Tanous 
1993cd7072bSEd Tanous     requestRoutesCertificateService(app);
2003cd7072bSEd Tanous     requestRoutesHTTPSCertificate(app);
2013cd7072bSEd Tanous     requestRoutesLDAPCertificate(app);
2023cd7072bSEd Tanous     requestRoutesTrustStoreCertificate(app);
2033cd7072bSEd Tanous 
2043cd7072bSEd Tanous     requestRoutesSystemPCIeFunctionCollection(app);
2053cd7072bSEd Tanous     requestRoutesSystemPCIeFunction(app);
2063cd7072bSEd Tanous     requestRoutesSystemPCIeDeviceCollection(app);
2073cd7072bSEd Tanous     requestRoutesSystemPCIeDevice(app);
2083cd7072bSEd Tanous 
2093cd7072bSEd Tanous     requestRoutesSensorCollection(app);
2103cd7072bSEd Tanous     requestRoutesSensor(app);
2113cd7072bSEd Tanous 
2123cd7072bSEd Tanous     requestRoutesTaskMonitor(app);
2133cd7072bSEd Tanous     requestRoutesTaskService(app);
2143cd7072bSEd Tanous     requestRoutesTaskCollection(app);
2153cd7072bSEd Tanous     requestRoutesTask(app);
2163cd7072bSEd Tanous     requestRoutesEventService(app);
2173cd7072bSEd Tanous     requestRoutesEventServiceSse(app);
2183cd7072bSEd Tanous     requestRoutesEventDestinationCollection(app);
2193cd7072bSEd Tanous     requestRoutesEventDestination(app);
2203cd7072bSEd Tanous     requestRoutesFabricAdapters(app);
2213cd7072bSEd Tanous     requestRoutesFabricAdapterCollection(app);
2223cd7072bSEd Tanous     requestRoutesSubmitTestEvent(app);
2233cd7072bSEd Tanous 
2243cd7072bSEd Tanous     requestRoutesHypervisorSystems(app);
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);
2363cd7072bSEd Tanous }
2373cd7072bSEd Tanous 
2383cd7072bSEd Tanous } // namespace redfish
239