-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ensure we don't boot oversized images
Since we can't generally shrink incoming images, add extra checks to ensure oversized images are not allowed through. All cases when populating the libvirt image cache are now handled, including the initial download from glance, where we avoid converting to raw, as that could generate non sparse images much larger than the downloaded image. * nova/virt/libvirt/utils.py (fetch_image): Allow passing through of the max_size parameter. * nova/virt/images.py (fetch_to_raw): Accept the max_size parameter, and use it to discard images with larger (virtual) sizes. * nova/virt/libvirt/imagebackend.py (verify_base_size): A new refactored function to identify and raise exception to oversized images. (Raw.create_image): Pass the max_size to the fetch function. Also enforce virtual image size checking for already fetched images, as this class (despite the name) can be handling qcow files. (Qcow2.create_image): Pass the max_size to the fetch function, or verify the virtual size for the instance as done previously. (Lvm.create_image): Pass the max_size to the fetch function. Also check the size before transferring to the volume to improve efficiency by not even attempting the transfer of oversized images. (Rbd.create_image): Likewise. * nova/tests/fake_libvirt_utils.py: Support max_size arg. * nova/tests/test_libvirt.py (test_fetch_raw_image): Add a case to check oversized images are discarded. * nova/tests/test_imagebackend.py (test_create_image_too_small): Adjust to avoid the fetch size check. Fixes bug: 1177830 Fixes bug: 1206081 Conflicts: nova/tests/test_imagebackend.py nova/virt/libvirt/imagebackend.py Change-Id: Idc35fce580be4f74e23883d1b4bea6475c3f6e30
- Loading branch information
Showing
6 changed files
with
95 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters