Handle Timeouts Generically

Registered by aeva black

When a request is received via RPC, some work is started asynchronously by the Conductor process. At this time, there is no process watching to see how long that work has taken and potentially stop it after a configurable timeout.

Because drivers may implement their respective interfaces in different ways, we need a general way for the Conductor to ask the driver if an operation has taken "too long." The set of timeouts should be standardized across drivers. Individual timeouts should be configurable per-driver.

This also requires that drivers advertise which operations are interruptable, and a means to interrupt those that are.

Related to:
- https://blueprints.launchpad.net/ironic/+spec/breaking-resource-locks
- https://blueprints.launchpad.net/ironic/+spec/abort-deployment

Blueprint information

Status:
Not started
Approver:
aeva black
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

We're moving from using blueprints to track features to RFE bugs. I've filed one for your change (see related bugs section). Please track further work there using Closes-Bug, Partial-Bug or Related-Bug in commit messages and use this newly created RFE bug.
//vdrok 2015-12-16

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.