4747import com .cloud .utils .db .Transaction ;
4848import com .cloud .utils .db .TransactionCallback ;
4949import com .cloud .vm .VMInstanceVO ;
50+ import com .cloud .vm .VirtualMachine ;
5051import com .cloud .vm .dao .VMInstanceDao ;
5152import com .google .gson .Gson ;
5253
@@ -281,10 +282,7 @@ public List<Long> listVmIdsWithBackupsInZone(Long zoneId) {
281282
282283 @ Override
283284 public BackupResponse newBackupResponse (Backup backup , Boolean listVmDetails ) {
284- VMInstanceVO vm = null ;
285- if (backup .getVmId () != null ) {
286- vm = vmInstanceDao .findByIdIncludingRemoved (backup .getVmId ());
287- }
285+ VMInstanceVO vm = vmInstanceDao .findByIdIncludingRemoved (backup .getVmId ());
288286 AccountVO account = accountDao .findByIdIncludingRemoved (backup .getAccountId ());
289287 DomainVO domain = domainDao .findByIdIncludingRemoved (backup .getDomainId ());
290288 DataCenterVO zone = dataCenterDao .findByIdIncludingRemoved (backup .getZoneId ());
@@ -295,9 +293,12 @@ public BackupResponse newBackupResponse(Backup backup, Boolean listVmDetails) {
295293 response .setId (backup .getUuid ());
296294 response .setName (backup .getName ());
297295 response .setDescription (backup .getDescription ());
298- if (vm != null ) {
296+ response .setVmName (vm .getHostName ());
297+ if (vm .getState () != VirtualMachine .State .Expunging ) {
299298 response .setVmId (vm .getUuid ());
300- response .setVmName (vm .getHostName ());
299+ }
300+ if (vm .getBackupOfferingId () != backup .getBackupOfferingId ()) {
301+ response .setVmOfferingRemoved (true );
301302 }
302303 response .setExternalId (backup .getExternalId ());
303304 response .setType (backup .getType ());
@@ -310,7 +311,7 @@ public BackupResponse newBackupResponse(Backup backup, Boolean listVmDetails) {
310311 }
311312 // ACS 4.20: For backups taken prior this release the backup.backed_volumes column would be empty hence use vm_instance.backup_volumes
312313 String backedUpVolumes ;
313- if (Objects .isNull (backup .getBackedUpVolumes ()) && vm != null ) {
314+ if (Objects .isNull (backup .getBackedUpVolumes ())) {
314315 backedUpVolumes = new Gson ().toJson (vm .getBackupVolumeList ().toArray (), Backup .VolumeInfo [].class );
315316 } else {
316317 backedUpVolumes = new Gson ().toJson (backup .getBackedUpVolumes ().toArray (), Backup .VolumeInfo [].class );
0 commit comments