Closed commonism closed 6 months ago
The static mockup included in the package was copied from the "public-rackmount1" mockup in DSP2043, but the copy has not been updated to reflect fixes or enhancements in that mockup...
Note that the emulator can use any mockup tree you choose. If you download DSP2043, you can serve up the "modern" verison of public-rackmount1.
Regardless, the package should be updated with the most recent "public-rackmount1" to make this current, or perhaps it should just be removed from the package as the mockups are readily available.
The emulator needs some mockup so the user doesn't need to perform another step before issuing the first Redfish requests. Otherwise, the emulator starts running unpopulated, the user issues a simple GET request and gets a 404 - and decides the Emulator is broken.
I'm looking into using the redfish interface emulator docker container for unit testing. I was unaware I'm expected to update mockups. I expected its protocol implementation to be validated accordingly, maybe even match the latest revision of the specification.
I've already evaluated Swordfish-API-Emulator as an alternative. Got mixed results as well.
Please let me know what I can expect this emulator to provide so I know what type of inconsistency with the protocol specification can be considered a bug.
Oh, you're expecting a turnkey emulator which emulates a Redfish interface. The Redfish Interface Emulator is definitely not turnkey. A turnkey emulation of the Redfish Interface would be expected to keep up with the Redfish model extension, which would be labor intensive.
It is a framework which others can extend. It has found use in understanding the behavior of proposed extensions to the interface - as Swordfish has done for NVMe-over-Fabric.
There have been attempts to build a BMC Redfish emulator, but without constant updates, it ends up being a snapshot of the interface in time - https://github.com/ODIM-Project/BMCSimulator
The emulator 'framework' in this repository can emulate a static or dynamic Redfish model.
For static emulation, you need to copy in a mockup. This repository doesn't keep the included mockup up-to-date, since the usage of static emulator in uncertain. The capability is also available in the Mockup-Server and the Profile-Simulator.
For each resource, python code needs to be written to 'emulate' the resource. The rest of README describes how to write the python code, along with the use of codegen to automate the process. The python code for some resources are included as examples.
If you are a member of the DMTF Redfish Forum, you could access the Redfish Interoperability Lab for testing. The lab hosts platforms with Redfish Service on their BMCs.
@jcleung5549 I think the request is much more simplistic than what you're suggesting. I think if we fix the Bios-related URIs in the following files, it'll address the issue:
It'll address this issue. I got some more, plenty. But I'll check with the dsp2043 published recently before reporting.
I think it'd be best to remove the mock files from the report and update the docker file to include the instructions to grab the mock files form the dsp. The link in the readme is 404 - https://www.dmtf.org/dsp/DSP2043 is fine.
BIOs is defined to be located in …/BIOS instead of …/Bios as defined in the spec:
"/redfish/v1/Systems/437XR1138R2/BIOS"
The links to the Settings & Actions are misplaced as well