xref: /openbmc/bmcweb/features/redfish/src/redfish.cpp (revision 3cd7072b9fff77731b959b2f7b3e3750e50abfe4)
1*3cd7072bSEd Tanous #include "redfish.hpp"
2*3cd7072bSEd Tanous 
3*3cd7072bSEd Tanous #include "account_service.hpp"
4*3cd7072bSEd Tanous #include "aggregation_service.hpp"
5*3cd7072bSEd Tanous #include "app.hpp"
6*3cd7072bSEd Tanous #include "bios.hpp"
7*3cd7072bSEd Tanous #include "cable.hpp"
8*3cd7072bSEd Tanous #include "certificate_service.hpp"
9*3cd7072bSEd Tanous #include "chassis.hpp"
10*3cd7072bSEd Tanous #include "environment_metrics.hpp"
11*3cd7072bSEd Tanous #include "ethernet.hpp"
12*3cd7072bSEd Tanous #include "event_service.hpp"
13*3cd7072bSEd Tanous #include "eventservice_sse.hpp"
14*3cd7072bSEd Tanous #include "fabric_adapters.hpp"
15*3cd7072bSEd Tanous #include "fan.hpp"
16*3cd7072bSEd Tanous #include "hypervisor_system.hpp"
17*3cd7072bSEd Tanous #include "log_services.hpp"
18*3cd7072bSEd Tanous #include "manager_diagnostic_data.hpp"
19*3cd7072bSEd Tanous #include "managers.hpp"
20*3cd7072bSEd Tanous #include "memory.hpp"
21*3cd7072bSEd Tanous #include "message_registries.hpp"
22*3cd7072bSEd Tanous #include "metric_report.hpp"
23*3cd7072bSEd Tanous #include "metric_report_definition.hpp"
24*3cd7072bSEd Tanous #include "network_protocol.hpp"
25*3cd7072bSEd Tanous #include "pcie.hpp"
26*3cd7072bSEd Tanous #include "pcie_slots.hpp"
27*3cd7072bSEd Tanous #include "power.hpp"
28*3cd7072bSEd Tanous #include "power_subsystem.hpp"
29*3cd7072bSEd Tanous #include "power_supply.hpp"
30*3cd7072bSEd Tanous #include "processor.hpp"
31*3cd7072bSEd Tanous #include "redfish_sessions.hpp"
32*3cd7072bSEd Tanous #include "redfish_v1.hpp"
33*3cd7072bSEd Tanous #include "roles.hpp"
34*3cd7072bSEd Tanous #include "sensors.hpp"
35*3cd7072bSEd Tanous #include "service_root.hpp"
36*3cd7072bSEd Tanous #include "storage.hpp"
37*3cd7072bSEd Tanous #include "systems.hpp"
38*3cd7072bSEd Tanous #include "task.hpp"
39*3cd7072bSEd Tanous #include "telemetry_service.hpp"
40*3cd7072bSEd Tanous #include "thermal.hpp"
41*3cd7072bSEd Tanous #include "thermal_metrics.hpp"
42*3cd7072bSEd Tanous #include "thermal_subsystem.hpp"
43*3cd7072bSEd Tanous #include "trigger.hpp"
44*3cd7072bSEd Tanous #include "update_service.hpp"
45*3cd7072bSEd Tanous #include "virtual_media.hpp"
46*3cd7072bSEd Tanous 
47*3cd7072bSEd Tanous namespace redfish
48*3cd7072bSEd Tanous {
49*3cd7072bSEd Tanous 
50*3cd7072bSEd Tanous RedfishService::RedfishService(App& app)
51*3cd7072bSEd Tanous {
52*3cd7072bSEd Tanous     requestAccountServiceRoutes(app);
53*3cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_REDFISH_AGGREGATION
54*3cd7072bSEd Tanous     requestRoutesAggregationService(app);
55*3cd7072bSEd Tanous     requestRoutesAggregationSourceCollection(app);
56*3cd7072bSEd Tanous     requestRoutesAggregationSource(app);
57*3cd7072bSEd Tanous #endif
58*3cd7072bSEd Tanous     requestRoutesRoles(app);
59*3cd7072bSEd Tanous     requestRoutesRoleCollection(app);
60*3cd7072bSEd Tanous     requestRoutesServiceRoot(app);
61*3cd7072bSEd Tanous     requestRoutesNetworkProtocol(app);
62*3cd7072bSEd Tanous     requestRoutesSession(app);
63*3cd7072bSEd Tanous     requestEthernetInterfacesRoutes(app);
64*3cd7072bSEd Tanous #ifdef BMCWEB_ALLOW_DEPRECATED_POWER_THERMAL
65*3cd7072bSEd Tanous     requestRoutesThermal(app);
66*3cd7072bSEd Tanous     requestRoutesPower(app);
67*3cd7072bSEd Tanous #endif
68*3cd7072bSEd Tanous #ifdef BMCWEB_NEW_POWERSUBSYSTEM_THERMALSUBSYSTEM
69*3cd7072bSEd Tanous     requestRoutesEnvironmentMetrics(app);
70*3cd7072bSEd Tanous     requestRoutesPowerSubsystem(app);
71*3cd7072bSEd Tanous     requestRoutesPowerSupply(app);
72*3cd7072bSEd Tanous     requestRoutesPowerSupplyCollection(app);
73*3cd7072bSEd Tanous     requestRoutesThermalMetrics(app);
74*3cd7072bSEd Tanous     requestRoutesThermalSubsystem(app);
75*3cd7072bSEd Tanous     requestRoutesFan(app);
76*3cd7072bSEd Tanous     requestRoutesFanCollection(app);
77*3cd7072bSEd Tanous #endif
78*3cd7072bSEd Tanous     requestRoutesManagerCollection(app);
79*3cd7072bSEd Tanous     requestRoutesManager(app);
80*3cd7072bSEd Tanous     requestRoutesManagerResetAction(app);
81*3cd7072bSEd Tanous     requestRoutesManagerResetActionInfo(app);
82*3cd7072bSEd Tanous     requestRoutesManagerResetToDefaultsAction(app);
83*3cd7072bSEd Tanous     requestRoutesManagerDiagnosticData(app);
84*3cd7072bSEd Tanous     requestRoutesChassisCollection(app);
85*3cd7072bSEd Tanous     requestRoutesChassis(app);
86*3cd7072bSEd Tanous     requestRoutesChassisResetAction(app);
87*3cd7072bSEd Tanous     requestRoutesChassisResetActionInfo(app);
88*3cd7072bSEd Tanous     requestRoutesChassisDrive(app);
89*3cd7072bSEd Tanous     requestRoutesChassisDriveName(app);
90*3cd7072bSEd Tanous     requestRoutesUpdateService(app);
91*3cd7072bSEd Tanous     requestRoutesStorageCollection(app);
92*3cd7072bSEd Tanous     requestRoutesStorage(app);
93*3cd7072bSEd Tanous     requestRoutesStorageControllerCollection(app);
94*3cd7072bSEd Tanous     requestRoutesStorageController(app);
95*3cd7072bSEd Tanous     requestRoutesDrive(app);
96*3cd7072bSEd Tanous     requestRoutesCable(app);
97*3cd7072bSEd Tanous     requestRoutesCableCollection(app);
98*3cd7072bSEd Tanous #ifdef BMCWEB_INSECURE_ENABLE_REDFISH_FW_TFTP_UPDATE
99*3cd7072bSEd Tanous     requestRoutesUpdateServiceActionsSimpleUpdate(app);
100*3cd7072bSEd Tanous #endif
101*3cd7072bSEd Tanous     requestRoutesSoftwareInventoryCollection(app);
102*3cd7072bSEd Tanous     requestRoutesSoftwareInventory(app);
103*3cd7072bSEd Tanous 
104*3cd7072bSEd Tanous     requestRoutesSystemLogServiceCollection(app);
105*3cd7072bSEd Tanous     requestRoutesEventLogService(app);
106*3cd7072bSEd Tanous     requestRoutesPostCodesEntryAdditionalData(app);
107*3cd7072bSEd Tanous 
108*3cd7072bSEd Tanous     requestRoutesPostCodesLogService(app);
109*3cd7072bSEd Tanous     requestRoutesPostCodesClear(app);
110*3cd7072bSEd Tanous     requestRoutesPostCodesEntry(app);
111*3cd7072bSEd Tanous     requestRoutesPostCodesEntryCollection(app);
112*3cd7072bSEd Tanous 
113*3cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_REDFISH_DUMP_LOG
114*3cd7072bSEd Tanous     requestRoutesSystemDumpService(app);
115*3cd7072bSEd Tanous     requestRoutesSystemDumpEntryCollection(app);
116*3cd7072bSEd Tanous     requestRoutesSystemDumpEntry(app);
117*3cd7072bSEd Tanous     requestRoutesSystemDumpCreate(app);
118*3cd7072bSEd Tanous     requestRoutesSystemDumpClear(app);
119*3cd7072bSEd Tanous 
120*3cd7072bSEd Tanous     requestRoutesBMCDumpService(app);
121*3cd7072bSEd Tanous     requestRoutesBMCDumpEntryCollection(app);
122*3cd7072bSEd Tanous     requestRoutesBMCDumpEntry(app);
123*3cd7072bSEd Tanous     requestRoutesBMCDumpEntryDownload(app);
124*3cd7072bSEd Tanous     requestRoutesBMCDumpCreate(app);
125*3cd7072bSEd Tanous     requestRoutesBMCDumpClear(app);
126*3cd7072bSEd Tanous 
127*3cd7072bSEd Tanous     requestRoutesFaultLogDumpService(app);
128*3cd7072bSEd Tanous     requestRoutesFaultLogDumpEntryCollection(app);
129*3cd7072bSEd Tanous     requestRoutesFaultLogDumpEntry(app);
130*3cd7072bSEd Tanous     requestRoutesFaultLogDumpClear(app);
131*3cd7072bSEd Tanous #endif
132*3cd7072bSEd Tanous 
133*3cd7072bSEd Tanous #ifndef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES
134*3cd7072bSEd Tanous     requestRoutesJournalEventLogEntryCollection(app);
135*3cd7072bSEd Tanous     requestRoutesJournalEventLogEntry(app);
136*3cd7072bSEd Tanous     requestRoutesJournalEventLogClear(app);
137*3cd7072bSEd Tanous #endif
138*3cd7072bSEd Tanous 
139*3cd7072bSEd Tanous     requestRoutesBMCLogServiceCollection(app);
140*3cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_REDFISH_BMC_JOURNAL
141*3cd7072bSEd Tanous     requestRoutesBMCJournalLogService(app);
142*3cd7072bSEd Tanous     requestRoutesBMCJournalLogEntryCollection(app);
143*3cd7072bSEd Tanous     requestRoutesBMCJournalLogEntry(app);
144*3cd7072bSEd Tanous #endif
145*3cd7072bSEd Tanous 
146*3cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_REDFISH_CPU_LOG
147*3cd7072bSEd Tanous     requestRoutesCrashdumpService(app);
148*3cd7072bSEd Tanous     requestRoutesCrashdumpEntryCollection(app);
149*3cd7072bSEd Tanous     requestRoutesCrashdumpEntry(app);
150*3cd7072bSEd Tanous     requestRoutesCrashdumpFile(app);
151*3cd7072bSEd Tanous     requestRoutesCrashdumpClear(app);
152*3cd7072bSEd Tanous     requestRoutesCrashdumpCollect(app);
153*3cd7072bSEd Tanous #endif // BMCWEB_ENABLE_REDFISH_CPU_LOG
154*3cd7072bSEd Tanous 
155*3cd7072bSEd Tanous     requestRoutesProcessorCollection(app);
156*3cd7072bSEd Tanous     requestRoutesProcessor(app);
157*3cd7072bSEd Tanous     requestRoutesOperatingConfigCollection(app);
158*3cd7072bSEd Tanous     requestRoutesOperatingConfig(app);
159*3cd7072bSEd Tanous     requestRoutesMemoryCollection(app);
160*3cd7072bSEd Tanous     requestRoutesMemory(app);
161*3cd7072bSEd Tanous 
162*3cd7072bSEd Tanous     requestRoutesSystems(app);
163*3cd7072bSEd Tanous 
164*3cd7072bSEd Tanous     requestRoutesBiosService(app);
165*3cd7072bSEd Tanous     requestRoutesBiosReset(app);
166*3cd7072bSEd Tanous 
167*3cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_VM_NBDPROXY
168*3cd7072bSEd Tanous     requestNBDVirtualMediaRoutes(app);
169*3cd7072bSEd Tanous #endif // BMCWEB_ENABLE_VM_NBDPROXY
170*3cd7072bSEd Tanous 
171*3cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES
172*3cd7072bSEd Tanous     requestRoutesDBusLogServiceActionsClear(app);
173*3cd7072bSEd Tanous     requestRoutesDBusEventLogEntryCollection(app);
174*3cd7072bSEd Tanous     requestRoutesDBusEventLogEntry(app);
175*3cd7072bSEd Tanous     requestRoutesDBusEventLogEntryDownload(app);
176*3cd7072bSEd Tanous #endif
177*3cd7072bSEd Tanous 
178*3cd7072bSEd Tanous #ifdef BMCWEB_ENABLE_REDFISH_HOST_LOGGER
179*3cd7072bSEd Tanous     requestRoutesSystemHostLogger(app);
180*3cd7072bSEd Tanous     requestRoutesSystemHostLoggerCollection(app);
181*3cd7072bSEd Tanous     requestRoutesSystemHostLoggerLogEntry(app);
182*3cd7072bSEd Tanous #endif
183*3cd7072bSEd Tanous 
184*3cd7072bSEd Tanous     requestRoutesMessageRegistryFileCollection(app);
185*3cd7072bSEd Tanous     requestRoutesMessageRegistryFile(app);
186*3cd7072bSEd Tanous     requestRoutesMessageRegistry(app);
187*3cd7072bSEd Tanous 
188*3cd7072bSEd Tanous     requestRoutesCertificateService(app);
189*3cd7072bSEd Tanous     requestRoutesHTTPSCertificate(app);
190*3cd7072bSEd Tanous     requestRoutesLDAPCertificate(app);
191*3cd7072bSEd Tanous     requestRoutesTrustStoreCertificate(app);
192*3cd7072bSEd Tanous 
193*3cd7072bSEd Tanous     requestRoutesSystemPCIeFunctionCollection(app);
194*3cd7072bSEd Tanous     requestRoutesSystemPCIeFunction(app);
195*3cd7072bSEd Tanous     requestRoutesSystemPCIeDeviceCollection(app);
196*3cd7072bSEd Tanous     requestRoutesSystemPCIeDevice(app);
197*3cd7072bSEd Tanous 
198*3cd7072bSEd Tanous     requestRoutesSensorCollection(app);
199*3cd7072bSEd Tanous     requestRoutesSensor(app);
200*3cd7072bSEd Tanous 
201*3cd7072bSEd Tanous     requestRoutesTaskMonitor(app);
202*3cd7072bSEd Tanous     requestRoutesTaskService(app);
203*3cd7072bSEd Tanous     requestRoutesTaskCollection(app);
204*3cd7072bSEd Tanous     requestRoutesTask(app);
205*3cd7072bSEd Tanous     requestRoutesEventService(app);
206*3cd7072bSEd Tanous     requestRoutesEventServiceSse(app);
207*3cd7072bSEd Tanous     requestRoutesEventDestinationCollection(app);
208*3cd7072bSEd Tanous     requestRoutesEventDestination(app);
209*3cd7072bSEd Tanous     requestRoutesFabricAdapters(app);
210*3cd7072bSEd Tanous     requestRoutesFabricAdapterCollection(app);
211*3cd7072bSEd Tanous     requestRoutesSubmitTestEvent(app);
212*3cd7072bSEd Tanous 
213*3cd7072bSEd Tanous     requestRoutesHypervisorSystems(app);
214*3cd7072bSEd Tanous 
215*3cd7072bSEd Tanous     requestRoutesTelemetryService(app);
216*3cd7072bSEd Tanous     requestRoutesMetricReportDefinitionCollection(app);
217*3cd7072bSEd Tanous     requestRoutesMetricReportDefinition(app);
218*3cd7072bSEd Tanous     requestRoutesMetricReportCollection(app);
219*3cd7072bSEd Tanous     requestRoutesMetricReport(app);
220*3cd7072bSEd Tanous     requestRoutesTriggerCollection(app);
221*3cd7072bSEd Tanous     requestRoutesTrigger(app);
222*3cd7072bSEd Tanous 
223*3cd7072bSEd Tanous     // Note, this must be the last route registered
224*3cd7072bSEd Tanous     requestRoutesRedfish(app);
225*3cd7072bSEd Tanous }
226*3cd7072bSEd Tanous 
227*3cd7072bSEd Tanous } // namespace redfish
228