]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Using HttpNfcLease to transfer vmdk files.
authorSubramanian Neelakantan <subramanian.neelakantan@gmail.com>
Fri, 11 Oct 2013 03:24:18 +0000 (08:54 +0530)
committerSubramanian Neelakantan <subramanian.neelakantan@gmail.com>
Thu, 14 Nov 2013 06:54:29 +0000 (12:24 +0530)
commit7b64653931628328bd5d70b0cdea8952e6c709f8
tree95dfb9f8b59b4b09098710c7d9fc06e3ba937bf8
parent26b58e2c10011450725ae644b404fabb4b8b6b7f
Using HttpNfcLease to transfer vmdk files.

The current VMware driver supported only "sparse" and "preallocated"
vmware_disktype property set in a "vmdk" glance image. Both of these were just
copied over as *-flat.vmdk files into the vmfs or nfs file system of the
underlying datastore. This was used during copy_image_to_volume() api.
Unfortunately for a vsan datastore this work flow breaks since there is no
access to the flat vmdk file in the underlying datastore.

This patch introduces a new vmware_disktype for a glance image called
"streamOptimized". This is a format generated when a VM/vApp is exported using
the HttpNfc APIs. AS the name suggests this is a highly optimized format for
streaming in chunks and thus would result in much faster upload / download
speeds. The driver's copy_volume_to_image() implementation now always uploads
the vmdk contents using HttpNfc api so that the glance image ends up in the
"streamOptimized" disk type. Also the driver's copy_image_to_volume()
implementation now understands a "streamOptmized" disk type and uses HttpNfc to
import that vmdk into a backing VM.

Note that the same "streamOptmized" glance image format will also be supported
by VMware nova driver. This change is in a different patch -
https://review.openstack.org/#/c/53976/

Patch Set 4: Removing changes to requirements.txt that got in by mistake.
Patch Set 5: Fixing a small bug around progress updates.
Patch Set 6: Addressing comments from Avishay.

Fixes bug: 1229998

Change-Id: I6b55945cb61efded826e0bcf7e2a678ebbbbd9d3
cinder/tests/test_vmware_vmdk.py
cinder/volume/drivers/vmware/api.py
cinder/volume/drivers/vmware/io_util.py
cinder/volume/drivers/vmware/read_write_util.py
cinder/volume/drivers/vmware/vmdk.py
cinder/volume/drivers/vmware/vmware_images.py
cinder/volume/drivers/vmware/volumeops.py