v1 API reform

Registered by Dmitry Tantsur

/v1 API has to be node-centric. We also found that bulk operation for initiating discovery is not actually used. Finally, we want to reduce usage of 'discovery' word, replacing it with 'introspection'. Previous spec (https://blueprints.launchpad.net/ironic-discoverd/+spec/get-status-api) introduces GET /v1/introspection/<UUID> endpoint, let's extend it.

DONE
1. Add POST /v1/introspection/<UUID> for starting introspection. That will allow us to add parameters in the future.
2. Stop doing bulk operations internally
3. Add new client call `introspect(uuid, **)`
4. Modify demo CLI to accept command name and switch to a new command.

TODO
5. Deprecate and leave for backward compatibility old endpoint and client call
6. Modify https://blueprints.launchpad.net/ironic-discoverd/+spec/setup-ipmi-credentials to accept HTTP query argument, not rely on Node.extra. Do not add to client library for now.
7. Rename Python module discover -> introspect

Blueprint information

Status:
Complete
Approver:
Dmitry Tantsur
Priority:
Medium
Drafter:
Dmitry Tantsur
Direction:
Approved
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/v1-api-reform,n,z

Addressed by: https://review.openstack.org/146475
    Refactor stable API to be /v1/introspection/<UUID>

Addressed by: https://review.openstack.org/146479
    Add introspect client call and switch functest to it

Addressed by: https://review.openstack.org/146498
    Update HTTP API documentation to reflect the current reality

Addressed by: https://review.openstack.org/146809
    Add options table and convenience methods to work with it

Addressed by: https://review.openstack.org/147168
    Switch setting IPMI credentials to using options and HTTP params

Addressed by: https://review.openstack.org/147442
    General naming and strings clean up

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.