Redfish power driver quirks

We have recently begun switching our servers to use the Redfish power driver, but since we have multiple vendors adhering to various Redfish versions, it is difficult to make the stock power driver work with all of them. As we’ve been testing, a couple of questions have come up:

  1. Can anyone explain why all the paths have trailing slashes? One of the commit comments specifically mentions adding trailing slashes, so there must be a reason. The only path we can see that’s called out specifically needing a trailing slash is the root path - “redfish/v1/”. Other paths with trailing slashes only seem to cause problems.
  2. The power function includes “Action”: “Reset”, which appears to be an older implementation of the power reset and is not defined in more recent Redfish versions. Taking this line out greatly improves operability. Any reason it is still included?
  3. We had to add some extra error handling for one vendor’s (older) implementation. Would the developers be interested in adding edge case handling like that? We’re concerned about having to run and maintain customized MAAS code.
    Thanks!

Given that Redfish is not a standard implementation across manufacturers, we expect that there will be quirks in comparison to the systems where we have enabled Redfish against. This is obviously problematic because each hardware manufacturer can customize it any way they want, and as such, we have made a power driver that works across best against the enabled hardware. Each deviation from what we can test and support will have to be treated on case by case basis.

Our initial implementation of Redfish API’s, which is currently use across various systems (including RSD) included this.

We are happy to take any contributions and include them into the product.

The normal process for these cases would be for you to file a bug report https://bugs.launchpad.net/maas/+filebug and submit a branch attaching your fix against master in https://code.launchpad.net/maas . The MAAS team will be happy to review and provide feedback to your contribution.