Merge release branch 4.18 to 4.19

* 4.18:
  Fix list backups after backup vm is expunged (#9392)
This commit is contained in:
Vishesh 2024-07-15 17:07:36 +05:30
commit a53365d1c7
No known key found for this signature in database
GPG Key ID: 4E395186CBFA790B
4 changed files with 10 additions and 1 deletions

View File

@ -36,6 +36,7 @@ import org.apache.cloudstack.api.response.ZoneResponse;
import org.apache.cloudstack.backup.Backup; import org.apache.cloudstack.backup.Backup;
import org.apache.cloudstack.backup.BackupManager; import org.apache.cloudstack.backup.BackupManager;
import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.context.CallContext;
import org.apache.log4j.Logger;
import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InsufficientCapacityException;
@ -49,6 +50,7 @@ import com.cloud.utils.Pair;
responseObject = BackupResponse.class, since = "4.14.0", responseObject = BackupResponse.class, since = "4.14.0",
authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User}) authorized = {RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin, RoleType.User})
public class ListBackupsCmd extends BaseListProjectAndAccountResourcesCmd { public class ListBackupsCmd extends BaseListProjectAndAccountResourcesCmd {
private static final Logger s_logger = Logger.getLogger(ListBackupsCmd.class);
@Inject @Inject
private BackupManager backupManager; private BackupManager backupManager;
@ -116,6 +118,7 @@ public class ListBackupsCmd extends BaseListProjectAndAccountResourcesCmd {
Pair<List<Backup>, Integer> result = backupManager.listBackups(this); Pair<List<Backup>, Integer> result = backupManager.listBackups(this);
setupResponseBackupList(result.first(), result.second()); setupResponseBackupList(result.first(), result.second());
} catch (Exception e) { } catch (Exception e) {
s_logger.debug("Exception while listing backups", e);
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage()); throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, e.getMessage());
} }
} }

View File

@ -134,6 +134,7 @@ public interface Backup extends ControlledEntity, InternalIdentity, Identity {
} }
long getVmId(); long getVmId();
long getBackupOfferingId();
String getExternalId(); String getExternalId();
String getType(); String getType();
Date getDate(); Date getDate();

View File

@ -158,6 +158,7 @@ public class BackupVO implements Backup {
this.status = status; this.status = status;
} }
@Override
public long getBackupOfferingId() { public long getBackupOfferingId() {
return backupOfferingId; return backupOfferingId;
} }

View File

@ -145,7 +145,11 @@ public class BackupDaoImpl extends GenericDaoBase<BackupVO, Long> implements Bac
AccountVO account = accountDao.findByIdIncludingRemoved(vm.getAccountId()); AccountVO account = accountDao.findByIdIncludingRemoved(vm.getAccountId());
DomainVO domain = domainDao.findByIdIncludingRemoved(vm.getDomainId()); DomainVO domain = domainDao.findByIdIncludingRemoved(vm.getDomainId());
DataCenterVO zone = dataCenterDao.findByIdIncludingRemoved(vm.getDataCenterId()); DataCenterVO zone = dataCenterDao.findByIdIncludingRemoved(vm.getDataCenterId());
BackupOffering offering = backupOfferingDao.findByIdIncludingRemoved(vm.getBackupOfferingId()); Long offeringId = vm.getBackupOfferingId();
if (offeringId == null) {
offeringId = backup.getBackupOfferingId();
}
BackupOffering offering = backupOfferingDao.findByIdIncludingRemoved(offeringId);
BackupResponse response = new BackupResponse(); BackupResponse response = new BackupResponse();
response.setId(backup.getUuid()); response.setId(backup.getUuid());