History log of /openbmc/bmcweb/redfish-core/ (Results 176 – 200 of 1915)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
20fa6a2c20-May-2024 Ed Tanous <ed@tanous.net>

Remove the last instances of json pattern

In the past, we've tried to erradicate the use of
nlohmann::json(initiatlizer_list<...>) because it bloats binary sizes,
as every type is given a new nlohma

Remove the last instances of json pattern

In the past, we've tried to erradicate the use of
nlohmann::json(initiatlizer_list<...>) because it bloats binary sizes,
as every type is given a new nlohmann constructor.

This commit hunts down the last few places where we call this. There is
still 2 remaining in openbmc_dbus_rest after this, but those are variant
accesses that are difficult to triage, and considering it's a less used
api, they're left as is.

Tested: WIP

Change-Id: Iaac24584bb78bb238da69010b511c1d598bd38bc
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

de0c960c29-Apr-2024 Jagpal Singh Gill <paligill@gmail.com>

updateservice: add start update D-Bus interface

Add the start update D-Bus interface based flow for multi-form content
path. This involves mapping the TargetURI to the corresponding
serviceName and

updateservice: add start update D-Bus interface

Add the start update D-Bus interface based flow for multi-form content
path. This involves mapping the TargetURI to the corresponding
serviceName and objectPath which hosts the specific D-Bus interface.
As per discussion with Redfish community both ResourceURI and
FirmwareInventory Redfish URI can be used as TargetURI. Current
implementation already allows /redfish/v1/Managers/<bmc>, hence support
for this specific ResourceURI has been preserved. New implementation
adds FirmwareInventory Redfish URI for TargetURI as default option.
https://redfishforum.com/thread/1054.
For more details on design refer to -
https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/65738
https://gerrit.openbmc.org/c/openbmc/docs/+/65739

Tested: Redfish Validator and Build passes.
multipart form data update request with Resource URI as target
```
curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" \
-X POST -F UpdateParameters="{\"Targets\":[\"/redfish/v1/Managers/bmc\"],\"@Redfish.OperationApplyTime\":\"Immediate\"};type=application/json" \
-F "UpdateFile=@obmc-phosphor-image-romulus-20240425222313.static.mtd.all.tar;type=application/octet-stream" \
https://${bmc}/redfish/v1/UpdateService/update
{
"@odata.id": "/redfish/v1/TaskService/Tasks/0",
"@odata.type": "#Task.v1_4_3.Task",
"Id": "0",
"TaskState": "Running",
"TaskStatus": "OK"
}
```

multipart form data update request with Firmware Inventory URI as target
```
curl -k -H "X-Auth-Token: $token" -H "Content-Type:multipart/form-data" \
-X POST -F UpdateParameters="{\"Targets\":[\"/redfish/v1/Managers/bmc\"],\"@Redfish.OperationApplyTime\":\"Immediate\"};type=application/json" \
-F "UpdateFile=@obmc-phosphor-image-romulus-20240509003505.static.mtd.all.tar;type=application/octet-stream" \
https://${bmc}/redfish/v1/UpdateService/update
{
"@odata.id": "/redfish/v1/TaskService/Tasks/1",
"@odata.type": "#Task.v1_4_3.Task",
"Id": "1",
"TaskState": "Running",
"TaskStatus": "OK"
}
```

Change-Id: Id46de79d3af8834630a793678a6fc0e859295afe
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>

show more ...

090ab8e118-May-2024 Ed Tanous <ed@tanous.net>

Generate metadata at runtime

In the initial implementation of metadata indexing the bmc knew at
compile time what schemas it could potentially publish. bmcweb took the
approach of adding all schema

Generate metadata at runtime

In the initial implementation of metadata indexing the bmc knew at
compile time what schemas it could potentially publish. bmcweb took the
approach of adding all schemas of all versions to the $metadata
resource. Since that was made, two major changes have happened.
First, Redfish has added significantly more versions of each schema, as
well as significantly more schemas to the point where the metadata index
is now 213KB. While this file compresses fairly well, the size is
obvious from the large amount of time that redfish service validator
takes to parse the schemas, compared to actually acquiring BMC redfish
resources.
Second, aggregation was added, where an aggregated Redfish service might
implement any number of schemas, including OEM ones.

In an effort to fix this, this patch takes the compile-time algorithm in
update_schemas.py, and moves it into bmcweb itself, parsing the files on
disk as needed on demand. This has some immediate benefits; First, is
that now schemas can be potentially installed from anywhere, not only
from within the bmcweb build, and they will be resolved at runtime.

Second, patches that want to add support for a given schema need to only
symlink the schema into the correct folder, without needing to rerun
update_schemas.py. This saves time in review.

Finally, this opens to door to reducing the schema versions present in
the metadata to the unique set of only what this bmcweb instance, and
its aggregated BMCs expose.

Tested: Redfish service validator passes. Need A/B checking to verify
the file is byte for byte the same.
GET /redfish/v1/$metadata returns what looks like sane results, with a
correct content-type.
Unit tests require the use of TemporaryFileHandle, so that class is
moved into a more general folder, outside of test/http.

Change-Id: I326159099c6b6c4056023b2e173c5f074ed88ce1
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

40a5fb2712-May-2024 Ed Tanous <ed@tanous.net>

Let OEM schemas be formatted by prettier

For OpenBMC owned schemas, let prettier handle the formatting for us,
given that OpenBMC owns them.

Change-Id: If9558dae8a34fed72b926c2dd95fcff887c8119c
Sig

Let OEM schemas be formatted by prettier

For OpenBMC owned schemas, let prettier handle the formatting for us,
given that OpenBMC owns them.

Change-Id: If9558dae8a34fed72b926c2dd95fcff887c8119c
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


/openbmc/bmcweb/.prettierignore
/openbmc/bmcweb/meson.build
schema/oem/openbmc/json-schema/OemAccountService.json
schema/oem/openbmc/json-schema/OemManager.json
schema/oem/openbmc/json-schema/OemVirtualMedia.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/AccountService/AccountService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ActionInfo/ActionInfo.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/AggregationService/AggregationService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/AggregationSource/AggregationSource.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/AggregationSourceCollection/AggregationSourceCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Assembly/Assembly.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/AttributeRegistry/AttributeRegistry.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Bios/Bios.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Cable/Cable.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/CableCollection/CableCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Certificate/Certificate.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/CertificateCollection/CertificateCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/CertificateLocations/CertificateLocations.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/CertificateService/CertificateService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Chassis/Chassis.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ChassisCollection/ChassisCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ComponentIntegrity/ComponentIntegrity.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ComponentIntegrityCollection/ComponentIntegrityCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ComputerSystem/ComputerSystem.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ComputerSystemCollection/ComputerSystemCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Drive/Drive.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/DriveCollection/DriveCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/EnvironmentMetrics/EnvironmentMetrics.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/EthernetInterface/EthernetInterface.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/EthernetInterfaceCollection/EthernetInterfaceCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Event/Event.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/EventDestination/EventDestination.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/EventDestinationCollection/EventDestinationCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/EventService/EventService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/FabricAdapter/FabricAdapter.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/FabricAdapterCollection/FabricAdapterCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Fan/Fan.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/FanCollection/FanCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/IPAddresses/IPAddresses.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/JsonSchemaFile/JsonSchemaFile.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/JsonSchemaFileCollection/JsonSchemaFileCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/LogEntry/LogEntry.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/LogEntryCollection/LogEntryCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/LogService/LogService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/LogServiceCollection/LogServiceCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Manager/Manager.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ManagerAccount/ManagerAccount.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ManagerAccountCollection/ManagerAccountCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ManagerCollection/ManagerCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ManagerDiagnosticData/ManagerDiagnosticData.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ManagerNetworkProtocol/ManagerNetworkProtocol.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Memory/Memory.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MemoryCollection/MemoryCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Message/Message.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistry/MessageRegistry.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistryCollection/MessageRegistryCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistryFile/MessageRegistryFile.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MessageRegistryFileCollection/MessageRegistryFileCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MetricDefinition/MetricDefinition.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MetricDefinitionCollection/MetricDefinitionCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MetricReport/MetricReport.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MetricReportCollection/MetricReportCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MetricReportDefinition/MetricReportDefinition.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/MetricReportDefinitionCollection/MetricReportDefinitionCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/OperatingConfig/OperatingConfig.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/OperatingConfigCollection/OperatingConfigCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PCIeDevice/PCIeDevice.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PCIeDeviceCollection/PCIeDeviceCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PCIeFunction/PCIeFunction.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PCIeFunctionCollection/PCIeFunctionCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PCIeSlots/PCIeSlots.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PhysicalContext/PhysicalContext.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Port/Port.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PortCollection/PortCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Power/Power.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PowerSubsystem/PowerSubsystem.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PowerSupply/PowerSupply.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/PowerSupplyCollection/PowerSupplyCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Privileges/Privileges.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Processor/Processor.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ProcessorCollection/ProcessorCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Protocol/Protocol.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Redundancy/Redundancy.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Resource/Resource.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Role/Role.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/RoleCollection/RoleCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Sensor/Sensor.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/SensorCollection/SensorCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ServiceRoot/ServiceRoot.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Session/Session.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/SessionCollection/SessionCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/SessionService/SessionService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Settings/Settings.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/SoftwareInventory/SoftwareInventory.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/SoftwareInventoryCollection/SoftwareInventoryCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Storage/Storage.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/StorageCollection/StorageCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/StorageController/StorageController.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/StorageControllerCollection/StorageControllerCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Task/Task.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/TaskCollection/TaskCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/TaskService/TaskService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/TelemetryService/TelemetryService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Thermal/Thermal.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ThermalMetrics/ThermalMetrics.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/ThermalSubsystem/ThermalSubsystem.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/Triggers/Triggers.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/TriggersCollection/TriggersCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/UpdateService/UpdateService.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/VirtualMedia/VirtualMedia.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/VirtualMediaCollection/VirtualMediaCollection.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/odata-v4/odata-v4.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/odata/odata.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/redfish-error/redfish-error.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/redfish-payload-annotations/redfish-payload-annotations.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/redfish-schema-v1/redfish-schema-v1.json
/openbmc/bmcweb/static/redfish/v1/JsonSchemas/redfish-schema/redfish-schema.json
/openbmc/bmcweb/static/redfish/v1/schema/AccountService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ActionInfo_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/AggregationService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/AggregationSourceCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/AggregationSource_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Assembly_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/AttributeRegistry_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Bios_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/CableCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Cable_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/CertificateCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/CertificateLocations_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/CertificateService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Certificate_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ChassisCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Chassis_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ComponentIntegrityCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ComponentIntegrity_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ComputerSystemCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ComputerSystem_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/DriveCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Drive_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/EnvironmentMetrics_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/EthernetInterfaceCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/EthernetInterface_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/EventDestinationCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/EventDestination_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/EventService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Event_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/FabricAdapterCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/FabricAdapter_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/FanCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Fan_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/IPAddresses_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/JsonSchemaFileCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/JsonSchemaFile_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/LogEntryCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/LogEntry_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/LogServiceCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/LogService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ManagerAccountCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ManagerAccount_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ManagerCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ManagerDiagnosticData_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ManagerNetworkProtocol_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Manager_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MemoryCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Memory_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MessageRegistryCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MessageRegistryFileCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MessageRegistryFile_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MessageRegistry_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Message_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MetricDefinitionCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MetricDefinition_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MetricReportCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MetricReportDefinitionCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MetricReportDefinition_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/MetricReport_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/OemComputerSystem_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/OemManager_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/OemVirtualMedia_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/OpenBMCAccountService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/OperatingConfigCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/OperatingConfig_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PCIeDeviceCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PCIeDevice_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PCIeFunctionCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PCIeFunction_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PCIeSlots_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PhysicalContext_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PortCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Port_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PowerSubsystem_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PowerSupplyCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/PowerSupply_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Power_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Privileges_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ProcessorCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Processor_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Protocol_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/RedfishError_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/RedfishExtensions_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Redundancy_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Resource_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/RoleCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Role_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/SensorCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Sensor_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ServiceRoot_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/SessionCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/SessionService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Session_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Settings_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/SoftwareInventoryCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/SoftwareInventory_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/StorageCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/StorageControllerCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/StorageController_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Storage_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/TaskCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/TaskService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Task_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/TelemetryService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ThermalMetrics_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/ThermalSubsystem_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Thermal_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/TriggersCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/Triggers_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/UpdateService_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/VirtualMediaCollection_v1.xml
/openbmc/bmcweb/static/redfish/v1/schema/VirtualMedia_v1.xml
2bde406113-May-2024 Ed Tanous <ed@tanous.net>

Add all schemas to schema folder

We should check in all the DMTF schemas, even if we don't use them, such
that adding or removing them is simpler, and we can keep an accounting
of changes to overall

Add all schemas to schema folder

We should check in all the DMTF schemas, even if we don't use them, such
that adding or removing them is simpler, and we can keep an accounting
of changes to overall DMTF schemas, not mixed in with our selections.

Change-Id: I893215ac68829bce8e8e1cf1a9e5499a32abe119
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


schema/dmtf/csdl/AccelerationFunctionCollection_v1.xml
schema/dmtf/csdl/AccelerationFunction_v1.xml
schema/dmtf/csdl/AddressPoolCollection_v1.xml
schema/dmtf/csdl/AddressPool_v1.xml
schema/dmtf/csdl/AggregateCollection_v1.xml
schema/dmtf/csdl/Aggregate_v1.xml
schema/dmtf/csdl/AllowDenyCollection_v1.xml
schema/dmtf/csdl/AllowDeny_v1.xml
schema/dmtf/csdl/ApplicationCollection_v1.xml
schema/dmtf/csdl/Application_v1.xml
schema/dmtf/csdl/BatteryCollection_v1.xml
schema/dmtf/csdl/BatteryMetrics_v1.xml
schema/dmtf/csdl/Battery_v1.xml
schema/dmtf/csdl/BootOptionCollection_v1.xml
schema/dmtf/csdl/BootOption_v1.xml
schema/dmtf/csdl/CXLLogicalDeviceCollection_v1.xml
schema/dmtf/csdl/CXLLogicalDevice_v1.xml
schema/dmtf/csdl/CircuitCollection_v1.xml
schema/dmtf/csdl/Circuit_v1.xml
schema/dmtf/csdl/CollectionCapabilities_v1.xml
schema/dmtf/csdl/CompositionReservationCollection_v1.xml
schema/dmtf/csdl/CompositionReservation_v1.xml
schema/dmtf/csdl/CompositionService_v1.xml
schema/dmtf/csdl/ConnectionCollection_v1.xml
schema/dmtf/csdl/ConnectionMethodCollection_v1.xml
schema/dmtf/csdl/ConnectionMethod_v1.xml
schema/dmtf/csdl/Connection_v1.xml
schema/dmtf/csdl/ContainerCollection_v1.xml
schema/dmtf/csdl/ContainerImageCollection_v1.xml
schema/dmtf/csdl/ContainerImage_v1.xml
schema/dmtf/csdl/Container_v1.xml
schema/dmtf/csdl/ControlCollection_v1.xml
schema/dmtf/csdl/Control_v1.xml
schema/dmtf/csdl/CoolantConnectorCollection_v1.xml
schema/dmtf/csdl/CoolantConnector_v1.xml
schema/dmtf/csdl/CoolingLoopCollection_v1.xml
schema/dmtf/csdl/CoolingLoop_v1.xml
schema/dmtf/csdl/CoolingUnitCollection_v1.xml
schema/dmtf/csdl/CoolingUnit_v1.xml
schema/dmtf/csdl/DriveMetrics_v1.xml
schema/dmtf/csdl/EndpointCollection_v1.xml
schema/dmtf/csdl/EndpointGroupCollection_v1.xml
schema/dmtf/csdl/EndpointGroup_v1.xml
schema/dmtf/csdl/Endpoint_v1.xml
schema/dmtf/csdl/ExternalAccountProviderCollection_v1.xml
schema/dmtf/csdl/ExternalAccountProvider_v1.xml
schema/dmtf/csdl/FabricCollection_v1.xml
schema/dmtf/csdl/Fabric_v1.xml
schema/dmtf/csdl/FacilityCollection_v1.xml
schema/dmtf/csdl/Facility_v1.xml
schema/dmtf/csdl/FilterCollection_v1.xml
schema/dmtf/csdl/Filter_v1.xml
schema/dmtf/csdl/GraphicsControllerCollection_v1.xml
schema/dmtf/csdl/GraphicsController_v1.xml
schema/dmtf/csdl/HeaterCollection_v1.xml
schema/dmtf/csdl/HeaterMetrics_v1.xml
schema/dmtf/csdl/Heater_v1.xml
schema/dmtf/csdl/HostInterfaceCollection_v1.xml
schema/dmtf/csdl/HostInterface_v1.xml
schema/dmtf/csdl/JobCollection_v1.xml
schema/dmtf/csdl/JobService_v1.xml
schema/dmtf/csdl/Job_v1.xml
schema/dmtf/csdl/KeyCollection_v1.xml
schema/dmtf/csdl/KeyPolicyCollection_v1.xml
schema/dmtf/csdl/KeyPolicy_v1.xml
schema/dmtf/csdl/KeyService_v1.xml
schema/dmtf/csdl/Key_v1.xml
schema/dmtf/csdl/LeakDetection_v1.xml
schema/dmtf/csdl/LeakDetectorCollection_v1.xml
schema/dmtf/csdl/LeakDetector_v1.xml
schema/dmtf/csdl/LicenseCollection_v1.xml
schema/dmtf/csdl/LicenseService_v1.xml
schema/dmtf/csdl/License_v1.xml
schema/dmtf/csdl/Manifest_v1.xml
schema/dmtf/csdl/MediaControllerCollection_v1.xml
schema/dmtf/csdl/MediaController_v1.xml
schema/dmtf/csdl/MemoryChunksCollection_v1.xml
schema/dmtf/csdl/MemoryChunks_v1.xml
schema/dmtf/csdl/MemoryDomainCollection_v1.xml
schema/dmtf/csdl/MemoryDomain_v1.xml
schema/dmtf/csdl/MemoryMetrics_v1.xml
schema/dmtf/csdl/MemoryRegionCollection_v1.xml
schema/dmtf/csdl/MemoryRegion_v1.xml
schema/dmtf/csdl/NetworkAdapterCollection_v1.xml
schema/dmtf/csdl/NetworkAdapterMetrics_v1.xml
schema/dmtf/csdl/NetworkAdapter_v1.xml
schema/dmtf/csdl/NetworkDeviceFunctionCollection_v1.xml
schema/dmtf/csdl/NetworkDeviceFunctionMetrics_v1.xml
schema/dmtf/csdl/NetworkDeviceFunction_v1.xml
schema/dmtf/csdl/NetworkInterfaceCollection_v1.xml
schema/dmtf/csdl/NetworkInterface_v1.xml
schema/dmtf/csdl/NetworkPortCollection_v1.xml
schema/dmtf/csdl/NetworkPort_v1.xml
schema/dmtf/csdl/OperatingSystem_v1.xml
schema/dmtf/csdl/OutboundConnectionCollection_v1.xml
schema/dmtf/csdl/OutboundConnection_v1.xml
schema/dmtf/csdl/OutletCollection_v1.xml
schema/dmtf/csdl/OutletGroupCollection_v1.xml
schema/dmtf/csdl/OutletGroup_v1.xml
schema/dmtf/csdl/Outlet_v1.xml
schema/dmtf/csdl/PortMetrics_v1.xml
schema/dmtf/csdl/PowerDistributionCollection_v1.xml
schema/dmtf/csdl/PowerDistributionMetrics_v1.xml
schema/dmtf/csdl/PowerDistribution_v1.xml
schema/dmtf/csdl/PowerDomainCollection_v1.xml
schema/dmtf/csdl/PowerDomain_v1.xml
schema/dmtf/csdl/PowerEquipment_v1.xml
schema/dmtf/csdl/PowerSupplyMetrics_v1.xml
schema/dmtf/csdl/PrivilegeRegistry_v1.xml
schema/dmtf/csdl/ProcessorMetrics_v1.xml
schema/dmtf/csdl/PumpCollection_v1.xml
schema/dmtf/csdl/Pump_v1.xml
schema/dmtf/csdl/RegisteredClientCollection_v1.xml
schema/dmtf/csdl/RegisteredClient_v1.xml
schema/dmtf/csdl/ReservoirCollection_v1.xml
schema/dmtf/csdl/Reservoir_v1.xml
schema/dmtf/csdl/ResolutionStep_v1.xml
schema/dmtf/csdl/ResourceBlockCollection_v1.xml
schema/dmtf/csdl/ResourceBlock_v1.xml
schema/dmtf/csdl/RouteEntryCollection_v1.xml
schema/dmtf/csdl/RouteEntry_v1.xml
schema/dmtf/csdl/RouteSetEntryCollection_v1.xml
schema/dmtf/csdl/RouteSetEntry_v1.xml
schema/dmtf/csdl/Schedule_v1.xml
schema/dmtf/csdl/SecureBootDatabaseCollection_v1.xml
schema/dmtf/csdl/SecureBootDatabase_v1.xml
schema/dmtf/csdl/SecureBoot_v1.xml
schema/dmtf/csdl/SecurityPolicy_v1.xml
schema/dmtf/csdl/SerialInterfaceCollection_v1.xml
schema/dmtf/csdl/SerialInterface_v1.xml
schema/dmtf/csdl/ServiceConditions_v1.xml
schema/dmtf/csdl/SignatureCollection_v1.xml
schema/dmtf/csdl/Signature_v1.xml
schema/dmtf/csdl/SimpleStorageCollection_v1.xml
schema/dmtf/csdl/SimpleStorage_v1.xml
schema/dmtf/csdl/StorageControllerMetrics_v1.xml
schema/dmtf/csdl/SwitchCollection_v1.xml
schema/dmtf/csdl/SwitchMetrics_v1.xml
schema/dmtf/csdl/Switch_v1.xml
schema/dmtf/csdl/ThermalEquipment_v1.xml
schema/dmtf/csdl/TrustedComponentCollection_v1.xml
schema/dmtf/csdl/TrustedComponent_v1.xml
schema/dmtf/csdl/USBControllerCollection_v1.xml
schema/dmtf/csdl/USBController_v1.xml
schema/dmtf/csdl/VCATEntryCollection_v1.xml
schema/dmtf/csdl/VCATEntry_v1.xml
schema/dmtf/csdl/VLanNetworkInterfaceCollection_v1.xml
schema/dmtf/csdl/VLanNetworkInterface_v1.xml
schema/dmtf/csdl/VolumeCollection_v1.xml
schema/dmtf/csdl/Volume_v1.xml
schema/dmtf/csdl/ZoneCollection_v1.xml
schema/dmtf/csdl/Zone_v1.xml
schema/dmtf/json-schema/AccelerationFunction.v1_0_4.json
schema/dmtf/json-schema/AccelerationFunctionCollection.json
schema/dmtf/json-schema/AddressPool.v1_2_4.json
schema/dmtf/json-schema/AddressPoolCollection.json
schema/dmtf/json-schema/Aggregate.v1_0_2.json
schema/dmtf/json-schema/AggregateCollection.json
schema/dmtf/json-schema/AllowDeny.v1_0_2.json
schema/dmtf/json-schema/AllowDenyCollection.json
schema/dmtf/json-schema/Application.v1_0_0.json
schema/dmtf/json-schema/ApplicationCollection.json
schema/dmtf/json-schema/Battery.v1_2_2.json
schema/dmtf/json-schema/BatteryCollection.json
schema/dmtf/json-schema/BatteryMetrics.v1_0_3.json
schema/dmtf/json-schema/BootOption.v1_0_5.json
schema/dmtf/json-schema/BootOptionCollection.json
schema/dmtf/json-schema/CXLLogicalDevice.v1_1_1.json
schema/dmtf/json-schema/CXLLogicalDeviceCollection.json
schema/dmtf/json-schema/Circuit.v1_7_1.json
schema/dmtf/json-schema/CircuitCollection.json
schema/dmtf/json-schema/CollectionCapabilities.v1_4_0.json
schema/dmtf/json-schema/CompositionReservation.v1_0_1.json
schema/dmtf/json-schema/CompositionReservationCollection.json
schema/dmtf/json-schema/CompositionService.v1_2_2.json
schema/dmtf/json-schema/Connection.v1_3_1.json
schema/dmtf/json-schema/ConnectionCollection.json
schema/dmtf/json-schema/ConnectionMethod.v1_1_0.json
schema/dmtf/json-schema/ConnectionMethodCollection.json
schema/dmtf/json-schema/Container.v1_0_0.json
schema/dmtf/json-schema/ContainerCollection.json
schema/dmtf/json-schema/ContainerImage.v1_0_0.json
schema/dmtf/json-schema/ContainerImageCollection.json
schema/dmtf/json-schema/Control.v1_5_0.json
schema/dmtf/json-schema/ControlCollection.json
schema/dmtf/json-schema/CoolantConnector.v1_0_1.json
schema/dmtf/json-schema/CoolantConnectorCollection.json
schema/dmtf/json-schema/CoolingLoop.v1_0_2.json
schema/dmtf/json-schema/CoolingLoopCollection.json
schema/dmtf/json-schema/CoolingUnit.v1_1_1.json
schema/dmtf/json-schema/CoolingUnitCollection.json
schema/dmtf/json-schema/DriveMetrics.v1_2_0.json
schema/dmtf/json-schema/Endpoint.v1_8_1.json
schema/dmtf/json-schema/EndpointCollection.json
schema/dmtf/json-schema/EndpointGroup.v1_3_3.json
schema/dmtf/json-schema/EndpointGroupCollection.json
schema/dmtf/json-schema/ExternalAccountProvider.v1_7_1.json
schema/dmtf/json-schema/ExternalAccountProviderCollection.json
schema/dmtf/json-schema/Fabric.v1_3_1.json
schema/dmtf/json-schema/FabricCollection.json
schema/dmtf/json-schema/Facility.v1_4_1.json
schema/dmtf/json-schema/FacilityCollection.json
schema/dmtf/json-schema/Filter.v1_0_1.json
schema/dmtf/json-schema/FilterCollection.json
schema/dmtf/json-schema/GraphicsController.v1_0_1.json
schema/dmtf/json-schema/GraphicsControllerCollection.json
schema/dmtf/json-schema/Heater.v1_0_1.json
schema/dmtf/json-schema/HeaterCollection.json
schema/dmtf/json-schema/HeaterMetrics.v1_0_1.json
schema/dmtf/json-schema/HostInterface.v1_3_1.json
schema/dmtf/json-schema/HostInterfaceCollection.json
schema/dmtf/json-schema/Job.v1_2_3.json
schema/dmtf/json-schema/JobCollection.json
schema/dmtf/json-schema/JobService.v1_0_5.json
schema/dmtf/json-schema/Key.v1_4_0.json
schema/dmtf/json-schema/KeyCollection.json
schema/dmtf/json-schema/KeyPolicy.v1_0_0.json
schema/dmtf/json-schema/KeyPolicyCollection.json
schema/dmtf/json-schema/KeyService.v1_0_0.json
schema/dmtf/json-schema/LeakDetection.v1_0_0.json
schema/dmtf/json-schema/LeakDetector.v1_0_1.json
schema/dmtf/json-schema/LeakDetectorCollection.json
schema/dmtf/json-schema/License.v1_1_2.json
schema/dmtf/json-schema/LicenseCollection.json
schema/dmtf/json-schema/LicenseService.v1_1_1.json
schema/dmtf/json-schema/Manifest.v1_1_1.json
schema/dmtf/json-schema/MediaController.v1_3_1.json
schema/dmtf/json-schema/MediaControllerCollection.json
schema/dmtf/json-schema/MemoryChunks.v1_6_1.json
schema/dmtf/json-schema/MemoryChunksCollection.json
schema/dmtf/json-schema/MemoryDomain.v1_5_0.json
schema/dmtf/json-schema/MemoryDomainCollection.json
schema/dmtf/json-schema/MemoryMetrics.v1_7_2.json
schema/dmtf/json-schema/MemoryRegion.v1_0_1.json
schema/dmtf/json-schema/MemoryRegionCollection.json
schema/dmtf/json-schema/NetworkAdapter.v1_10_0.json
schema/dmtf/json-schema/NetworkAdapterCollection.json
schema/dmtf/json-schema/NetworkAdapterMetrics.v1_0_1.json
schema/dmtf/json-schema/NetworkDeviceFunction.v1_9_1.json
schema/dmtf/json-schema/NetworkDeviceFunctionCollection.json
schema/dmtf/json-schema/NetworkDeviceFunctionMetrics.v1_1_2.json
schema/dmtf/json-schema/NetworkInterface.v1_2_1.json
schema/dmtf/json-schema/NetworkInterfaceCollection.json
schema/dmtf/json-schema/NetworkPort.v1_4_2.json
schema/dmtf/json-schema/NetworkPortCollection.json
schema/dmtf/json-schema/OperatingSystem.v1_0_1.json
schema/dmtf/json-schema/OutboundConnection.v1_0_1.json
schema/dmtf/json-schema/OutboundConnectionCollection.json
schema/dmtf/json-schema/Outlet.v1_4_2.json
schema/dmtf/json-schema/OutletCollection.json
schema/dmtf/json-schema/OutletGroup.v1_1_2.json
schema/dmtf/json-schema/OutletGroupCollection.json
schema/dmtf/json-schema/PortMetrics.v1_5_1.json
schema/dmtf/json-schema/PowerDistribution.v1_3_3.json
schema/dmtf/json-schema/PowerDistributionCollection.json
schema/dmtf/json-schema/PowerDistributionMetrics.v1_3_1.json
schema/dmtf/json-schema/PowerDomain.v1_2_1.json
schema/dmtf/json-schema/PowerDomainCollection.json
schema/dmtf/json-schema/PowerEquipment.v1_2_1.json
schema/dmtf/json-schema/PowerSupplyMetrics.v1_1_1.json
schema/dmtf/json-schema/PrivilegeRegistry.v1_1_4.json
schema/dmtf/json-schema/ProcessorMetrics.v1_6_3.json
schema/dmtf/json-schema/Pump.v1_0_1.json
schema/dmtf/json-schema/PumpCollection.json
schema/dmtf/json-schema/RegisteredClient.v1_1_1.json
schema/dmtf/json-schema/RegisteredClientCollection.json
schema/dmtf/json-schema/Reservoir.v1_0_1.json
schema/dmtf/json-schema/ReservoirCollection.json
schema/dmtf/json-schema/ResolutionStep.v1_0_0.json
schema/dmtf/json-schema/ResourceBlock.v1_4_2.json
schema/dmtf/json-schema/ResourceBlockCollection.json
schema/dmtf/json-schema/RouteEntry.v1_0_1.json
schema/dmtf/json-schema/RouteEntryCollection.json
schema/dmtf/json-schema/RouteSetEntry.v1_0_1.json
schema/dmtf/json-schema/RouteSetEntryCollection.json
schema/dmtf/json-schema/Schedule.v1_2_4.json
schema/dmtf/json-schema/SecureBoot.v1_1_1.json
schema/dmtf/json-schema/SecureBootDatabase.v1_0_2.json
schema/dmtf/json-schema/SecureBootDatabaseCollection.json
schema/dmtf/json-schema/SecurityPolicy.v1_0_1.json
schema/dmtf/json-schema/SerialInterface.v1_2_0.json
schema/dmtf/json-schema/SerialInterfaceCollection.json
schema/dmtf/json-schema/ServiceConditions.v1_0_0.json
schema/dmtf/json-schema/Signature.v1_0_2.json
schema/dmtf/json-schema/SignatureCollection.json
schema/dmtf/json-schema/SimpleStorage.v1_3_1.json
schema/dmtf/json-schema/SimpleStorageCollection.json
schema/dmtf/json-schema/StorageControllerMetrics.v1_0_2.json
schema/dmtf/json-schema/Switch.v1_9_2.json
schema/dmtf/json-schema/SwitchCollection.json
schema/dmtf/json-schema/SwitchMetrics.v1_0_1.json
schema/dmtf/json-schema/ThermalEquipment.v1_1_1.json
schema/dmtf/json-schema/TrustedComponent.v1_3_0.json
schema/dmtf/json-schema/TrustedComponentCollection.json
schema/dmtf/json-schema/USBController.v1_0_0.json
schema/dmtf/json-schema/USBControllerCollection.json
schema/dmtf/json-schema/VCATEntry.v1_0_2.json
schema/dmtf/json-schema/VCATEntryCollection.json
schema/dmtf/json-schema/VLanNetworkInterface.v1_3_0.json
schema/dmtf/json-schema/VLanNetworkInterfaceCollection.json
schema/dmtf/json-schema/Volume.v1_10_0.json
schema/dmtf/json-schema/VolumeCollection.json
schema/dmtf/json-schema/Zone.v1_6_2.json
schema/dmtf/json-schema/ZoneCollection.json
schema/dmtf/json-schema/redfish-payload-annotations.v1_2_2.json
720c989811-May-2024 Ed Tanous <ed@tanous.net>

Move existing schemas into folders

Reorganize the existing schemas into folders under redfish core.

The existing schema system has some problems:
1. It's hard to add new schemas
2. We have to rerun

Move existing schemas into folders

Reorganize the existing schemas into folders under redfish core.

The existing schema system has some problems:
1. It's hard to add new schemas
2. We have to rerun the script any time we want to change what schemas
we use.
3. Adding schemas optionally takes effort

In an effort to combat this, this patchset moves all the existing
schemas into folders that represent their namespace names

dmtf/csdl represents the CSDL that dmtf publishes
oem/openbmc represents the CSDL that OpenBMC publishes

In theory, this means that in the future we can relax OEM_SCHEMAS.md,
and allow folks to possibly implement their own schemas in a way that
doesn't have to effect all other systems.

This also has the advantage of not requiring changes to
update_schemas.py when we want to add, remove, or modify what version of
a schema we use. "current" schemas are just symlinks, so they can be
updated using git, and not necessarily have merge conflicts with one
another.

Tested: Redfish service validator passes.

Change-Id: I6d4a130bba4cb874ef00a06ed579cc67f53dc7ae
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


/openbmc/bmcweb/.prettierignore
include/schemas.hpp
schema/dmtf/csdl/AccountService_v1.xml
schema/dmtf/csdl/ActionInfo_v1.xml
schema/dmtf/csdl/AggregationService_v1.xml
schema/dmtf/csdl/AggregationSourceCollection_v1.xml
schema/dmtf/csdl/AggregationSource_v1.xml
schema/dmtf/csdl/Assembly_v1.xml
schema/dmtf/csdl/AttributeRegistry_v1.xml
schema/dmtf/csdl/Bios_v1.xml
schema/dmtf/csdl/CableCollection_v1.xml
schema/dmtf/csdl/Cable_v1.xml
schema/dmtf/csdl/CertificateCollection_v1.xml
schema/dmtf/csdl/CertificateLocations_v1.xml
schema/dmtf/csdl/CertificateService_v1.xml
schema/dmtf/csdl/Certificate_v1.xml
schema/dmtf/csdl/ChassisCollection_v1.xml
schema/dmtf/csdl/Chassis_v1.xml
schema/dmtf/csdl/ComponentIntegrityCollection_v1.xml
schema/dmtf/csdl/ComponentIntegrity_v1.xml
schema/dmtf/csdl/ComputerSystemCollection_v1.xml
schema/dmtf/csdl/ComputerSystem_v1.xml
schema/dmtf/csdl/DriveCollection_v1.xml
schema/dmtf/csdl/Drive_v1.xml
schema/dmtf/csdl/EnvironmentMetrics_v1.xml
schema/dmtf/csdl/EthernetInterfaceCollection_v1.xml
schema/dmtf/csdl/EthernetInterface_v1.xml
schema/dmtf/csdl/EventDestinationCollection_v1.xml
schema/dmtf/csdl/EventDestination_v1.xml
schema/dmtf/csdl/EventService_v1.xml
schema/dmtf/csdl/Event_v1.xml
schema/dmtf/csdl/FabricAdapterCollection_v1.xml
schema/dmtf/csdl/FabricAdapter_v1.xml
schema/dmtf/csdl/FanCollection_v1.xml
schema/dmtf/csdl/Fan_v1.xml
schema/dmtf/csdl/IPAddresses_v1.xml
schema/dmtf/csdl/JsonSchemaFileCollection_v1.xml
schema/dmtf/csdl/JsonSchemaFile_v1.xml
schema/dmtf/csdl/LogEntryCollection_v1.xml
schema/dmtf/csdl/LogEntry_v1.xml
schema/dmtf/csdl/LogServiceCollection_v1.xml
schema/dmtf/csdl/LogService_v1.xml
schema/dmtf/csdl/ManagerAccountCollection_v1.xml
schema/dmtf/csdl/ManagerAccount_v1.xml
schema/dmtf/csdl/ManagerCollection_v1.xml
schema/dmtf/csdl/ManagerDiagnosticData_v1.xml
schema/dmtf/csdl/ManagerNetworkProtocol_v1.xml
schema/dmtf/csdl/Manager_v1.xml
schema/dmtf/csdl/MemoryCollection_v1.xml
schema/dmtf/csdl/Memory_v1.xml
schema/dmtf/csdl/MessageRegistryCollection_v1.xml
schema/dmtf/csdl/MessageRegistryFileCollection_v1.xml
schema/dmtf/csdl/MessageRegistryFile_v1.xml
schema/dmtf/csdl/MessageRegistry_v1.xml
schema/dmtf/csdl/Message_v1.xml
schema/dmtf/csdl/MetricDefinitionCollection_v1.xml
schema/dmtf/csdl/MetricDefinition_v1.xml
schema/dmtf/csdl/MetricReportCollection_v1.xml
schema/dmtf/csdl/MetricReportDefinitionCollection_v1.xml
schema/dmtf/csdl/MetricReportDefinition_v1.xml
schema/dmtf/csdl/MetricReport_v1.xml
schema/dmtf/csdl/OperatingConfigCollection_v1.xml
schema/dmtf/csdl/OperatingConfig_v1.xml
schema/dmtf/csdl/PCIeDeviceCollection_v1.xml
schema/dmtf/csdl/PCIeDevice_v1.xml
schema/dmtf/csdl/PCIeFunctionCollection_v1.xml
schema/dmtf/csdl/PCIeFunction_v1.xml
schema/dmtf/csdl/PCIeSlots_v1.xml
schema/dmtf/csdl/PhysicalContext_v1.xml
schema/dmtf/csdl/PortCollection_v1.xml
schema/dmtf/csdl/Port_v1.xml
schema/dmtf/csdl/PowerSubsystem_v1.xml
schema/dmtf/csdl/PowerSupplyCollection_v1.xml
schema/dmtf/csdl/PowerSupply_v1.xml
schema/dmtf/csdl/Power_v1.xml
schema/dmtf/csdl/Privileges_v1.xml
schema/dmtf/csdl/ProcessorCollection_v1.xml
schema/dmtf/csdl/Processor_v1.xml
schema/dmtf/csdl/Protocol_v1.xml
schema/dmtf/csdl/RedfishError_v1.xml
schema/dmtf/csdl/RedfishExtensions_v1.xml
schema/dmtf/csdl/Redundancy_v1.xml
schema/dmtf/csdl/Resource_v1.xml
schema/dmtf/csdl/RoleCollection_v1.xml
schema/dmtf/csdl/Role_v1.xml
schema/dmtf/csdl/SensorCollection_v1.xml
schema/dmtf/csdl/Sensor_v1.xml
schema/dmtf/csdl/ServiceRoot_v1.xml
schema/dmtf/csdl/SessionCollection_v1.xml
schema/dmtf/csdl/SessionService_v1.xml
schema/dmtf/csdl/Session_v1.xml
schema/dmtf/csdl/Settings_v1.xml
schema/dmtf/csdl/SoftwareInventoryCollection_v1.xml
schema/dmtf/csdl/SoftwareInventory_v1.xml
schema/dmtf/csdl/StorageCollection_v1.xml
schema/dmtf/csdl/StorageControllerCollection_v1.xml
schema/dmtf/csdl/StorageController_v1.xml
schema/dmtf/csdl/Storage_v1.xml
schema/dmtf/csdl/TaskCollection_v1.xml
schema/dmtf/csdl/TaskService_v1.xml
schema/dmtf/csdl/Task_v1.xml
schema/dmtf/csdl/TelemetryService_v1.xml
schema/dmtf/csdl/ThermalMetrics_v1.xml
schema/dmtf/csdl/ThermalSubsystem_v1.xml
schema/dmtf/csdl/Thermal_v1.xml
schema/dmtf/csdl/TriggersCollection_v1.xml
schema/dmtf/csdl/Triggers_v1.xml
schema/dmtf/csdl/UpdateService_v1.xml
schema/dmtf/csdl/VirtualMediaCollection_v1.xml
schema/dmtf/csdl/VirtualMedia_v1.xml
schema/dmtf/json-schema/AccountService.v1_15_0.json
schema/dmtf/json-schema/ActionInfo.v1_4_1.json
schema/dmtf/json-schema/AggregationService.v1_0_2.json
schema/dmtf/json-schema/AggregationSource.v1_4_0.json
schema/dmtf/json-schema/AggregationSourceCollection.json
schema/dmtf/json-schema/Assembly.v1_5_0.json
schema/dmtf/json-schema/AttributeRegistry.v1_3_8.json
schema/dmtf/json-schema/Bios.v1_2_2.json
schema/dmtf/json-schema/Cable.v1_2_2.json
schema/dmtf/json-schema/CableCollection.json
schema/dmtf/json-schema/Certificate.v1_8_1.json
schema/dmtf/json-schema/CertificateCollection.json
schema/dmtf/json-schema/CertificateLocations.v1_0_3.json
schema/dmtf/json-schema/CertificateService.v1_0_4.json
schema/dmtf/json-schema/Chassis.v1_25_0.json
schema/dmtf/json-schema/ChassisCollection.json
schema/dmtf/json-schema/ComponentIntegrity.v1_2_2.json
schema/dmtf/json-schema/ComponentIntegrityCollection.json
schema/dmtf/json-schema/ComputerSystem.v1_22_0.json
schema/dmtf/json-schema/ComputerSystemCollection.json
schema/dmtf/json-schema/Drive.v1_18_0.json
schema/dmtf/json-schema/DriveCollection.json
schema/dmtf/json-schema/EnvironmentMetrics.v1_3_1.json
schema/dmtf/json-schema/EthernetInterface.v1_12_0.json
schema/dmtf/json-schema/EthernetInterfaceCollection.json
schema/dmtf/json-schema/Event.v1_10_0.json
schema/dmtf/json-schema/EventDestination.v1_14_0.json
schema/dmtf/json-schema/EventDestinationCollection.json
schema/dmtf/json-schema/EventService.v1_10_1.json
schema/dmtf/json-schema/FabricAdapter.v1_5_2.json
schema/dmtf/json-schema/FabricAdapterCollection.json
schema/dmtf/json-schema/Fan.v1_5_1.json
schema/dmtf/json-schema/FanCollection.json
schema/dmtf/json-schema/IPAddresses.v1_1_4.json
schema/dmtf/json-schema/JsonSchemaFile.v1_1_4.json
schema/dmtf/json-schema/JsonSchemaFileCollection.json
schema/dmtf/json-schema/LogEntry.v1_16_0.json
schema/dmtf/json-schema/LogEntryCollection.json
schema/dmtf/json-schema/LogService.v1_6_0.json
schema/dmtf/json-schema/LogServiceCollection.json
schema/dmtf/json-schema/Manager.v1_19_0.json
schema/dmtf/json-schema/ManagerAccount.v1_12_0.json
schema/dmtf/json-schema/ManagerAccountCollection.json
schema/dmtf/json-schema/ManagerCollection.json
schema/dmtf/json-schema/ManagerDiagnosticData.v1_2_2.json
schema/dmtf/json-schema/ManagerNetworkProtocol.v1_10_0.json
schema/dmtf/json-schema/Memory.v1_19_0.json
schema/dmtf/json-schema/MemoryCollection.json
schema/dmtf/json-schema/Message.v1_2_0.json
schema/dmtf/json-schema/MessageRegistry.v1_6_2.json
schema/dmtf/json-schema/MessageRegistryCollection.json
schema/dmtf/json-schema/MessageRegistryFile.v1_1_4.json
schema/dmtf/json-schema/MessageRegistryFileCollection.json
schema/dmtf/json-schema/MetricDefinition.v1_3_3.json
schema/dmtf/json-schema/MetricDefinitionCollection.json
schema/dmtf/json-schema/MetricReport.v1_5_0.json
schema/dmtf/json-schema/MetricReportCollection.json
schema/dmtf/json-schema/MetricReportDefinition.v1_4_5.json
schema/dmtf/json-schema/MetricReportDefinitionCollection.json
schema/dmtf/json-schema/OperatingConfig.v1_0_3.json
schema/dmtf/json-schema/OperatingConfigCollection.json
schema/dmtf/json-schema/PCIeDevice.v1_13_0.json
schema/dmtf/json-schema/PCIeDeviceCollection.json
schema/dmtf/json-schema/PCIeFunction.v1_5_1.json
schema/dmtf/json-schema/PCIeFunctionCollection.json
schema/dmtf/json-schema/PCIeSlots.v1_6_0.json
schema/dmtf/json-schema/PhysicalContext.json
schema/dmtf/json-schema/Port.v1_11_0.json
schema/dmtf/json-schema/PortCollection.json
schema/dmtf/json-schema/Power.v1_7_2.json
schema/dmtf/json-schema/PowerSubsystem.v1_1_1.json
schema/dmtf/json-schema/PowerSupply.v1_5_3.json
schema/dmtf/json-schema/PowerSupplyCollection.json
schema/dmtf/json-schema/Privileges.v1_0_5.json
schema/dmtf/json-schema/Processor.v1_19_0.json
schema/dmtf/json-schema/ProcessorCollection.json
schema/dmtf/json-schema/Protocol.json
schema/dmtf/json-schema/Redundancy.v1_4_1.json
schema/dmtf/json-schema/Resource.v1_18_0.json
schema/dmtf/json-schema/Role.v1_3_1.json
schema/dmtf/json-schema/RoleCollection.json
schema/dmtf/json-schema/Sensor.v1_8_1.json
schema/dmtf/json-schema/SensorCollection.json
schema/dmtf/json-schema/ServiceRoot.v1_16_1.json
schema/dmtf/json-schema/Session.v1_7_1.json
schema/dmtf/json-schema/SessionCollection.json
schema/dmtf/json-schema/SessionService.v1_1_8.json
schema/dmtf/json-schema/Settings.v1_3_5.json
schema/dmtf/json-schema/SoftwareInventory.v1_10_1.json
schema/dmtf/json-schema/SoftwareInventoryCollection.json
schema/dmtf/json-schema/Storage.v1_15_1.json
schema/dmtf/json-schema/StorageCollection.json
schema/dmtf/json-schema/StorageController.v1_7_2.json
schema/dmtf/json-schema/StorageControllerCollection.json
schema/dmtf/json-schema/Task.v1_7_3.json
schema/dmtf/json-schema/TaskCollection.json
schema/dmtf/json-schema/TaskService.v1_2_0.json
schema/dmtf/json-schema/TelemetryService.v1_3_3.json
schema/dmtf/json-schema/Thermal.v1_7_2.json
schema/dmtf/json-schema/ThermalMetrics.v1_3_1.json
schema/dmtf/json-schema/ThermalSubsystem.v1_3_1.json
schema/dmtf/json-schema/Triggers.v1_3_2.json
schema/dmtf/json-schema/TriggersCollection.json
schema/dmtf/json-schema/UpdateService.v1_13_0.json
schema/dmtf/json-schema/VirtualMedia.v1_6_3.json
schema/dmtf/json-schema/VirtualMediaCollection.json
schema/dmtf/json-schema/odata-v4.json
schema/dmtf/json-schema/odata.v4_0_5.json
schema/dmtf/json-schema/redfish-error.v1_0_1.json
schema/dmtf/json-schema/redfish-payload-annotations-v1.json
schema/dmtf/json-schema/redfish-schema-v1.json
schema/dmtf/json-schema/redfish-schema.v1_10_0.json
schema/oem/openbmc/csdl/OemComputerSystem_v1.xml
schema/oem/openbmc/csdl/OemManager_v1.xml
schema/oem/openbmc/csdl/OemVirtualMedia_v1.xml
schema/oem/openbmc/csdl/OpenBMCAccountService_v1.xml
schema/oem/openbmc/json-schema/OemAccountService.json
schema/oem/openbmc/json-schema/OemComputerSystem.json
schema/oem/openbmc/json-schema/OemManager.json
schema/oem/openbmc/json-schema/OemVirtualMedia.json
/openbmc/bmcweb/scripts/generate_schema_collections.py
/openbmc/bmcweb/scripts/generate_schema_enums.py
/openbmc/bmcweb/scripts/update_schemas.py
/openbmc/bmcweb/static/redfish/v1/$metadata/index.xml
/openbmc/bmcweb/static/redfish/v1/odata/index.json
4a8f5d4324-May-2024 Johnathan Mantey <johnathanx.mantey@intel.com>

Improve IPv4 default gateway removal

Removing the IPv4 default gateway doesn't work correctly when only a
single static address has been assigned. This is expected to be the
common mode of operation

Improve IPv4 default gateway removal

Removing the IPv4 default gateway doesn't work correctly when only a
single static address has been assigned. This is expected to be the
common mode of operation, and needs to work correctly.

When more than one static address is managed it's necessary to
preserve the existing gateway. If any address is left unmodified,
added, or is modified the gateway must be preserved.

Tested:
Turned off DHCPv4, and assigned a single static address
Sent a PATCH null to delete the address.
Confirmed the default gateway got cleared.

Assigned two static addresses.
Sent a PATCH {}, null
Sent PATCH null
Confirmed expected default gateway handling
Assigned two static addresses.
Sent a PATCH null, {}
Sent PATCH null
Confirmed expected default gateway handling

Change-Id: I85c4a0533f9468b424602aeb636b8f4f218a9a13
Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com>

show more ...

bdbfae2a22-May-2024 Ed Tanous <ed@tanous.net>

Fix crash in SSE

When multiple SSE sockets are present, this code has a potential to
crash, given the vector is being modified in this loop.

Tested:
Reproduction of this is not reliable. Inspectio

Fix crash in SSE

When multiple SSE sockets are present, this code has a potential to
crash, given the vector is being modified in this loop.

Tested:
Reproduction of this is not reliable. Inspection only.

Change-Id: I66d4b55b5c0ad46d41d34dd6558b50c5f6fcfc12
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

e67543c220-May-2024 Ed Tanous <ed@tanous.net>

Remove openbmc-rest includes

These includes seem to have snuck in. In theory nothing in redfish
should be taking a #include in anything in openbmc-rest.

Tested: Code compiles

Change-Id: Ifec2a9b1

Remove openbmc-rest includes

These includes seem to have snuck in. In theory nothing in redfish
should be taking a #include in anything in openbmc-rest.

Tested: Code compiles

Change-Id: Ifec2a9b18f296870f67b15f98fc44c67050e9e28
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

253f11b816-May-2024 Ed Tanous <ed@tanous.net>

Allow configuring "bmc" and "system"

In the early days of bmcweb, we made two pretty critical assumptions;
First, is that a given platform would only have a single BMC instance
(represented as "bmc"

Allow configuring "bmc" and "system"

In the early days of bmcweb, we made two pretty critical assumptions;
First, is that a given platform would only have a single BMC instance
(represented as "bmc") and a single host instance (represented as
"system").
Second we assumed that, given that Redfish suggests against hardcoding
URIs in client implementation and leaves them freeform, clients would
code to the standard.

Our own webui-vue hardcodes Redfish URIs [1], and the documentation is
littered with examples of hardcoded curl examples of hardcoding these
URIs. That bug was filed in 2020, and the issue has only gotten worse
over time.

This patchset is an attempt to give a target that we can start solving
these issues, without trying to boil the ocean and fix all clients in
parallel.

This commit adds the meson options
redfish-manager-uri-name
and
redfish-system-uri-name

These are used to control the "name" that bmcweb places in the fixed
locations in the ManagerCollection and ComputerSystemCollection schemas.

Note, managers is added, but is not currently testable. It will be
iterated on over time.

Tested:
Changed the URL options to "edsbmc" and "edssystem" in meson options.

Redfish service validator passes.
URLs appear changed when walking the tree.

[1] https://github.com/openbmc/webui-vue/issues/43

Change-Id: I4b44685067051512bd065da8c2e3db68ae5ce23a
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

e518ef3216-May-2024 Ravi Teja <raviteja28031990@gmail.com>

Remove sessions on user password update

When a user's password is changed, existing Redfish sessions for that
user, created with the old password, continue to work.

As per OWASP session management,

Remove sessions on user password update

When a user's password is changed, existing Redfish sessions for that
user, created with the old password, continue to work.

As per OWASP session management, "The session ID must be renewed or
regenerated by the web application after any privilege level change
within the associated user session... Common scenarios to consider
include; password changes, permission changes, or switching from a
regular user role to an administrator role within the web application."
[1] https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html

This commit removes existing user sessions when the user's password is
changed. This commit leaves the current session in place though a new
removeSessionsByUsernameExceptSession().

This commit doesn't completely get us fully to what owasp says but is a
start.

Tested:
Create some users:
```
curl -k -v -X POST -H "Content-Type: application/json" \
https://$bmc/redfish/v1/AccountService/Accounts/ -d \
'{"UserName":"testadminuser","Password":"<password>","RoleId":"Administrator","Enabled":true}'
```

Using basic auth was able to update own password and another user's
password.

Using token auth, verified the current session did not get deleted but
other sessions from that user did.

```
curl -k -H "Content-Type: application/json" -X POST -D headers.txt \
https://${bmc}/redfish/v1/SessionService/Sessions -d \
'{"UserName":"testadminuser", "Password":"<password>"}'
```

```
curl -k -v -X PATCH -H "X-Auth-Token: $token" \
-H "Content-Type:application/json" \
https://$bmc/redfish/v1/AccountService/Accounts/testadminuser \
-d '{"Password":"<password>"}'
```

Verified when changing another user's password all sessions were
dropped.

Change-Id: I4de60b84964a6b29c021dc3a2bece9ed4bc09eac
Signed-off-by: Ravi Teja <raviteja28031990@gmail.com>

show more ...

c71b6c9929-Apr-2024 Jagpal Singh Gill <paligill@gmail.com>

updateservice: refactor task creation

Refactor task creation into a separate function so it can be used from
different places in code. The new usage of this function will be from
start update interf

updateservice: refactor task creation

Refactor task creation into a separate function so it can be used from
different places in code. The new usage of this function will be from
start update interface based flow. More details refer to -
https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/65738
https://gerrit.openbmc.org/c/openbmc/docs/+/65739

Tested: Firmware update using curl.
Change-Id: I5e8a0ab98f49657178ee733fa4d34fbf40a7b1f3
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>

show more ...

ef93eab317-Apr-2024 Jagpal Singh Gill <paligill@gmail.com>

updateservice: refactor parse multi-part forms

Refactor parsing multi-part forms into a different function for using it
in legacy vs start update flows. More more details refer to -
https://gerrit.o

updateservice: refactor parse multi-part forms

Refactor parsing multi-part forms into a different function for using it
in legacy vs start update flows. More more details refer to -
https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/65738
https://gerrit.openbmc.org/c/openbmc/docs/+/65739

Tested: Used curl to test firmware update.

Change-Id: I2ec1ec9f4ac04349a1fbd588664f2d51bae827ea
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>

show more ...

8332831609-May-2024 Ed Tanous <ed@tanous.net>

Fix lesser used options

25b54dba775b31021a3a4677eb79e9771bcb97f7 missed several cases where we
had ifndef instead of ifdef. because these weren't the defaults, these
don't show up as failures when

Fix lesser used options

25b54dba775b31021a3a4677eb79e9771bcb97f7 missed several cases where we
had ifndef instead of ifdef. because these weren't the defaults, these
don't show up as failures when testing.

Tested: Redfish service validator passes. Inspection primarily.
Mechanical change.

Change-Id: I3f6915a97eb44d071795aed76476c6bee7e8ed27
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

c72503f306-May-2024 Ed Tanous <ed@tanous.net>

Fix TFTP merge conflict

Static analysis now shows this code as "dead", even though it's not.
This is a merge conflict that was handled wrong.

Tested: inspection only. Suspect TFTP will now work.

Fix TFTP merge conflict

Static analysis now shows this code as "dead", even though it's not.
This is a merge conflict that was handled wrong.

Tested: inspection only. Suspect TFTP will now work.

Change-Id: I51e52d62c51b251baf4c6ae74b100c1eda95603d
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

e5cf777e03-Apr-2024 Ed Tanous <ed@tanous.net>

Add https parsing

This is yet another step in parsing HTTP requests.

Tested:
'''
curl -vvvv -k --user "root:0penBmc" -H "Content-Type: application/json" \
-X POST https://192.168.7.2/redfish/v1/Upd

Add https parsing

This is yet another step in parsing HTTP requests.

Tested:
'''
curl -vvvv -k --user "root:0penBmc" -H "Content-Type: application/json" \
-X POST https://192.168.7.2/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate \
-d '{ \
"TransferProtocol":"TFTP", \
"ImageURI":"https://192.168.7.1/myfile.bin" \
}'
'''

Returns ActionParameterNotSupported

TransferProtocol: Omitted
ImageURI: https://192.168.7.1/myfile.bin
Returns ActionParameterNotSupported

TransferProtocol: Omitted
ImageURI: 192.168.7.1/myfile.bin
Returns ActionParameterValueTypeError

TransferProtocol: Bad
ImageURI: https:/192.168.7.1/myfile.bin
Returns: ActionParameterNotSupported

No changes to GET requests, so Redfish Service Validator not necessary.

Change-Id: Ibf4b69877031f3b8617412c06d40f2d0d0827ac3
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

17c4724508-Apr-2024 Ed Tanous <ed@tanous.net>

Move logging args

Args captured by logging functions should be captured by rvalue, and use
std::forward to get perfect forwarding. In addition, separate out the
various std::out lines.

While we're

Move logging args

Args captured by logging functions should be captured by rvalue, and use
std::forward to get perfect forwarding. In addition, separate out the
various std::out lines.

While we're here, also try to optimize a little. We should ideally be
writing each log line to the output once, and ideally not use iostreams,
which induce a lot of overhead.

Similar to spdlog[1] (which at one point this codebase used), construct
the string, then call fwrite and fflush once, rather than calling
std::cout repeatedly.

Now that we don't have a dependency on iostreams anymore, we can remove
it from the places where it has snuck in.

Tested:
Logging still functions as before. Logs present.

[1] https://github.com/gabime/spdlog/blob/27cb4c76708608465c413f6d0e6b8d99a4d84302/include/spdlog/sinks/stdout_sinks-inl.h#L70C7-L70C13

Change-Id: I1dd4739e06eb506d68989a066d122109b71b92cd
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

743eb1c003-Apr-2024 Johnathan Mantey <johnathanx.mantey@intel.com>

Delete IPv4 default gateway when deleting an IPv4 static address

The Redfish schema for creating static IPv4 addresses requires the IP
address, the netmask, and a gateway IP address. There's an issu

Delete IPv4 default gateway when deleting an IPv4 static address

The Redfish schema for creating static IPv4 addresses requires the IP
address, the netmask, and a gateway IP address. There's an issue
inherent with this method. A network interface is only permitted a
single IPv4 default gateway. If more than one IPv4 static address is
assigned to the NIC each entry is processed, and potentially
conflicting default gateways may be assigned. The last entry processed
assigns the IPv4 default gateway. This behavior will cause unexpected
results. It is necessary to prevent assigning mismatched default
gateway values.

The IPv4 address removal process requires additional work also. The
default gateway value is left in place even after the final static
IPv4 address is removed. It is necessary to perform an additional
action to clear the gateway address. Without explicit removal the
network is left in a condition that may prevent IP traffic from being
able to be sent from the BMC. This even in the event that the NIC is
actively being managed via DHCPv4.

Tested:
Disabled DHCPv4 on a secondary NIC (eth1)
Assigned a static IPv4 address.
Inspected the systemd-networkd config file in order to confirm the
Gateway entry is added. This is done to be explicitly sure the
network.config file has the Gateway entry.
Sent a Redfish PATCH command to delete the static IPv4 address.
Confirmed that the systemd-networkd config file no longer contained a
Gateway entry. This is done to be explicitly sure the network.config
file no longer contains the Gateway entry.
Created a PATCH containing multiple IPv4 static addresses all with
different Gateway values. Confirmed an error is returned when a
mismatch occurs in the Gateway values.
Assigned a new static address, and then restored DHCPv4.
Confirmed that the default gateway entry in the config file is removed.
Submitted a delete request for the remaining static IPv4 address that
is now orphaned by re-enabling DHCPv4. This removed the static IPv4
address.

Change-Id: Ia12cf2a38ba86266ce71dc28475b0d07b7e09ebc
Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com>

show more ...

102a4cda15-Apr-2024 Jonathan Doman <jonathan.doman@intel.com>

Manage Request with shared_ptr

This is an attempt to solve a class of use-after-move bugs on the
Request objects which have popped up several times. This more clearly
identifies code which owns the

Manage Request with shared_ptr

This is an attempt to solve a class of use-after-move bugs on the
Request objects which have popped up several times. This more clearly
identifies code which owns the Request objects and has a need to keep it
alive. Currently it's just the `Connection` (or `HTTP2Connection`)
(which needs to access Request headers while sending the response), and
the `validatePrivilege()` function (which needs to temporarily own the
Request while doing an asynchronous D-Bus call). Route handlers are
provided a non-owning `Request&` for immediate use and required to not
hold the `Request&` for future use.

Tested: Redfish validator passes (with a few unrelated fails).
Redfish URLs are sent to a browser as HTML instead of raw JSON.

Change-Id: Id581fda90b6bceddd08a5dc7ff0a04b91e7394bf
Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

1aa375b813-Apr-2024 Ed Tanous <ed@tanous.net>

Implement client certificate schemas

The Redfish standard seems to have caught up with some of the OEM
schemas and features we already have, namely MutualTLS and Basic Auth
disablement.

This commit

Implement client certificate schemas

The Redfish standard seems to have caught up with some of the OEM
schemas and features we already have, namely MutualTLS and Basic Auth
disablement.

This commit implements most of the GET parameters for which we already
have backends. ClientCertificate is pointed to the same resources as
TrustStore.

Tested: generate_auth_certificates.py succeeds, and shows a certificate
in ClientCertificate collection

Get AccountService, and ClientAuthentication/Certificates returns
expected values.

Redfish service validator passes.

Change-Id: If18e34e9dfa8f38293fceff288596811afd16d4a
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

5ffd11f202-May-2024 Gunnar Mills <gmills@us.ibm.com>

Fix regression in CrashDump

25b54db introduced a bug where CrashDump was not looking at the correct
option. Was using BMCWEB_REDFISH_DUMP_LOG instead of the correct
BMCWEB_REDFISH_CPU_LOG.

This was

Fix regression in CrashDump

25b54db introduced a bug where CrashDump was not looking at the correct
option. Was using BMCWEB_REDFISH_DUMP_LOG instead of the correct
BMCWEB_REDFISH_CPU_LOG.

This was caught in CI by a system that doesn't have CrashDump enabled
but was hitting:
1 failGet errors in /redfish/v1/Systems/system/LogServices/Crashdump

Tested: None. Visually inspected and this matches
redfish-core/src/redfish.cpp.

Change-Id: Ia6e72e5bbeaaa246fbbc5bcb2a525062e63d7d29
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>

show more ...

36a59eaf01-May-2024 Ed Tanous <ed@tanous.net>

Fix regression in LogService

25b54db introduced an inadvertent inversion in options. Admittedly,
this option (redfish-dbus-entries) chose to override URLs instead of
creating new ones, which makes

Fix regression in LogService

25b54db introduced an inadvertent inversion in options. Admittedly,
this option (redfish-dbus-entries) chose to override URLs instead of
creating new ones, which makes it incompatible. Normally we'd require
unique URIs for each entry to make this error not possible, and I
believe that this is the only instance of us registering two handlers
for one url/verb.

Tested: Romulus now boots and functions in qemu. GET /redfish/v1
returns results.

Change-Id: I6125a5a0242b6cfc54ff19866665227c97f45d0a
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

25b54dba17-Apr-2024 Ed Tanous <ed@tanous.net>

Bring consistency to config options

The configuration options that exist in bmcweb are an amalgimation of
CROW options, CMAKE options using #define, pre-bmcweb ifdef mechanisms
and meson options usi

Bring consistency to config options

The configuration options that exist in bmcweb are an amalgimation of
CROW options, CMAKE options using #define, pre-bmcweb ifdef mechanisms
and meson options using a config file. This history has led to a lot of
different ways to configure code in the codebase itself, which has led
to problems, and issues in consistency.

ifdef options do no compile time checking of code not within the branch.
This is good when you have optional dependencies, but not great when
you're trying to ensure both options compile.

This commit moves all internal configuration options to:
1. A namespace called bmcweb
2. A naming scheme matching the meson option. hyphens are replaced with
underscores, and the option is uppercased. This consistent transform
allows matching up option keys with their code counterparts, without
naming changes.
3. All options are bool true = enabled, and any options with _ENABLED or
_DISABLED postfixes have those postfixes removed. (note, there are
still some options with disable in the name, those are left as-is)
4. All options are now constexpr booleans, without an explicit compare.

To accomplish this, unfortunately an option list in config/meson.build
is required, given that meson doesn't provide a way to dump all options,
as is a manual entry in bmcweb_config.h.in, in addition to the
meson_options. This obsoletes the map in the main meson.build, which
helps some of the complexity.

Now that we've done this, we have some rules that will be documented.
1. Runtime behavior changes should be added as a constexpr bool to
bmcweb_config.h
2. Options that require optionally pulling in a dependency shall use an
ifdef, defined in the primary meson.build. (note, there are no
options that currently meet this class, but it's included for
completeness.)

Note, that this consolidation means that at configure time, all options
are printed. This is a good thing and allows direct comparison of
configs in log files.

Tested: Code compiles
Server boots, and shows options configured in the default build. (HTTPS,
log level, etc)

Change-Id: I94e79a56bcdc01755036e4e7278c7e69e25809ce
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

aca1749830-Apr-2024 Ed Tanous <ed@tanous.net>

Remove One chassis option

The One chassis option has been gone for a long time, but this ifdef
looks like it got missed. Remove it.

Tested: code compiles.

Change-Id: I013e824806e72bc608ae4383ce4b

Remove One chassis option

The One chassis option has been gone for a long time, but this ifdef
looks like it got missed. Remove it.

Tested: code compiles.

Change-Id: I013e824806e72bc608ae4383ce4ba707641aeec6
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

36c0f2a309-Feb-2024 Ed Tanous <ed@tanous.net>

Consolidate Vm implementations

As much as the two vm implementations SEEM different, the differences
largely lie in how we're getting the nbd proxy socket. One is relying
on launching a process (nb

Consolidate Vm implementations

As much as the two vm implementations SEEM different, the differences
largely lie in how we're getting the nbd proxy socket. One is relying
on launching a process (nbd-proxy), the other is getting the fd from
dbus. Given [1] exists and is in process, we need to have a plan for
getting these two VM implementations into one, once that patchset is
complete.

This commit: Splits the vm-websocket option into vm-websocket-provider,
providing two options, nbd-proxy, and virtual-media (the names of the
respective apps). To accomplish this, it moves the contents of
nbd-proxy into include/vm-websocket, so we can compare the similarities
and start consolidating.

The longer term intent is that the nbd-proxy option will be completely
removed, and the code deleted. This has the additional advantage that
we will no longer require the boost::process dependency, as all info
will be available on dbus.

As part of this, the nbd proxy websocket is also registered at /vm/0/0,
to be backward compatible with the old interfaces.

Tested: Code compiles. Need some help here.

[1] https://gerrit.openbmc.org/c/openbmc/jsnbd/+/49944

Change-Id: Iedbca169ea40d45a8775f843792b874a248bb594
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...

12345678910>>...77