Add the redfish static files to the build
...And delete the old webserver static files from the repo.
Move $metadata to a static file, as that's really where it belongs.
Change-Id: I2caeee7cd779b7c07cfc10cd693459105656671f
diff --git a/include/redfish_v1.hpp b/include/redfish_v1.hpp
index d13eb13..e106079 100644
--- a/include/redfish_v1.hpp
+++ b/include/redfish_v1.hpp
@@ -61,260 +61,6 @@
res.end();
});
- CROW_ROUTE(app, "/redfish/v1/$metadata/")
- .methods(
- "GET"_method)([&](const crow::request& req, crow::response& res) {
- const char* response_text = R"(<?xml version="1.0" encoding="UTF-8"?>
- <edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
- <edmx:Reference Uri="/redfish/v1/schema/ServiceRoot_v1.xml">
- <edmx:Include Namespace="ServiceRoot"/>
- <edmx:Include Namespace="ServiceRoot.v1_0_4"/>
- <edmx:Include Namespace="ServiceRoot.v1_1_1"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/AccountService_v1.xml">
- <edmx:Include Namespace="AccountService"/>
- <edmx:Include Namespace="AccountService.v1_0_3"/>
- <edmx:Include Namespace="AccountService.v1_1_0"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Chassis_v1.xml">
- <edmx:Include Namespace="Chassis"/>
- <edmx:Include Namespace="Chassis.v1_0_3"/>
- <edmx:Include Namespace="Chassis.v1_1_3"/>
- <edmx:Include Namespace="Chassis.v1_2_1"/>
- <edmx:Include Namespace="Chassis.v1_3_1"/>
- <edmx:Include Namespace="Chassis.v1_4_0"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/ChassisCollection_v1.xml">
- <edmx:Include Namespace="ChassisCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/ComputerSystem_v1.xml">
- <edmx:Include Namespace="ComputerSystem"/>
- <edmx:Include Namespace="ComputerSystem.v1_0_4"/>
- <edmx:Include Namespace="ComputerSystem.v1_1_2"/>
- <edmx:Include Namespace="ComputerSystem.v1_2_1"/>
- <edmx:Include Namespace="ComputerSystem.v1_3_0"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/ComputerSystemCollection_v1.xml">
- <edmx:Include Namespace="ComputerSystemCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/EthernetInterface_v1.xml">
- <edmx:Include Namespace="EthernetInterface"/>
- <edmx:Include Namespace="EthernetInterface.v1_0_3"/>
- <edmx:Include Namespace="EthernetInterface.v1_1_1"/>
- <edmx:Include Namespace="EthernetInterface.v1_2_0"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/EthernetInterfaceCollection_v1.xml">
- <edmx:Include Namespace="EthernetInterfaceCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/LogEntry_v1.xml">
- <edmx:Include Namespace="LogEntry"/>
- <edmx:Include Namespace="LogEntry.v1_0_3"/>
- <edmx:Include Namespace="LogEntry.v1_1_1"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/LogEntryCollection_v1.xml">
- <edmx:Include Namespace="LogEntryCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/LogService_v1.xml">
- <edmx:Include Namespace="LogService"/>
- <edmx:Include Namespace="LogService.v1_0_3"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/LogServiceCollection_v1.xml">
- <edmx:Include Namespace="LogServiceCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Manager_v1.xml">
- <edmx:Include Namespace="Manager"/>
- <edmx:Include Namespace="Manager.v1_0_3"/>
- <edmx:Include Namespace="Manager.v1_1_1"/>
- <edmx:Include Namespace="Manager.v1_2_1"/>
- <edmx:Include Namespace="Manager.v1_3_0"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/ManagerAccount_v1.xml">
- <edmx:Include Namespace="ManagerAccount"/>
- <edmx:Include Namespace="ManagerAccount.v1_0_3"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/ManagerNetworkProtocol_v1.xml">
- <edmx:Include Namespace="ManagerNetworkProtocol"/>
- <edmx:Include Namespace="ManagerNetworkProtocol.v1_0_3"/>
- <edmx:Include Namespace="ManagerNetworkProtocol.v1_1_0"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/ManagerAccountCollection_v1.xml">
- <edmx:Include Namespace="ManagerAccountCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/ManagerCollection_v1.xml">
- <edmx:Include Namespace="ManagerCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Power_v1.xml">
- <edmx:Include Namespace="Power"/>
- <edmx:Include Namespace="Power.v1_0_3"/>
- <edmx:Include Namespace="Power.v1_1_1"/>
- <edmx:Include Namespace="Power.v1_2_1"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Processor_v1.xml">
- <edmx:Include Namespace="Processor"/>
- <edmx:Include Namespace="Processor.v1_0_3"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/ProcessorCollection_v1.xml">
- <edmx:Include Namespace="ProcessorCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Role_v1.xml">
- <edmx:Include Namespace="Role"/>
- <edmx:Include Namespace="Role.v1_0_2"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/RoleCollection_v1.xml">
- <edmx:Include Namespace="RoleCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Session_v1.xml">
- <edmx:Include Namespace="Session"/>
- <edmx:Include Namespace="Session.v1_0_3"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/SessionCollection_v1.xml">
- <edmx:Include Namespace="SessionCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/SessionService_v1.xml">
- <edmx:Include Namespace="SessionService"/>
- <edmx:Include Namespace="SessionService.v1_0_3"/>
- <edmx:Include Namespace="SessionService.v1_1_1"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Thermal_v1.xml">
- <edmx:Include Namespace="Thermal"/>
- <edmx:Include Namespace="Thermal.v1_0_3"/>
- <edmx:Include Namespace="Thermal.v1_1_1"/>
- <edmx:Include Namespace="Thermal.v1_2_0"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/RedfishExtensions_v1.xml">
- <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/IPAddresses_v1.xml">
- <edmx:Include Namespace="IPAddresses"/>
- <edmx:Include Namespace="IPAddresses.v1_0_4"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/MemoryCollection_v1.xml">
- <edmx:Include Namespace="MemoryCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/MemoryMetrics_v1.xml">
- <edmx:Include Namespace="MemoryMetrics"/>
- <edmx:Include Namespace="MemoryMetrics.v1_0_1"/>
- <edmx:Include Namespace="MemoryMetrics.v1_1_1"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Memory_v1.xml">
- <edmx:Include Namespace="Memory"/>
- <edmx:Include Namespace="Memory.v1_0_1"/>
- <edmx:Include Namespace="Memory.v1_1_0"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/PhysicalContext_v1.xml">
- <edmx:Include Namespace="PhysicalContext"/>
- <edmx:Include Namespace="PhysicalContext.v1_0_3"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Privileges_v1.xml">
- <edmx:Include Namespace="Privileges"/>
- <edmx:Include Namespace="Privileges.v1_0_3"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Redundancy_v1.xml">
- <edmx:Include Namespace="Redundancy"/>
- <edmx:Include Namespace="Redundancy.v1_0_3"/>
- <edmx:Include Namespace="Redundancy.v1_1_1"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Resource_v1.xml">
- <edmx:Include Namespace="Resource"/>
- <edmx:Include Namespace="Resource.v1_0_3"/>
- <edmx:Include Namespace="Resource.v1_1_2"/>
- <edmx:Include Namespace="Resource.v1_2_1"/>
- <edmx:Include Namespace="Resource.v1_3_0"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/VirtualMediaCollection_v1.xml">
- <edmx:Include Namespace="VirtualMediaCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/VirtualMedia_v1.xml">
- <edmx:Include Namespace="VirtualMedia"/>
- <edmx:Include Namespace="VirtualMedia.v1_0_3"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/VLanNetworkInterfaceCollection_v1.xml">
- <edmx:Include Namespace="VLanNetworkInterfaceCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/VLanNetworkInterface_v1.xml">
- <edmx:Include Namespace="VLanNetworkInterface"/>
- <edmx:Include Namespace="VLanNetworkInterface.v1_0_3"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/StorageCollection_v1.xml">
- <edmx:Include Namespace="StorageCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Storage_v1.xml">
- <edmx:Include Namespace="Storage"/>
- <edmx:Include Namespace="Storage.v1_0_2"/>
- <edmx:Include Namespace="Storage.v1_1_1"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Drive_v1.xml">
- <edmx:Include Namespace="Drive"/>
- <edmx:Include Namespace="Drive.v1_0_2"/>
- <edmx:Include Namespace="Drive.v1_1_1"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/SoftwareInventoryCollection_v1.xml">
- <edmx:Include Namespace="SoftwareInventoryCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/SoftwareInventory_v1.xml">
- <edmx:Include Namespace="SoftwareInventory"/>
- <edmx:Include Namespace="SoftwareInventory.v1_0_1"/>
- <edmx:Include Namespace="SoftwareInventory.v1_1_1"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/UpdateService_v1.xml">
- <edmx:Include Namespace="UpdateService"/>
- <edmx:Include Namespace="UpdateService.v1_0_1"/>
- <edmx:Include Namespace="UpdateService.v1_1_0"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Message_v1.xml">
- <edmx:Include Namespace="Message"/>
- <edmx:Include Namespace="Message.v1_0_4"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/EndpointCollection_v1.xml">
- <edmx:Include Namespace="EndpointCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Endpoint_v1.xml">
- <edmx:Include Namespace="Endpoint"/>
- <edmx:Include Namespace="Endpoint.v1_0_1"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/HostInterfaceCollection_v1.xml">
- <edmx:Include Namespace="HostInterfaceCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/HostInterface_v1.xml">
- <edmx:Include Namespace="HostInterface"/>
- <edmx:Include Namespace="HostInterface.v1_0_0"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/MessageRegistryFileCollection_v1.xml">
- <edmx:Include Namespace="MessageRegistryFileCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/MessageRegistryFile_v1.xml">
- <edmx:Include Namespace="MessageRegistryFile"/>
- <edmx:Include Namespace="MessageRegistryFile.v1_0_3"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/EventService_v1.xml">
- <edmx:Include Namespace="EventService"/>
- <edmx:Include Namespace="EventService.v1_0_3"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/EventDestinationCollection_v1.xml">
- <edmx:Include Namespace="EventDestinationCollection"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/EventDestination_v1.xml">
- <edmx:Include Namespace="EventDestination"/>
- <edmx:Include Namespace="EventDestination.v1_0_3"/>
- <edmx:Include Namespace="EventDestination.v1_1_1"/>
- </edmx:Reference>
- <edmx:Reference Uri="/redfish/v1/schema/Event_v1.xml">
- <edmx:Include Namespace="Event"/>
- <edmx:Include Namespace="Event.v1_0_4"/>
- <edmx:Include Namespace="Event.v1_1_2"/>
- </edmx:Reference>
- <edmx:DataServices>
- <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Service">
- <EntityContainer Name="Service" Extends="ServiceRoot.v1_0_0.ServiceContainer"/>
- </Schema>
- </edmx:DataServices>
- </edmx:Edmx>)";
-
- res.body = response_text;
- res.add_header("Content-Type", "application/xml");
- res.end();
- });
-
CROW_ROUTE(app, "/redfish/v1/Chassis/")
.methods("GET"_method)(
[&](const crow::request& req, crow::response& res) {
@@ -561,7 +307,15 @@
const std::string& session) {
auto& data_middleware =
app.template get_middleware<PersistentData::Middleware>();
- auto session_it = data_middleware.auth_tokens.find(session);
+ // TODO(Ed) this is inefficient
+ auto session_it = data_middleware.auth_tokens.begin();
+ while (session_it != data_middleware.auth_tokens.end()) {
+ if (session_it->second.unique_id == session) {
+ break;
+ }
+ session_it++;
+ }
+
if (session_it == data_middleware.auth_tokens.end()) {
res.code = 404;
res.end();