xref: /openbmc/bmcweb/features/redfish/src/redfish.cpp (revision 5b90429a75c58797ec29ac9a8ed18c2dcd7d4950)
13cd7072bSEd Tanous #include "redfish.hpp"
23cd7072bSEd Tanous 
3*5b90429aSEd Tanous #include "bmcweb_config.h"
4*5b90429aSEd 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"
213cd7072bSEd Tanous #include "managers.hpp"
223cd7072bSEd Tanous #include "memory.hpp"
233cd7072bSEd Tanous #include "message_registries.hpp"
243cd7072bSEd Tanous #include "metric_report.hpp"
253cd7072bSEd Tanous #include "metric_report_definition.hpp"
263cd7072bSEd Tanous #include "network_protocol.hpp"
273cd7072bSEd Tanous #include "pcie.hpp"
283cd7072bSEd Tanous #include "power.hpp"
293cd7072bSEd Tanous #include "power_subsystem.hpp"
303cd7072bSEd Tanous #include "power_supply.hpp"
313cd7072bSEd Tanous #include "processor.hpp"
323cd7072bSEd Tanous #include "redfish_sessions.hpp"
333cd7072bSEd Tanous #include "redfish_v1.hpp"
343cd7072bSEd Tanous #include "roles.hpp"
353cd7072bSEd Tanous #include "sensors.hpp"
363cd7072bSEd Tanous #include "service_root.hpp"
373cd7072bSEd Tanous #include "storage.hpp"
383cd7072bSEd Tanous #include "systems.hpp"
393cd7072bSEd Tanous #include "task.hpp"
403cd7072bSEd Tanous #include "telemetry_service.hpp"
413cd7072bSEd Tanous #include "thermal.hpp"
423cd7072bSEd Tanous #include "thermal_metrics.hpp"
433cd7072bSEd Tanous #include "thermal_subsystem.hpp"
443cd7072bSEd Tanous #include "trigger.hpp"
453cd7072bSEd Tanous #include "update_service.hpp"
463cd7072bSEd Tanous #include "virtual_media.hpp"
473cd7072bSEd Tanous 
483cd7072bSEd Tanous namespace redfish
493cd7072bSEd Tanous {
503cd7072bSEd Tanous 
513cd7072bSEd Tanous RedfishService::RedfishService(App& app)
523cd7072bSEd Tanous {
533cd7072bSEd Tanous     requestAccountServiceRoutes(app);
543cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_REDFISH_AGGREGATION
553cd7072bSEd Tanous     requestRoutesAggregationService(app);
563cd7072bSEd Tanous     requestRoutesAggregationSourceCollection(app);
573cd7072bSEd Tanous     requestRoutesAggregationSource(app);
583cd7072bSEd Tanous #endif
593cd7072bSEd Tanous     requestRoutesRoles(app);
603cd7072bSEd Tanous     requestRoutesRoleCollection(app);
613cd7072bSEd Tanous     requestRoutesServiceRoot(app);
623cd7072bSEd Tanous     requestRoutesNetworkProtocol(app);
633cd7072bSEd Tanous     requestRoutesSession(app);
643cd7072bSEd Tanous     requestEthernetInterfacesRoutes(app);
653cd7072bSEd Tanous #ifdef BMCWEB_ALLOW_DEPRECATED_POWER_THERMAL
663cd7072bSEd Tanous     requestRoutesThermal(app);
673cd7072bSEd Tanous     requestRoutesPower(app);
683cd7072bSEd Tanous #endif
693cd7072bSEd Tanous #ifdef BMCWEB_NEW_POWERSUBSYSTEM_THERMALSUBSYSTEM
703cd7072bSEd Tanous     requestRoutesEnvironmentMetrics(app);
713cd7072bSEd Tanous     requestRoutesPowerSubsystem(app);
723cd7072bSEd Tanous     requestRoutesPowerSupply(app);
733cd7072bSEd Tanous     requestRoutesPowerSupplyCollection(app);
743cd7072bSEd Tanous     requestRoutesThermalMetrics(app);
753cd7072bSEd Tanous     requestRoutesThermalSubsystem(app);
763cd7072bSEd Tanous     requestRoutesFan(app);
773cd7072bSEd Tanous     requestRoutesFanCollection(app);
783cd7072bSEd Tanous #endif
793cd7072bSEd Tanous     requestRoutesManagerCollection(app);
803cd7072bSEd Tanous     requestRoutesManager(app);
813cd7072bSEd Tanous     requestRoutesManagerResetAction(app);
823cd7072bSEd Tanous     requestRoutesManagerResetActionInfo(app);
833cd7072bSEd Tanous     requestRoutesManagerResetToDefaultsAction(app);
843cd7072bSEd Tanous     requestRoutesManagerDiagnosticData(app);
853cd7072bSEd Tanous     requestRoutesChassisCollection(app);
863cd7072bSEd Tanous     requestRoutesChassis(app);
873cd7072bSEd Tanous     requestRoutesChassisResetAction(app);
883cd7072bSEd Tanous     requestRoutesChassisResetActionInfo(app);
893cd7072bSEd Tanous     requestRoutesChassisDrive(app);
903cd7072bSEd Tanous     requestRoutesChassisDriveName(app);
913cd7072bSEd Tanous     requestRoutesUpdateService(app);
923cd7072bSEd Tanous     requestRoutesStorageCollection(app);
933cd7072bSEd Tanous     requestRoutesStorage(app);
943cd7072bSEd Tanous     requestRoutesStorageControllerCollection(app);
953cd7072bSEd Tanous     requestRoutesStorageController(app);
963cd7072bSEd Tanous     requestRoutesDrive(app);
973cd7072bSEd Tanous     requestRoutesCable(app);
983cd7072bSEd Tanous     requestRoutesCableCollection(app);
993cd7072bSEd Tanous 
1003cd7072bSEd Tanous     requestRoutesSystemLogServiceCollection(app);
1013cd7072bSEd Tanous     requestRoutesEventLogService(app);
1023cd7072bSEd Tanous     requestRoutesPostCodesEntryAdditionalData(app);
1033cd7072bSEd Tanous 
1043cd7072bSEd Tanous     requestRoutesPostCodesLogService(app);
1053cd7072bSEd Tanous     requestRoutesPostCodesClear(app);
1063cd7072bSEd Tanous     requestRoutesPostCodesEntry(app);
1073cd7072bSEd Tanous     requestRoutesPostCodesEntryCollection(app);
1083cd7072bSEd Tanous 
1093cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_REDFISH_DUMP_LOG
1103cd7072bSEd Tanous     requestRoutesSystemDumpService(app);
1113cd7072bSEd Tanous     requestRoutesSystemDumpEntryCollection(app);
1123cd7072bSEd Tanous     requestRoutesSystemDumpEntry(app);
1133cd7072bSEd Tanous     requestRoutesSystemDumpCreate(app);
1143cd7072bSEd Tanous     requestRoutesSystemDumpClear(app);
1153cd7072bSEd Tanous 
1163cd7072bSEd Tanous     requestRoutesBMCDumpService(app);
1173cd7072bSEd Tanous     requestRoutesBMCDumpEntryCollection(app);
1183cd7072bSEd Tanous     requestRoutesBMCDumpEntry(app);
1193cd7072bSEd Tanous     requestRoutesBMCDumpEntryDownload(app);
1203cd7072bSEd Tanous     requestRoutesBMCDumpCreate(app);
1213cd7072bSEd Tanous     requestRoutesBMCDumpClear(app);
1223cd7072bSEd Tanous 
1233cd7072bSEd Tanous     requestRoutesFaultLogDumpService(app);
1243cd7072bSEd Tanous     requestRoutesFaultLogDumpEntryCollection(app);
1253cd7072bSEd Tanous     requestRoutesFaultLogDumpEntry(app);
1263cd7072bSEd Tanous     requestRoutesFaultLogDumpClear(app);
1273cd7072bSEd Tanous #endif
1283cd7072bSEd Tanous 
1293cd7072bSEd Tanous #ifndef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES
1303cd7072bSEd Tanous     requestRoutesJournalEventLogEntryCollection(app);
1313cd7072bSEd Tanous     requestRoutesJournalEventLogEntry(app);
1323cd7072bSEd Tanous     requestRoutesJournalEventLogClear(app);
1333cd7072bSEd Tanous #endif
1343cd7072bSEd Tanous 
1353cd7072bSEd Tanous     requestRoutesBMCLogServiceCollection(app);
1363cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_REDFISH_BMC_JOURNAL
1373cd7072bSEd Tanous     requestRoutesBMCJournalLogService(app);
1383cd7072bSEd Tanous     requestRoutesBMCJournalLogEntryCollection(app);
1393cd7072bSEd Tanous     requestRoutesBMCJournalLogEntry(app);
1403cd7072bSEd Tanous #endif
1413cd7072bSEd Tanous 
1423cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_REDFISH_CPU_LOG
1433cd7072bSEd Tanous     requestRoutesCrashdumpService(app);
1443cd7072bSEd Tanous     requestRoutesCrashdumpEntryCollection(app);
1453cd7072bSEd Tanous     requestRoutesCrashdumpEntry(app);
1463cd7072bSEd Tanous     requestRoutesCrashdumpFile(app);
1473cd7072bSEd Tanous     requestRoutesCrashdumpClear(app);
1483cd7072bSEd Tanous     requestRoutesCrashdumpCollect(app);
1493cd7072bSEd Tanous #endif // BMCWEB_ENABLE_REDFISH_CPU_LOG
1503cd7072bSEd Tanous 
1513cd7072bSEd Tanous     requestRoutesProcessorCollection(app);
1523cd7072bSEd Tanous     requestRoutesProcessor(app);
1533cd7072bSEd Tanous     requestRoutesOperatingConfigCollection(app);
1543cd7072bSEd Tanous     requestRoutesOperatingConfig(app);
1553cd7072bSEd Tanous     requestRoutesMemoryCollection(app);
1563cd7072bSEd Tanous     requestRoutesMemory(app);
1573cd7072bSEd Tanous 
1583cd7072bSEd Tanous     requestRoutesSystems(app);
1593cd7072bSEd Tanous 
1603cd7072bSEd Tanous     requestRoutesBiosService(app);
1613cd7072bSEd Tanous     requestRoutesBiosReset(app);
1623cd7072bSEd Tanous 
1633cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_VM_NBDPROXY
1643cd7072bSEd Tanous     requestNBDVirtualMediaRoutes(app);
1653cd7072bSEd Tanous #endif // BMCWEB_ENABLE_VM_NBDPROXY
1663cd7072bSEd Tanous 
1673cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES
1683cd7072bSEd Tanous     requestRoutesDBusLogServiceActionsClear(app);
1693cd7072bSEd Tanous     requestRoutesDBusEventLogEntryCollection(app);
1703cd7072bSEd Tanous     requestRoutesDBusEventLogEntry(app);
1713cd7072bSEd Tanous     requestRoutesDBusEventLogEntryDownload(app);
1723cd7072bSEd Tanous #endif
1733cd7072bSEd Tanous 
1743cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_REDFISH_HOST_LOGGER
1753cd7072bSEd Tanous     requestRoutesSystemHostLogger(app);
1763cd7072bSEd Tanous     requestRoutesSystemHostLoggerCollection(app);
1773cd7072bSEd Tanous     requestRoutesSystemHostLoggerLogEntry(app);
1783cd7072bSEd Tanous #endif
1793cd7072bSEd Tanous 
1803cd7072bSEd Tanous     requestRoutesMessageRegistryFileCollection(app);
1813cd7072bSEd Tanous     requestRoutesMessageRegistryFile(app);
1823cd7072bSEd Tanous     requestRoutesMessageRegistry(app);
1833cd7072bSEd Tanous 
1843cd7072bSEd Tanous     requestRoutesCertificateService(app);
1853cd7072bSEd Tanous     requestRoutesHTTPSCertificate(app);
1863cd7072bSEd Tanous     requestRoutesLDAPCertificate(app);
1873cd7072bSEd Tanous     requestRoutesTrustStoreCertificate(app);
1883cd7072bSEd Tanous 
1893cd7072bSEd Tanous     requestRoutesSystemPCIeFunctionCollection(app);
1903cd7072bSEd Tanous     requestRoutesSystemPCIeFunction(app);
1913cd7072bSEd Tanous     requestRoutesSystemPCIeDeviceCollection(app);
1923cd7072bSEd Tanous     requestRoutesSystemPCIeDevice(app);
1933cd7072bSEd Tanous 
1943cd7072bSEd Tanous     requestRoutesSensorCollection(app);
1953cd7072bSEd Tanous     requestRoutesSensor(app);
1963cd7072bSEd Tanous 
1973cd7072bSEd Tanous     requestRoutesTaskMonitor(app);
1983cd7072bSEd Tanous     requestRoutesTaskService(app);
1993cd7072bSEd Tanous     requestRoutesTaskCollection(app);
2003cd7072bSEd Tanous     requestRoutesTask(app);
2013cd7072bSEd Tanous     requestRoutesEventService(app);
2023cd7072bSEd Tanous     requestRoutesEventServiceSse(app);
2033cd7072bSEd Tanous     requestRoutesEventDestinationCollection(app);
2043cd7072bSEd Tanous     requestRoutesEventDestination(app);
2053cd7072bSEd Tanous     requestRoutesFabricAdapters(app);
2063cd7072bSEd Tanous     requestRoutesFabricAdapterCollection(app);
2073cd7072bSEd Tanous     requestRoutesSubmitTestEvent(app);
2083cd7072bSEd Tanous 
2093cd7072bSEd Tanous     requestRoutesHypervisorSystems(app);
2103cd7072bSEd Tanous 
2113cd7072bSEd Tanous     requestRoutesTelemetryService(app);
2123cd7072bSEd Tanous     requestRoutesMetricReportDefinitionCollection(app);
2133cd7072bSEd Tanous     requestRoutesMetricReportDefinition(app);
2143cd7072bSEd Tanous     requestRoutesMetricReportCollection(app);
2153cd7072bSEd Tanous     requestRoutesMetricReport(app);
2163cd7072bSEd Tanous     requestRoutesTriggerCollection(app);
2173cd7072bSEd Tanous     requestRoutesTrigger(app);
2183cd7072bSEd Tanous 
2193cd7072bSEd Tanous     // Note, this must be the last route registered
2203cd7072bSEd Tanous     requestRoutesRedfish(app);
2213cd7072bSEd Tanous }
2223cd7072bSEd Tanous 
2233cd7072bSEd Tanous } // namespace redfish
224