Skip to content

Commit d804b75

Browse files
committed
address orphan trnasfers
Signed-off-by: Abhishek Kumar <[email protected]>
1 parent 259ba31 commit d804b75

1 file changed

Lines changed: 5 additions & 9 deletions

File tree

server/src/main/java/org/apache/cloudstack/backup/KVMBackupExportServiceImpl.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)