Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support of iLO Redfish api #540

Closed
jgu17 opened this issue Apr 30, 2021 · 9 comments
Closed

Add support of iLO Redfish api #540

jgu17 opened this issue Apr 30, 2021 · 9 comments
Assignees
Labels
enhancement New feature or request priority/medium Default priority for items size l
Milestone

Comments

@jgu17
Copy link
Contributor

jgu17 commented Apr 30, 2021

Problem description (if applicable)
In the Anuket lab, the only servers with Redfish support and available to the Airship project are HPE DL 380 Gen 10 servers. The support for iLO v5 Redfish api is needed in Airship for anuket RI-2 development.

Proposed change
Test and Support iLO redfish api in airshipctl v2.0 (which is used for Anuket RI-2). This can be done by Anuket developers with the guidance of Airship developers.

Potential impacts
N/A

@jgu17 jgu17 added enhancement New feature or request triage Needs evaluation by project members labels Apr 30, 2021
@jgu17 jgu17 self-assigned this Apr 30, 2021
@jgu17
Copy link
Contributor Author

jgu17 commented Apr 30, 2021

Issue #1: iLO serer throws an EOF error when go redfish client sends a POST request using an existing idle http connection in the idle connection pool. I am not able to get logs from the iLO Redfish to understand the server side root cause and will try to get the HPE iLO engineering team to look into it. A temporary workaround is here: https://review.opendev.org/c/airship/airshipctl/+/788852 .

@jgu17
Copy link
Contributor Author

jgu17 commented Apr 30, 2021

Issue #2: "airship" BMC user doesn't have permission to change boot sequence in the anuket lab.
Request:
{"Name":"","@odata.type":"","@odata.id":"","Bios":{},"Processors":{},"Memory":{},"EthernetInterfaces":{},"SimpleStorage":{},"Status":{},"Boot":{"BootSourceOverrideTarget":"Cd"},"ProcessorSummary":{"Status":{}},"MemorySummary":{"Status":{}},"Links":{},"Actions":{"#ComputerSystem.Reset":{}}}

Response:
2021/04/30 12:11:50
HTTP/1.1 400 Bad Request
Connection: close
Transfer-Encoding: chunked
Cache-Control: no-cache
Content-Type: application/json; charset=utf-8
Date: Fri, 30 Apr 2021 16:11:50 GMT
Etag: W/"BB09A2E0"
Odata-Version: 4.0
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
X-Xss-Protection: 1; mode=block

d4
{"error":{"code":"iLO.0.10.ExtendedInfo","message":"See @Message.ExtendedInfo for more information.","@Message.ExtendedInfo":[{"MessageArgs":["@odata.type"],"MessageId":"iLO.2.14.PropertyNotWritableOrUnknown"}]}}

@jgu17
Copy link
Contributor Author

jgu17 commented May 5, 2021

There were two causes for issue #2. One is the airship user permission. It was fixed the LFN LaaS lab team. The second issue is within the openapi generated code. For the optional fields in ComputerSystem, the variables in the model have an "empty" value as default, instead of nil. So the json encoder included them in the request body in the patch request to the redfish server, e.g., processors: {}. This doesn't strictly follow the patch request which is expected to include the only the properties the client wants to update. iLo throws the error because some of the fields with empty value are not writable, (or could be worse, accidently set those property to whatever new values in the json request). I am upgrade the openapi generator version from 4.2.2. to 5.1.0 whish supports nullable values for the optional fields so the json encoder will skip them with the omitifempty flag.

@jgu17
Copy link
Contributor Author

jgu17 commented May 5, 2021

issue #3: go-redfish api schema doesn't include the "Disabled" enum value in BootSourceOverrideEnabled property.

@jezogwza jezogwza added priority/medium Default priority for items and removed triage Needs evaluation by project members labels May 5, 2021
@jezogwza jezogwza added this to the Future milestone May 5, 2021
@jgu17
Copy link
Contributor Author

jgu17 commented May 5, 2021

@jgu17 jgu17 added the size l label May 6, 2021
@jgu17
Copy link
Contributor Author

jgu17 commented May 13, 2021

Issue #4: the script 30 appears to be hung and no action is seen on the first target node. Suspects it's the ironic driver configuration for ilo is missing.

@jgu17
Copy link
Contributor Author

jgu17 commented May 14, 2021

Issue #5: The ephemeral node comes up with unexpected network interface names than it would get it from stock ubuntu os image or the interface names on the controller nodes.

@jezogwza jezogwza modified the milestones: Future, v2.1 Jul 7, 2021
@jgu17
Copy link
Contributor Author

jgu17 commented Sep 7, 2021

(Merged) go-redfish repo patchset: https://review.opendev.org/c/airship/go-redfish/+/789847
(Merged) https://review.opendev.org/c/airship/go-redfish/+/803515
(In review) airshipctl repo patchset: https://review.opendev.org/c/airship/airshipctl/+/803520, updates airshipctl remotedirect package to use the new api's from go-redfish

@jgu17
Copy link
Contributor Author

jgu17 commented Oct 13, 2021

Merged.

@jgu17 jgu17 closed this as completed Oct 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request priority/medium Default priority for items size l
Projects
None yet
Development

No branches or pull requests

2 participants