Plugin architecture

Registered by Dmitry Tantsur

This spec suggests adding plugins support based on Stevedore [1].

Add hooks namespace 'ironic_discoverd.hooks' with calls:
* before_processing(node_info) -> () to run before taking any actions (even before validating the input). The intention is to affect node finding and data validation.
* before_update(node: Node, ports: [Port], node_info: dict) -> RESULT to run just before updating the node with the data.
  where RESULT is a tuple (node_patches, {MAC: port_patches}),
  any *_patches being a [JSON PATCH].

[1] http://stevedore.readthedocs.org/en/latest

NOTE: names were updated as part of https://blueprints.launchpad.net/ironic-discoverd/+spec/v1-api-reform

Blueprint information

Status:
Complete
Approver:
Dmitry Tantsur
Priority:
High
Drafter:
Dmitry Tantsur
Direction:
Needs approval
Assignee:
Dmitry Tantsur
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
milestone icon 1.0.0
Started by
Dmitry Tantsur
Completed by
Dmitry Tantsur

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/plugin-architecture,n,z

Addressed by: https://review.openstack.org/137649
    Support hooks for processing data

Addressed by: https://review.openstack.org/138056
    Move code updating Node.properties to a plugin

Addressed by: https://review.openstack.org/140010
    Separate validating NIC data into a new plugin

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.