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" 29d5c0172eSEd 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" 42*e21126ecSEd Tanous #include "systems_logservices_hostlogger.hpp" 438d2f868cSEd Tanous #include "systems_logservices_postcodes.hpp" 443cd7072bSEd Tanous #include "task.hpp" 453cd7072bSEd Tanous #include "telemetry_service.hpp" 463cd7072bSEd Tanous #include "thermal.hpp" 473cd7072bSEd Tanous #include "thermal_metrics.hpp" 483cd7072bSEd Tanous #include "thermal_subsystem.hpp" 493cd7072bSEd Tanous #include "trigger.hpp" 503cd7072bSEd Tanous #include "update_service.hpp" 513cd7072bSEd Tanous #include "virtual_media.hpp" 523cd7072bSEd Tanous 533cd7072bSEd Tanous namespace redfish 543cd7072bSEd Tanous { 553cd7072bSEd Tanous 563cd7072bSEd Tanous RedfishService::RedfishService(App& app) 573cd7072bSEd Tanous { 58090ab8e1SEd Tanous requestRoutesMetadata(app); 59d5c0172eSEd Tanous requestRoutesOdata(app); 60090ab8e1SEd Tanous 613cd7072bSEd Tanous requestAccountServiceRoutes(app); 6225b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_AGGREGATION) 6325b54dbaSEd Tanous { 643cd7072bSEd Tanous requestRoutesAggregationService(app); 653cd7072bSEd Tanous requestRoutesAggregationSourceCollection(app); 663cd7072bSEd Tanous requestRoutesAggregationSource(app); 6725b54dbaSEd Tanous } 683cd7072bSEd Tanous requestRoutesRoles(app); 693cd7072bSEd Tanous requestRoutesRoleCollection(app); 703cd7072bSEd Tanous requestRoutesServiceRoot(app); 713cd7072bSEd Tanous requestRoutesNetworkProtocol(app); 723cd7072bSEd Tanous requestRoutesSession(app); 733cd7072bSEd Tanous requestEthernetInterfacesRoutes(app); 7425b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_ALLOW_DEPRECATED_POWER_THERMAL) 7525b54dbaSEd Tanous { 763cd7072bSEd Tanous requestRoutesThermal(app); 773cd7072bSEd Tanous requestRoutesPower(app); 7825b54dbaSEd Tanous } 7925b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_NEW_POWERSUBSYSTEM_THERMALSUBSYSTEM) 8025b54dbaSEd Tanous { 813cd7072bSEd Tanous requestRoutesEnvironmentMetrics(app); 823cd7072bSEd Tanous requestRoutesPowerSubsystem(app); 833cd7072bSEd Tanous requestRoutesPowerSupply(app); 843cd7072bSEd Tanous requestRoutesPowerSupplyCollection(app); 853cd7072bSEd Tanous requestRoutesThermalMetrics(app); 863cd7072bSEd Tanous requestRoutesThermalSubsystem(app); 873cd7072bSEd Tanous requestRoutesFan(app); 883cd7072bSEd Tanous requestRoutesFanCollection(app); 8925b54dbaSEd Tanous } 903cd7072bSEd Tanous requestRoutesManagerCollection(app); 913cd7072bSEd Tanous requestRoutesManager(app); 923cd7072bSEd Tanous requestRoutesManagerResetAction(app); 933cd7072bSEd Tanous requestRoutesManagerResetActionInfo(app); 943cd7072bSEd Tanous requestRoutesManagerResetToDefaultsAction(app); 953cd7072bSEd Tanous requestRoutesManagerDiagnosticData(app); 963cd7072bSEd Tanous requestRoutesChassisCollection(app); 973cd7072bSEd Tanous requestRoutesChassis(app); 983cd7072bSEd Tanous requestRoutesChassisResetAction(app); 993cd7072bSEd Tanous requestRoutesChassisResetActionInfo(app); 1003cd7072bSEd Tanous requestRoutesChassisDrive(app); 1013cd7072bSEd Tanous requestRoutesChassisDriveName(app); 1023cd7072bSEd Tanous requestRoutesUpdateService(app); 1033cd7072bSEd Tanous requestRoutesStorageCollection(app); 1043cd7072bSEd Tanous requestRoutesStorage(app); 1053cd7072bSEd Tanous requestRoutesStorageControllerCollection(app); 1063cd7072bSEd Tanous requestRoutesStorageController(app); 1073cd7072bSEd Tanous requestRoutesDrive(app); 1083cd7072bSEd Tanous requestRoutesCable(app); 1093cd7072bSEd Tanous requestRoutesCableCollection(app); 1103cd7072bSEd Tanous 1113cd7072bSEd Tanous requestRoutesSystemLogServiceCollection(app); 1123cd7072bSEd Tanous requestRoutesEventLogService(app); 1133cd7072bSEd Tanous 1148d2f868cSEd Tanous requestRoutesSystemsLogServicesPostCode(app); 1153cd7072bSEd Tanous 11625b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_DUMP_LOG) 11725b54dbaSEd Tanous { 1183cd7072bSEd Tanous requestRoutesSystemDumpService(app); 1193cd7072bSEd Tanous requestRoutesSystemDumpEntryCollection(app); 1203cd7072bSEd Tanous requestRoutesSystemDumpEntry(app); 1213cd7072bSEd Tanous requestRoutesSystemDumpCreate(app); 1223cd7072bSEd Tanous requestRoutesSystemDumpClear(app); 1233cd7072bSEd Tanous 1243cd7072bSEd Tanous requestRoutesBMCDumpService(app); 1253cd7072bSEd Tanous requestRoutesBMCDumpEntryCollection(app); 1263cd7072bSEd Tanous requestRoutesBMCDumpEntry(app); 1273cd7072bSEd Tanous requestRoutesBMCDumpEntryDownload(app); 1283cd7072bSEd Tanous requestRoutesBMCDumpCreate(app); 1293cd7072bSEd Tanous requestRoutesBMCDumpClear(app); 1303cd7072bSEd Tanous 1313cd7072bSEd Tanous requestRoutesFaultLogDumpService(app); 1323cd7072bSEd Tanous requestRoutesFaultLogDumpEntryCollection(app); 1333cd7072bSEd Tanous requestRoutesFaultLogDumpEntry(app); 1343cd7072bSEd Tanous requestRoutesFaultLogDumpClear(app); 13525b54dbaSEd Tanous } 1363cd7072bSEd Tanous 1373cd7072bSEd Tanous requestRoutesBMCLogServiceCollection(app); 13884177a2fSEd Tanous 13925b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_BMC_JOURNAL) 14025b54dbaSEd Tanous { 1413cd7072bSEd Tanous requestRoutesBMCJournalLogService(app); 14225b54dbaSEd Tanous } 1433cd7072bSEd Tanous 14425b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_CPU_LOG) 14525b54dbaSEd Tanous { 1463cd7072bSEd Tanous requestRoutesCrashdumpService(app); 1473cd7072bSEd Tanous requestRoutesCrashdumpEntryCollection(app); 1483cd7072bSEd Tanous requestRoutesCrashdumpEntry(app); 1493cd7072bSEd Tanous requestRoutesCrashdumpFile(app); 1503cd7072bSEd Tanous requestRoutesCrashdumpClear(app); 1513cd7072bSEd Tanous requestRoutesCrashdumpCollect(app); 15225b54dbaSEd Tanous } 1533cd7072bSEd Tanous 1543cd7072bSEd Tanous requestRoutesProcessorCollection(app); 1553cd7072bSEd Tanous requestRoutesProcessor(app); 1563cd7072bSEd Tanous requestRoutesOperatingConfigCollection(app); 1573cd7072bSEd Tanous requestRoutesOperatingConfig(app); 1583cd7072bSEd Tanous requestRoutesMemoryCollection(app); 1593cd7072bSEd Tanous requestRoutesMemory(app); 1603cd7072bSEd Tanous 1613cd7072bSEd Tanous requestRoutesSystems(app); 1623cd7072bSEd Tanous 1633cd7072bSEd Tanous requestRoutesBiosService(app); 1643cd7072bSEd Tanous requestRoutesBiosReset(app); 1653cd7072bSEd Tanous 16625b54dbaSEd Tanous if constexpr (BMCWEB_VM_NBDPROXY) 16725b54dbaSEd Tanous { 1683cd7072bSEd Tanous requestNBDVirtualMediaRoutes(app); 16925b54dbaSEd Tanous } 1703cd7072bSEd Tanous 17125b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_DBUS_LOG) 17225b54dbaSEd Tanous { 1733cd7072bSEd Tanous requestRoutesDBusLogServiceActionsClear(app); 1743cd7072bSEd Tanous requestRoutesDBusEventLogEntryCollection(app); 1753cd7072bSEd Tanous requestRoutesDBusEventLogEntry(app); 1763cd7072bSEd Tanous requestRoutesDBusEventLogEntryDownload(app); 17725b54dbaSEd Tanous } 178a782e265SAlexander Hansen else 179a782e265SAlexander Hansen { 180a782e265SAlexander Hansen requestRoutesJournalEventLogEntryCollection(app); 181a782e265SAlexander Hansen requestRoutesJournalEventLogEntry(app); 182a782e265SAlexander Hansen requestRoutesJournalEventLogClear(app); 183a782e265SAlexander Hansen } 1843cd7072bSEd Tanous 18525b54dbaSEd Tanous if constexpr (BMCWEB_REDFISH_HOST_LOGGER) 18625b54dbaSEd Tanous { 187*e21126ecSEd Tanous requestRoutesSystemsLogServiceHostlogger(app); 18825b54dbaSEd Tanous } 1893cd7072bSEd Tanous 1903cd7072bSEd Tanous requestRoutesMessageRegistryFileCollection(app); 1913cd7072bSEd Tanous requestRoutesMessageRegistryFile(app); 1923cd7072bSEd Tanous requestRoutesMessageRegistry(app); 1933cd7072bSEd Tanous 1943cd7072bSEd Tanous requestRoutesCertificateService(app); 1953cd7072bSEd Tanous requestRoutesHTTPSCertificate(app); 1963cd7072bSEd Tanous requestRoutesLDAPCertificate(app); 1973cd7072bSEd Tanous requestRoutesTrustStoreCertificate(app); 1983cd7072bSEd Tanous 1993cd7072bSEd Tanous requestRoutesSystemPCIeFunctionCollection(app); 2003cd7072bSEd Tanous requestRoutesSystemPCIeFunction(app); 2013cd7072bSEd Tanous requestRoutesSystemPCIeDeviceCollection(app); 2023cd7072bSEd Tanous requestRoutesSystemPCIeDevice(app); 2033cd7072bSEd Tanous 2043cd7072bSEd Tanous requestRoutesSensorCollection(app); 2053cd7072bSEd Tanous requestRoutesSensor(app); 2063cd7072bSEd Tanous 2073cd7072bSEd Tanous requestRoutesTaskMonitor(app); 2083cd7072bSEd Tanous requestRoutesTaskService(app); 2093cd7072bSEd Tanous requestRoutesTaskCollection(app); 2103cd7072bSEd Tanous requestRoutesTask(app); 2113cd7072bSEd Tanous requestRoutesEventService(app); 2123cd7072bSEd Tanous requestRoutesEventServiceSse(app); 2133cd7072bSEd Tanous requestRoutesEventDestinationCollection(app); 2143cd7072bSEd Tanous requestRoutesEventDestination(app); 2153cd7072bSEd Tanous requestRoutesFabricAdapters(app); 2163cd7072bSEd Tanous requestRoutesFabricAdapterCollection(app); 2173cd7072bSEd Tanous requestRoutesSubmitTestEvent(app); 2183cd7072bSEd Tanous 21968896206SGunnar Mills if constexpr (BMCWEB_HYPERVISOR_COMPUTER_SYSTEM) 22068896206SGunnar Mills { 2213cd7072bSEd Tanous requestRoutesHypervisorSystems(app); 22268896206SGunnar Mills } 2233cd7072bSEd Tanous 2243cd7072bSEd Tanous requestRoutesTelemetryService(app); 2253cd7072bSEd Tanous requestRoutesMetricReportDefinitionCollection(app); 2263cd7072bSEd Tanous requestRoutesMetricReportDefinition(app); 2273cd7072bSEd Tanous requestRoutesMetricReportCollection(app); 2283cd7072bSEd Tanous requestRoutesMetricReport(app); 2293cd7072bSEd Tanous requestRoutesTriggerCollection(app); 2303cd7072bSEd Tanous requestRoutesTrigger(app); 2313cd7072bSEd Tanous 2323cd7072bSEd Tanous // Note, this must be the last route registered 2333cd7072bSEd Tanous requestRoutesRedfish(app); 2343cd7072bSEd Tanous } 2353cd7072bSEd Tanous 2363cd7072bSEd Tanous } // namespace redfish 237