@@ -637,11 +637,7 @@ public ImageTransfer createImageTransfer(long volumeId, Long backupId, ImageTran
637637
638638 @ Override
639639 public boolean cancelImageTransfer (long imageTransferId ) {
640- ImageTransferVO imageTransfer = imageTransferDao .findById (imageTransferId );
641- if (imageTransfer == null ) {
642- throw new CloudRuntimeException ("Image transfer not found: " + imageTransferId );
643- }
644- // ToDo: Implement cancel logic
640+ finalizeImageTransfer (imageTransferId );
645641 return true ;
646642 }
647643
@@ -876,7 +872,6 @@ private ImageTransferResponse toImageTransferResponse(ImageTransferVO imageTrans
876872 response .setBackupId (backup .getUuid ());
877873 }
878874 Long volumeId = imageTransferVO .getDiskId ();
879- // ToDo: fix volume deletion leaving orphan image transfer record
880875 Volume volume = volumeDao .findByIdIncludingRemoved (volumeId );
881876 response .setDiskId (volume .getUuid ());
882877 response .setTransferUrl (imageTransferVO .getTransferUrl ());
@@ -977,7 +972,8 @@ private void pollImageTransferProgress() {
977972 for (ImageTransferVO transfer : hostTransfers ) {
978973 VolumeVO volume = volumeDao .findById (transfer .getDiskId ());
979974 if (volume == null ) {
980- logger .warn ("Volume not found for image transfer: " + transfer .getUuid ());
975+ logger .warn ("Volume not found for image transfer: {}" , transfer .getUuid ());
976+ imageTransferDao .remove (transfer .getId ()); // ToDo: confirm if this enough?
981977 continue ;
982978 }
983979 transferVolumeMap .put (transfer .getId (), volume );
@@ -986,7 +982,7 @@ private void pollImageTransferProgress() {
986982 transferIds .add (transferId );
987983
988984 if (volume .getPath () == null ) {
989- logger .warn ("Volume path is null for image transfer: " + transfer .getUuid ());
985+ logger .warn ("Volume path is null for image transfer: {}" , transfer .getUuid ());
990986 continue ;
991987 }
992988 String volumePath = getVolumePathForFileBasedBackend (volume );
@@ -1004,7 +1000,7 @@ private void pollImageTransferProgress() {
10041000 if (answer == null || !answer .getResult () || MapUtils .isEmpty (answer .getProgressMap ())) {
10051001 logger .warn ("Failed to get progress for transfers on host {}: {}" , hostId ,
10061002 answer != null ? answer .getDetails () : "null answer" );
1007- return ;
1003+ return ; // ToDo: return on continue?
10081004 }
10091005 for (ImageTransferVO transfer : hostTransfers ) {
10101006 String transferId = transfer .getUuid ();
0 commit comments