Xen: Ensure snapshot is torn down on error.
Xen: Ensure snapshot is torn down on error.

This patch solves the problem of snapshots being left around if an
exception is generated in _wait_for_vhd_coalesce.

The solution is to separate snapshot from coalesce and then to ensure
any exceptions generated after a snapshot trigger a cleanup.

Change-Id: I4c03243bc41f76d80d32934dd9506d1861951184

maheshp/novatest,hanlind/nova,takeshineshiro/nova,mandeepdhami/nova,devendermishrajio/nova,blueboxgroup/nova,vmturbo/nova,citrix-openstack-build/nova,DirectXMan12/nova-hacking,rahulunair/nova,thomasem/nova,klmitch/nova,mmnelemane/nova,rajalokan/nova,fnordahl/nova,JioCloud/nova_test_latest,Yusuke1987/openstack_template,raildo/nova,SUSE-Cloud/nova,cyx1231st/nova,alexandrucoman/vbox-nova-driver,double12gzh/nova,fnordahl/nova,CloudServer/nova,mgagne/nova,redhat-openstack/nova,maelnor/nova,mandeepdhami/nova,Stavitsky/nova,Triv90/Nova,saleemjaveds/https-github.com-openstack-nova,plumgrid/plumgrid-nova,usc-isi/nova,vladikr/nova_drafts,imsplitbit/nova,cloudbau/nova,eayunstack/nova,cloudbase/nova,jeffrey4l/nova,mikalstill/nova,cernops/nova,whitepages/nova,tudorvio/nova,leilihh/novaha,luogangyi/bcec-nova,zzicewind/nova,berrange/nova,cernops/nova,ntt-sic/nova,akash1808/nova_test_latest,rickerc/nova_audit,CCI-MOC/nova,eharney/nova,qwefi/nova,tianweizhang/nova,gooddata/openstack-nova,yosshy/nova,tealover/nova,tealover/nova,eayunstack/nova,cloudbase/nova-virtualbox,NoBodyCam/TftpPxeBootBareMetal,CCI-MOC/nova,badock/nova,belmiromoreira/nova,rajalokan/nova,zhimin711/nova,eonpatapon/nova,nikesh-mahalka/nova,joker946/nova,savi-dev/nova,ruslanloman/nova,devoid/nova,jeffrey4l/nova,angdraug/nova,jianghuaw/nova,akash1808/nova,scripnichenko/nova,houshengbo/nova_vmware_compute_driver,gspilio/nova,yrobla/nova,klmitch/nova,mahak/nova,dawnpower/nova,CEG-FYP-OpenStack/scheduler,kimjaejoong/nova,Francis-Liu/animated-broccoli,gspilio/nova,TieWei/nova,Brocade-OpenSource/OpenStack-DNRM-Nova,Yusuke1987/openstack_template,ewindisch/nova,CiscoSystems/nova,CloudServer/nova,jianghuaw/nova,fajoy/nova,barnsnake351/nova,NewpTone/stacklab-nova,j-carpentier/nova,tudorvio/nova,projectcalico/calico-nova,raildo/nova,TwinkleChawla/nova,bclau/nova,Juniper/nova,rickerc/nova_audit,ted-gould/nova,iuliat/nova,akash1808/nova,silenceli/nova,akash1808/nova_test_latest,zhimin711/nova,citrix-openstack-build/nova,nikesh-mahalka/nova,Juniper/nova,devendermishrajio/nova_test_latest,NoBodyCam/TftpPxeBootBareMetal,mmnelemane/nova,devoid/nova,gooddata/openstack-nova,tangfeixiong/nova,mahak/nova,spring-week-topos/nova-week,joker946/nova,eharney/nova,BeyondTheClouds/nova,CEG-FYP-OpenStack/scheduler,petrutlucian94/nova_dev,rajalokan/nova,cloudbau/nova,affo/nova,paulmathews/nova,vmturbo/nova,jianghuaw/nova,tanglei528/nova,NeCTAR-RC/nova,adelina-t/nova,hanlind/nova,petrutlucian94/nova,redhat-openstack/nova,luogangyi/bcec-nova,paulmathews/nova,alvarolopez/nova,rajalokan/nova,isyippee/nova,rrader/nova-docker-plugin,angdraug/nova,Juniper/nova,isyippee/nova,badock/nova,OpenAcademy-OpenStack/nova-scheduler,virtualopensystems/nova,alaski/nova,kimjaejoong/nova,Triv90/Nova,Tehsmash/nova,houshengbo/nova_vmware_compute_driver,MountainWei/nova,dawnpower/nova,zzicewind/nova,BeyondTheClouds/nova,MountainWei/nova,dstroppa/openstack-smartos-nova-grizzly,phenoxim/nova,leilihh/novaha,jianghuaw/nova,yatinkumbhare/openstack-nova,JioCloud/nova,gooddata/openstack-nova,saleemjaveds/https-github.com-openstack-nova,j-carpentier/nova,barnsnake351/nova,leilihh/nova,Triv90/Nova,viggates/nova,aristanetworks/arista-ovs-nova,sridevikoushik31/openstack,sridevikoushik31/nova,DirectXMan12/nova-hacking,shahar-stratoscale/nova,shail2810/nova,watonyweng/nova,devendermishrajio/nova,imsplitbit/nova,berrange/nova,bigswitch/nova,whitepages/nova,sridevikoushik31/nova,rahulunair/nova,orbitfp7/nova,LoHChina/nova,leilihh/nova,dstroppa/openstack-smartos-nova-grizzly,sridevikoushik31/nova,blueboxgroup/nova,dims/nova,Brocade-OpenSource/OpenStack-DNRM-Nova,ntt-sic/nova,zaina/nova,openstack/nova,qwefi/nova,SUSE-Cloud/nova,ruslanloman/nova,felixma/nova,tanglei528/nova,Yuriy-Leonov/nova,edulramirez/nova,ted-gould/nova,maheshp/novatest,tianweizhang/nova,DirectXMan12/nova-hacking,sebrandon1/nova,bigswitch/nova,belmiromoreira/nova,maoy/zknova,vmturbo/nova,bgxavier/nova,zaina/nova,shootstar/novatest,houshengbo/nova_vmware_compute_driver,Tehsmash/nova,yatinkumbhare/openstack-nova,fajoy/nova,cyx1231st/nova,Yuriy-Leonov/nova,Stavitsky/nova,petrutlucian94/nova_dev,openstack/nova,klmitch/nova,alexandrucoman/vbox-nova-driver,phenoxim/nova,bgxavier/nova,maoy/zknova,mikalstill/nova,silenceli/nova,shahar-stratoscale/nova,orbitfp7/nova,mahak/nova,yrobla/nova,dstroppa/openstack-smartos-nova-grizzly,LoHChina/nova,adelina-t/nova,Metaswitch/calico-nova,rrader/nova-docker-plugin,dims/nova,TieWei/nova,ewindisch/nova,vladikr/nova_drafts,mgagne/nova,JioCloud/nova,shail2810/nova,vmturbo/nova,watonyweng/nova,aristanetworks/arista-ovs-nova,gspilio/nova,fajoy/nova,tangfeixiong/nova,alvarolopez/nova,klmitch/nova,Francis-Liu/animated-broccoli,NeCTAR-RC/nova,yosshy/nova,apporc/nova,cloudbase/nova-virtualbox,maheshp/novatest,cernops/nova,thomasem/nova,bclau/nova,maoy/zknova,JianyuWang/nova,noironetworks/nova,hanlind/nova,takeshineshiro/nova,CiscoSystems/nova,gooddata/openstack-nova,sebrandon1/nova,TwinkleChawla/nova,openstack/nova,varunarya10/nova_test_latest,noironetworks/nova,JioCloud/nova_test_latest,savi-dev/nova,yrobla/nova,virtualopensystems/nova,viggates/nova,rahulunair/nova,aristanetworks/arista-ovs-nova,sacharya/nova,NewpTone/stacklab-nova,petrutlucian94/nova,sridevikoushik31/openstack,cloudbase/nova,BeyondTheClouds/nova,cloudbase/nova,double12gzh/nova,Metaswitch/calico-nova,usc-isi/nova,alaski/nova,felixma/nova,iuliat/nova,NoBodyCam/TftpPxeBootBareMetal,scripnichenko/nova,NewpTone/stacklab-nova,plumgrid/plumgrid-nova,projectcalico/calico-nova,shootstar/novatest,sridevikoushik31/nova,usc-isi/nova,savi-dev/nova,maelnor/nova,mikalstill/nova,edulramirez/nova,JianyuWang/nova,varunarya10/nova_test_latest,sridevikoushik31/openstack,paulmathews/nova,affo/nova,devendermishrajio/nova_test_latest,eonpatapon/nova,OpenAcademy-OpenStack/nova-scheduler,sacharya/nova,sebrandon1/nova,spring-week-topos/nova-week,Juniper/nova,apporc/nova