Bug 1056098

Summary: [RFE][ironic]: A more advanced driver API
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: openstack-ironicAssignee: Keith Basil <kbasil>
Status: CLOSED WONTFIX QA Contact: Shai Revivo <srevivo>
Severity: unspecified Docs Contact:
Priority: low    
Version: unspecifiedCC: kbasil, markmc, srevivo
Target Milestone: ---Keywords: FutureFeature, Triaged, Upstream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/ironic/+spec/advanced-driver-api
Whiteboard: upstream_milestone_none upstream_status_unknown upstream_definition_obsolete
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-05-19 23:24:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description RHOS Integration 2014-01-21 14:19:25 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/ironic/+spec/advanced-driver-api.

Description:

Drivers may need to expose certain functionality via the API service which is unique to that driver, or which is not part of the Manager service's usual capabilities. For example, the IPMIControlDriver may expose a "discover" or "scan network range" method.

The implementation details of this need to be worked out -- drivers are loaded by the ResourceManager currently, but to handle RPC, they need to be part of a service. Consideration must also be given to the context, security, and performance aspects, as well as request queuing and API response. Eg, how do we handle multiple requests? Can such methods be asynchronous, and if so, how does the answer get back to the API client when there is no instance or node associated to the request?

This is not needed for Ironic's first RC, but I'm putting this up here for further discussion and thought.

Specification URL (additional information):

None