]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
VMware ESX: Fixes vol clone & clone from snapshot
authorKartik Bommepally <kbommepally@vmware.com>
Mon, 30 Sep 2013 09:45:37 +0000 (02:45 -0700)
committerKartik Bommepally <kbommepally@vmware.com>
Mon, 30 Sep 2013 10:27:44 +0000 (03:27 -0700)
commitfc7c36c9ca94de6bd2481c59d7710566dd4a1ddb
tree34a831d8a1dbbff1eef743c89ad637a6547240b2
parent82f3662405992b6b5915d94fa3a23e27f5849c66
VMware ESX: Fixes vol clone & clone from snapshot

The driver was earlier performing create from a source volume and create from
a snapshot point by copying the source volume container folder.

This is not valid in case of vSAN datastore where the volume data is not a
'file' in the container folder unlike VMFS/NFS datastores. So copying folder
will only copy descriptor file and hence the source and cloned volume will
end up writing to the same data location, eventually corrupting it.

The fix is to copy only the VMDK file (descriptor + data) and not the entire
container folder. The implementation does the following:
1. Create a volume backing
2. Delete the current VMDK
3. Make a copy of source volume's VMDK file to the destination using virtual
   disk manager. In case of create from snapshot, we copy the VMDK file
   corresponding to the snapshot point.

Fixes bug: 1233034

Change-Id: I51c9870c11a6d66f9f47c1ad9aaa2abc3dd0533a
cinder/tests/test_vmware_vmdk.py
cinder/volume/drivers/vmware/vmdk.py
cinder/volume/drivers/vmware/volumeops.py