[nova] Why don't we have a SNAPSHOTTING status?

Matt Riedemann mriedemos at gmail.com
Fri Nov 22 14:56:35 UTC 2019


This came up in IRC today [1]. There are two issues:

1. As far as I can see, when creating a snapshot of a volume-backed 
server the API does not change the instance task_state so technically 
the user could perform some other action on the server while we're 
creating the volume snapshot(s), like try to resize it. My guess is that 
would fail since we likely can't be doing things like creating and 
deleting volume attachments on a volume that is actively being snapshot.

2. For image-backed servers, we set the progress the task_states through 
a few states [2] but those aren't conveyed in the overall server 
"status" field in the API [3].

Does anyone have any historical context on either of those issues?

Issue #1 reminds me that we don't have a task_state transition while 
confirming a resized server either [4] but I guess that's less of an 
issue because there are not a lot of things you can do to a server in 
VERIFY_RESIZE status (delete and revert the resize I think), but that 
does mean I could fire off separate confirmResize and then revertResize 
actions on the same server at the same time and the confirm will 
probably fail down in compute rather than in the API with a 409 error.

[1] 
http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2019-11-22.log.html#t2019-11-22T14:35:36
[2] 
https://github.com/openstack/nova/blob/991d675675c1c6bb87a2b9d19327e2b4473f6c0b/nova/compute/task_states.py#L34
[3] 
https://github.com/openstack/nova/blob/991d675675c1c6bb87a2b9d19327e2b4473f6c0b/nova/api/openstack/common.py#L48
[4] 
https://github.com/openstack/nova/blob/991d675675c1c6bb87a2b9d19327e2b4473f6c0b/nova/api/openstack/common.py#L84

-- 

Thanks,

Matt



More information about the openstack-discuss mailing list