No useful feedback when 'node provide' fails
Bug #1620949 reported by
Julie Pichon
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tripleo |
Fix Released
|
Medium
|
Julie Pichon |
Bug Description
Currently, if 'openstack node provide <uuid>' fails, the user isn't given any useful feedback to fix it.
$ openstack overcloud node provide 8aa420cf-
Failed to set nodes to available state: Failed to set nodes to available.
Using the --debug flag doesn't offer additional hints.
In the Mistral server logs, there is this:
BadRequest: The requested action "provide" can not be performed on node "8aa420cf-
We should try to surface something like that so the user knows what to try next.
Changed in tripleo: | |
assignee: | Julie Pichon (jpichon) → Dougal Matthews (d0ugal) |
Changed in tripleo: | |
assignee: | Dougal Matthews (d0ugal) → Julie Pichon (jpichon) |
Changed in tripleo: | |
milestone: | newton-rc1 → newton-rc2 |
Changed in tripleo: | |
assignee: | Julie Pichon (jpichon) → Dougal Matthews (d0ugal) |
assignee: | Dougal Matthews (d0ugal) → Julie Pichon (jpichon) |
To post a comment you must log in.
Because the failure is more likely to come from a sub-workflow in 'provide', the simple payload message formatting we usually do is a bit too rough to be useful:
$ openstack overcloud node provide 45dda8e9- f553-4301- ab0e-5c465a4251 36 state\n\ n set_provision_state [task_ex_ id=d7d9ff22- a1f9-4489- 8309-9c30ca94dc 7a] -> Failed to run action [action_ ex_id=6d31e9b1- aa70-4871- 989f-5fb86d7bec fd, action_cls=\'<class \'mistral. actions. action_ factory. IronicAction\ '>\', attributes= \'{u\'client_ method_ name\': u\'node. set_provision_ state\' }\', params= \'{u\'state\ ': u\'provide\', u\'node_uuid\': u\'45dda8e9- f553-4301- ab0e-5c465a4251 36\', u\'configdrive\': None, u\'cleansteps\': None}\']\n IronicAction. node.set_ provision_ state failed: <class \'ironicclient. common. apiclient. exceptions. BadRequest\ '>: The requested action "provide" can not be performed on node "45dda8e9- f553-4301- ab0e-5c465a4251 36" while it is in state "available".\n [action_ ex_id=6d31e9b1- aa70-4871- 989f-5fb86d7bec fd, idx=0]: Failed to run action [action_ ex_id=6d31e9b1- aa70-4871- 989f-5fb86d7bec fd, action_cls=\'<class \'mistral. actions. action_ factory. IronicAction\ '>\', attributes= \'{u\'client_ method_ name\': u\'node. set_provision_ state\' }\', params= \'{u\'state\ ': u\'provide\', u\'node_uuid\': u\'45dda8e9- f553-4301- ab0e-5c465a4251 36\', u\'configdrive\': None, u\'cleansteps\': None}\']\n IronicAction. node.set_ provision_ state failed: <class \'ironicclient. common. apiclient. exceptions. BadRequest\ '>: The requested action "provide" can not be performed on node "45dda8e9- f553-4301- ab0e-5c465a4251 36" while it is in state "available".\n'}]
Failed to set nodes to available state: [{u'result': u'Failure caused by error in tasks: set_provision_
A bit of simple massaging leads to this (for each failed node):
$ openstack overcloud node provide 45dda8e9- f553-4301- ab0e-5c465a4251 36
Failed to set nodes to available state:
Failure caused by error in tasks: set_provision_state
set_provision _state [task_ex_ id=472bf915- 7a0d-471d- 8493-9e104c8fd7 c6] -> Failed to run action [action_ ex_id=9671e995- 218a-43f2- adbf-bc5b8093bb fa, action_cls='<class 'mistral. actions. action_ factory. IronicAction' >', attributes= '{u'client_ method_ name': u'node. set_provision_ state'} ', params='{u'state': u'provide', u'node_uuid': u'45dda8e9- f553-4301- ab0e-5c465a4251 36', u'configdrive': None, u'cleansteps': None}'] node.set_ provision_ state failed: <class 'ironicclient. common. apiclient. exceptions. BadRequest' >: The requested action "provide" can not be performed on node "45dda8e9- f553-4301- ab0e-5c465a4251 36" while it is in state "available". ex_id=9671e995- 218a-43f2- adbf-bc5b8093bb fa, idx=0]: Failed to run action [action_ ex_id=9671e995- 218a-43f2- adbf-bc5b8093bb fa, action_cls='<class 'mistral. actions. action_ factory. IronicAction' >', attributes= '{u'client_ method_ name': u'node. set_provision_ state'} ', params='{u'state': u'provide', u'node_uuid': u'45dda8e9- f553-4301- ab0e-5c465a4251 36', u'configdrive': None, u'cleansteps': None}'] node.set_ provision_ state failed: <class 'ironicclient. common. apiclient. exceptions. BadRequest' >: The requested action "provide" can not be performed on node "45dda8e9- f553-4301- ab0e-5c. ..
IronicAction.
[action_
IronicAction.