[nova] Updates about Detaching/Attaching root volumes

Zhenyu Zheng zhengzhenyulixi at gmail.com
Fri Mar 1 09:56:43 UTC 2019

A silly method could be add a new param "cleanup_original_tag" and it could
only be provided if "is_root"=True and no new tag provided. So when
cleanup_original_tag=True or the user provided a new tag, we cleanup/update
the old tag, otherwise we keep it.

On Fri, Mar 1, 2019 at 10:36 AM Matt Riedemann <mriedemos at gmail.com> wrote:

> On 2/28/2019 7:54 PM, Zhenyu Zheng wrote:
> > Thanks alot for all the suggestions, so as a summary:
> > 1. do not wipe out the tag when detach
> > 2. free the limit on do not allow attach volume with tag for
> > shelved_offloaded instance if it is a root volume(we can check whether
> > ``is_root`` is True)
> >      2a. if user does not provide any tag, we keep the old tag
> >      2b. if user provide a new tag, we update the new tag
> >      2c. provide a way for user to indicate that I want to null out the
> > previous tag
> >
> > is my understanding correct?
> I think so. For 2c, that gets complicated because the schema for the tag
> is not nullable [1][2]. So then you're left with leave it or overwrite
> the tag you had, but you can't go from no tag to tag or vice-versa
> (without a schema change....).
> Also one final note here, but multiattach volumes are in the same
> conundrum, meaning they aren't allowed to attach to a shelved offloaded
> instance, but if we draw on Dan's use case, picking between detaching a
> root volume and not being able to attach another multiattach root
> volume, isn't a good option. So if we're going to do this for tags, I
> think we ought to do it for multiattach volumes as well. In other words,
> if the root volume was multiattach before it was detached, then the new
> root volume can be multiattach, but you can't go from non-multiattach to
> multiattach while shelved offloaded. The crappy thing about multiattach
> is it's not a clear attribute on the BDM object, it's buried in the
> BDM.connection_info [3], but we can still sort that out with a helper
> method (but it means you can't reset the connection_info when detaching
> the root volume).
> [1]
> https://github.com/openstack/nova/blob/a8c065dea946599a1b07d003cd21409c4cd58df0/nova/api/openstack/compute/schemas/volumes.py#L88
> [2]
> https://github.com/openstack/nova/blob/a8c065dea946599a1b07d003cd21409c4cd58df0/nova/api/validation/parameter_types.py#L498
> [3]
> https://github.com/openstack/nova/blob/a8c065dea946599a1b07d003cd21409c4cd58df0/nova/virt/block_device.py#L549
> --
> Thanks,
> Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20190301/153437e8/attachment.html>

More information about the openstack-discuss mailing list