Driver validation should not be synchronous and blocking

Bug #1314961 reported by aeva black
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic
Opinion
Wishlist
Unassigned

Bug Description

The validation of node.driver_info and each driver interface is currently a synchronous request -- the client must wait for the call through the API to the conductor, to each driver interface, some of which block while waiting for the physical node to respond to network requests.

This API call's synchronicity was initially reasonable because it only checked the reasonableness of the node.driver_info properties. Now, it is unreasonable, because validate() establishes connectivity to the node. This is the case for both IPMITool and SSH Power power drivers, and will reasonably be the case for the iLO driver as well. It may also be the case for management and console interface drivers, too (and if not yet, it would be soon).

==============
Proposed solution

* validate and store results as (time, status) of each node's driver's interfaces in the DB (separate "node_driver_status" table may be optimal)
* Clear last-time when ever driver_info is changed (check each driver's list of options to see if that driver was affected. Depends on Ruby's patch)
* Periodic task which calls driver.validate for nodes with no last-check-time (task sets check-status to "in progress", locks the node, etc...)
* Expose these results in the REST API, as part of the complete node result
* make the "node-validate" update the db record for that node's node_driver_status entries to a "check requested" state (but only do this if no checks are in progress, node is not locked, etc)

aeva black (tenbrae)
Changed in ironic:
status: New → Triaged
importance: Undecided → High
Imre Farkas (ifarkas)
Changed in ironic:
assignee: nobody → Imre Farkas (ifarkas)
Imre Farkas (ifarkas)
Changed in ironic:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (master)

Fix proposed to branch: master
Review: https://review.openstack.org/97789

Revision history for this message
aeva black (tenbrae) wrote :

Hi Imre, it's been over a month since you proposed a WIP patch to this bug, without further updates. Are you still working on it? If not, please set the status back to Triaged and unassign yourself.

Thanks!

Revision history for this message
aeva black (tenbrae) wrote :

It's been more than a week without a response. I am unassigning this.

Changed in ironic:
assignee: Imre Farkas (ifarkas) → nobody
status: In Progress → Triaged
importance: High → Medium
Revision history for this message
Imre Farkas (ifarkas) wrote :

Hi Devananda, we actually discussed this on IRC. You told me that this needs to be postponed until everything is ironed out regarding the fully async API spec: https://review.openstack.org/#/c/94923/ and the scope also needs to be changed with regards of the spec.

Am I missing something?

aeva black (tenbrae)
Changed in ironic:
importance: Medium → Wishlist
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on ironic (master)

Change abandoned by Imre Farkas (<email address hidden>) on branch: master
Review: https://review.openstack.org/97789

Revision history for this message
Michael Turek (mjturek) wrote :

This wishlist bug has been open more than a year without any activity. I'm going to move it to "Opinion / Wishlist", which is an easily-obtainable queue of older requests that have come on. This bug can be reopened (set back to "New") if someone decides to work on this.

Changed in ironic:
status: Triaged → Opinion
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.