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