Redfish powerdriver should be able to handle the reset power status
Bug #2079797 reported by
Jacopo Rota
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Committed
|
High
|
Jacopo Rota | ||
3.3 |
Fix Released
|
High
|
Seyeong Kim | ||
3.4 |
Fix Released
|
High
|
Jacopo Rota | ||
3.5 |
Fix Released
|
High
|
Jacopo Rota |
Bug Description
Follow up from https:/
In HPE Gen11 redfish returns also the status Reset even if it's outside the standard specification.
MAAS should be able to handle that, in particular it should wait until the BMC transitions to a known status ("poweroff", "poweron" for example).
Related branches
~seyeongkim/maas:3.3-backport-a68150ce2d63339998c60e4f8b1a25e26e967b17
- MAAS Lander: Approve
- Jacopo Rota: Approve
-
Diff: 990 lines (+242/-110)30 files modifiedsrc/maasserver/api/tests/test_machine.py (+1/-1)
src/maasserver/api/tests/test_machines.py (+2/-7)
src/maasserver/api/tests/test_node.py (+2/-1)
src/maasserver/clusterrpc/power.py (+1/-1)
src/maasserver/clusterrpc/tests/test_power.py (+1/-1)
src/maasserver/compose_preseed.py (+2/-1)
src/maasserver/enum.py (+0/-18)
src/maasserver/forms/tests/test_ephemeral.py (+2/-6)
src/maasserver/models/node.py (+1/-2)
src/maasserver/models/signals/nodes.py (+2/-1)
src/maasserver/models/signals/tests/test_nodes.py (+1/-2)
src/maasserver/models/signals/tests/test_power.py (+1/-1)
src/maasserver/models/tests/test_bmc.py (+1/-1)
src/maasserver/models/tests/test_node.py (+1/-1)
src/maasserver/node_action.py (+1/-1)
src/maasserver/node_constraint_filter_forms.py (+1/-2)
src/maasserver/rpc/tests/test_nodes.py (+2/-1)
src/maasserver/rpc/tests/test_regionservice_calls.py (+2/-1)
src/maasserver/testing/factory.py (+1/-1)
src/maasserver/tests/test_compose_preseed.py (+2/-6)
src/maasserver/tests/test_node_action.py (+1/-1)
src/maasserver/tests/test_node_constraint_filter_forms.py (+1/-1)
src/maasserver/websockets/handlers/machine.py (+1/-1)
src/maasserver/websockets/handlers/node.py (+1/-2)
src/maasserver/websockets/handlers/tests/test_machine.py (+1/-1)
src/metadataserver/models/scriptset.py (+1/-1)
src/metadataserver/tests/test_api.py (+2/-6)
src/provisioningserver/drivers/power/redfish.py (+102/-7)
src/provisioningserver/drivers/power/tests/test_redfish.py (+91/-34)
src/provisioningserver/enum.py (+14/-0)
~r00ta/maas:backport-e9830dcbf6a38409c890310d972b589521fa3d3d-3.4
- MAAS Lander: Approve
- Jacopo Rota: Approve
-
Diff: 190 lines (+94/-12)2 files modifiedsrc/provisioningserver/drivers/power/redfish.py (+40/-8)
src/provisioningserver/drivers/power/tests/test_redfish.py (+54/-4)
maas:auto-backport-2079797-3.4
- MAAS Lander: Needs Fixing
- MAAS Maintainers: Pending requested
-
Diff: 210 lines (+108/-26)2 files modifiedsrc/provisioningserver/drivers/power/redfish.py (+50/-5)
src/provisioningserver/drivers/power/tests/test_redfish.py (+58/-21)
~r00ta/maas:backport-2ce5ace25047f921ea3a203a0477acfe87c98858-3.5
- MAAS Lander: Approve
- Jacopo Rota: Approve
-
Diff: 186 lines (+92/-12)2 files modifiedsrc/provisioningserver/drivers/power/redfish.py (+40/-8)
src/provisioningserver/drivers/power/tests/test_redfish.py (+52/-4)
~r00ta/maas:lp-2079797-handle-reset-redfish
- MAAS Lander: Approve
- Jerzy Husakowski: Approve
- Alexsander de Souza: Approve
-
Diff: 186 lines (+92/-12)2 files modifiedsrc/provisioningserver/drivers/power/redfish.py (+40/-8)
src/provisioningserver/drivers/power/tests/test_redfish.py (+52/-4)
Changed in maas: | |
assignee: | nobody → Jacopo Rota (r00ta) |
status: | New → In Progress |
Changed in maas: | |
status: | In Progress → Fix Committed |
tags: | added: sts |
To post a comment you must log in.
Some feedback for future consideration (3.3. version, at least):
1. The Try/Retry counting is off
"This is the try number 0 out of 6"
"This is the try number 4 out of 6", then "Maximum number of retries reached"
MAX_REQUEST_RETRIES = 5
Why isn't MAX_REQUEST_RETRIES used in the log entry? It's hard coded to '6'.
2. Why does the code retry on ANY error in redfish_request, not just on returning transitional power statuses?
Could be get_etag, get_node_id, set_pxe_boot, or any power control, not just power_query
Could be permissions error or any other type of error.
So why retry a permissions error 6 times? It's still going to fail every time, and just waste time.
3. It doesn't appear to send back the error after the first instance, so it's hard to tell from the log what's actually going on:
maas.drivers. power.redfish: [info] Power action failure: Redfish request failed with response status code: 403.. This is the try number 0 out of 6. power.redfish: [info] Power action failure: [<twisted. python. failure. Failure builtins. ValueError: I/O operation on closed file.>]. This is the try number 1 out of 6.
maas.drivers.
What file? Who closed it? raise_error?
4. Spelling/grammar
"This is the try number..."
"Retring after %f seconds."