Make _CreateDisk clean up partially created disks on failure
Make _CreateDisk clean up partially created disks on failure

_CreateDisk used to just throw an exception if _CreateBlockDev failed
leaving the caller in the state that some disks were created, without
precise knowledge which. Usually, the clean up then overapproximated
by removing all disks of the instance. This can cause data loss in case
the disk creation failed because of a file being already in the place
where the disk is to be created.

With this patch, upon failure, _CreateDisk removes the disks that were
successfully created, leaving a well-defined state.

Signed-off-by: Klaus Aehlig <4ce51de36d9068cd7db2eec1151e0f3f95419008@google.com>
Reviewed-by: Guido Trotter <f62ca4d5358bdaeef0e50e57f9f7e231de63727e@google.com>

yiannist/ganeti,apyrgio/snf-ganeti,andir/ganeti,yiannist/ganeti,bitemyapp/ganeti,ganeti/ganeti,apyrgio/snf-ganeti,andir/ganeti,apyrgio/ganeti,ganeti-github-testing/ganeti-test-1,mbakke/ganeti,grnet/snf-ganeti,ganeti/ganeti,grnet/snf-ganeti,bitemyapp/ganeti,apyrgio/ganeti,andir/ganeti,leshchevds/ganeti,leshchevds/ganeti,dimara/ganeti,leshchevds/ganeti,mbakke/ganeti,onponomarev/ganeti,ganeti-github-testing/ganeti-test-1,mbakke/ganeti,dimara/ganeti,yiannist/ganeti,onponomarev/ganeti,ganeti/ganeti