Ironic: implement rescue mode

Registered by Jim Rollenhagen on 2015-11-24

Implement the rescue() and unrescue() methods in the Ironic virt driver.

rescue() will hash the password via crypt(3) (the format that /etc/shadow uses, to avoid plain text admin passwords in ironic's database) and pass it to the ironic node's instance_info field. It will then call node.set_provision_state(RESCUE) and poll for completion, updating nova's instance state once the rescue completes or errors.

unrescue() will simply call node.set_provision_state(UNRESCUE) and poll for completion, updating nova's instance state when the unrescue completes or errors.

Full details available in the Ironic spec: https://review.openstack.org/#/c/171878

Blueprint information

Status:
Complete
Approver:
melanie witt
Priority:
Low
Drafter:
Jim Rollenhagen
Direction:
Approved
Assignee:
Taku Izumi
Definition:
Approved
Series goal:
Accepted for rocky
Implementation:
Implemented
Milestone target:
milestone icon rocky-3
Started by
Matt Riedemann on 2016-12-27
Completed by
Matt Riedemann on 2018-07-15

Related branches

Sprints

Whiteboard

The linked Ironic spec has details about the nova changes. As a feature parity blueprint for the Ironic virt driver, we agreed to get this in without a specific nova blueprint. -- mriedem 20161011

I'm going to mark this as blocked for Nova since the Ironic patches are all in merge conflict. -- mriedem 20161227

https://review.openstack.org/#/q/topic:bug/1526449

Gerrit topic: https://review.openstack.org/#q,topic:bp/ironic-rescue-mode,n,z

Addressed by: https://review.openstack.org/416487
    virt/ironic: Implement rescue and unrescue

We're now past the feature freeze for Ocata so I've deferred this to Pike. -- mriedem 20170128

Re-approved for Pike as a feature parity blueprint. -- mriedem 20170331

I'm deferring this to Queens. The Nova change is abandoned and depends on some changes in Ironic, and we're 2 days from the Pike feature freeze. -- mriedem 20170725

Looks like people from Fujitsu are working on this again so I'll re-approve for Queens as a feature parity blueprint. -- mriedem 20171012

Sorry but we're now past feature freeze for Queens. Please re-propose the spec for Rocky and we'll try to get this merged early in the first milestone. -- mriedem 20180126

Ironic patches were merged. python-ironicclient supporting rescue mode will be released early in Rocky. Then, the nova patch can be merged. -- hshiina 20180131

We discussed this in the nova meeting today and we're re-approving for Rocky as a feature parity blueprint. -- melwitt 20180405

Gerrit topic: https://review.openstack.org/#q,topic:bug/1739440,n,z

Addressed by: https://review.openstack.org/582416
    ironic: provide facilies to gracefully navigate versions

Addressed by: https://review.openstack.org/582447
    ironic: Log an error when API version is not available

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.