Etherpad: https://etherpad.openstack.org/p/detach-attach-root-volume-corner-cases Summary (copied verbatim from the bottom of the etherpad - ask mriedem if further explanation is needed): - Allow attaching a new root volume with a tag as described [in the etherpad] and/or a multiattach volume, don't restrict on whether or not the existing root volume had a tag or multiattach capability. - During unshelve, before scheduling, modify the RequestSpec (and don't persist it) if the BDMs have a tag or are multiattach (this is honestly an existing bug for unshelve). This is where the compute driver capability traits will be used for pre-filtering. (if unshelving fails with NoValidHost the instance remains in shelve_offloaded state [tested in devstack], so user can detach the volume and retry) - Refactor and re-use the image validation code from rebuild when a new root volume is attached. - Assert the new root volume is bootable. efried .