libvirt lvm volumes based on instance['name'] not instance['uuid']
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Sean Dague |
Bug Description
because libvirt lvm volumes are based on instance['name'], it means that the actual names used in lvm storage are based on an operator configuration variable: instance_
the default is 'instance-%08x'
however this is site changable, and changable at any time. This creates 2 failure modes.
#1) operator changes this, the result is all volumes created before the change are no longer able to be cleaned up by nova
#2) operator has changed this to something that includes end user input, like %(display_name), which would allow one user to impact another (use A has display name "bob", user B has displayname "bob_joe") because of https:/
specifically:
pattern = '%s_' % instance['name']
def belongs_
#2 is a non default situation, and requires specific config by an adminstrator and specific naming by users, but it should be protected against.
A much better approach would be to use instance['uuid'] which has no operator or user impact on naming.
Changed in nova: | |
importance: | Undecided → High |
Changed in nova: | |
assignee: | nobody → Sean Dague (sdague) |
milestone: | none → icehouse-3 |
Changed in nova: | |
status: | New → Confirmed |
Changed in nova: | |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | icehouse-3 → 2014.1 |
There was a similar fix for rbd images on master: https:/ /review. openstack. org/#/c/ 44640/