|
30 | 30 | import com.cloud.utils.Pair; |
31 | 31 | import com.cloud.utils.Ternary; |
32 | 32 | import com.cloud.utils.component.AdapterBase; |
33 | | -import com.cloud.utils.db.Transaction; |
34 | | -import com.cloud.utils.db.TransactionCallbackNoReturn; |
35 | | -import com.cloud.utils.db.TransactionStatus; |
36 | 33 | import com.cloud.utils.exception.CloudRuntimeException; |
37 | 34 | import com.cloud.utils.ssh.SshHelper; |
38 | 35 | import com.cloud.vm.VMInstanceVO; |
39 | 36 | import com.cloud.vm.VirtualMachine; |
40 | 37 | import com.cloud.vm.dao.VMInstanceDao; |
41 | 38 |
|
42 | | -import org.apache.cloudstack.api.InternalIdentity; |
43 | 39 | import org.apache.cloudstack.backup.dao.BackupDao; |
44 | 40 | import org.apache.cloudstack.backup.dao.BackupOfferingDaoImpl; |
45 | 41 | import org.apache.cloudstack.backup.networker.NetworkerClient; |
@@ -567,86 +563,6 @@ public Map<VirtualMachine, Backup.Metric> getBackupMetrics(Long zoneId, List<Vir |
567 | 563 | return metrics; |
568 | 564 | } |
569 | 565 |
|
570 | | - @Override |
571 | | - public void syncBackups(VirtualMachine vm, Backup.Metric metric) { |
572 | | - final Long zoneId = vm.getDataCenterId(); |
573 | | - Transaction.execute(new TransactionCallbackNoReturn() { |
574 | | - @Override |
575 | | - public void doInTransactionWithoutResult(TransactionStatus status) { |
576 | | - final List<Backup> backupsInDb = backupDao.listByVmId(null, vm.getId()); |
577 | | - final ArrayList<String> backupsInNetworker = getClient(zoneId).getBackupsForVm(vm); |
578 | | - final List<Long> removeList = backupsInDb.stream().map(InternalIdentity::getId).collect(Collectors.toList()); |
579 | | - for (final String networkerBackupId : backupsInNetworker ) { |
580 | | - long vmBackupSize=0L; |
581 | | - boolean backupExists = false; |
582 | | - for (final Backup backupInDb : backupsInDb) { |
583 | | - LOG.debug(String.format("Checking if Backup %s with external ID %s for VM %s is valid", backupsInDb, backupInDb.getName(), vm)); |
584 | | - if ( networkerBackupId.equals(backupInDb.getExternalId()) ) { |
585 | | - LOG.debug(String.format("Found Backup %s in both Database and Networker", backupInDb)); |
586 | | - backupExists = true; |
587 | | - removeList.remove(backupInDb.getId()); |
588 | | - if (metric != null) { |
589 | | - LOG.debug(String.format("Update backup [%s] from [size: %s, protected size: %s] to [size: %s, protected size: %s].", |
590 | | - backupInDb, backupInDb.getSize(), backupInDb.getProtectedSize(), |
591 | | - metric.getBackupSize(), metric.getDataSize())); |
592 | | - ((BackupVO) backupInDb).setSize(metric.getBackupSize()); |
593 | | - ((BackupVO) backupInDb).setProtectedSize(metric.getDataSize()); |
594 | | - backupDao.update(backupInDb.getId(), ((BackupVO) backupInDb)); |
595 | | - } |
596 | | - break; |
597 | | - } |
598 | | - } |
599 | | - if (backupExists) { |
600 | | - continue; |
601 | | - } |
602 | | - // Technically an administrator can manually create a backup for a VM by utilizing the KVM scripts |
603 | | - // with the proper parameters. So we will register any backups taken on the Networker side from |
604 | | - // outside Cloudstack. If ever Networker will support KVM out of the box this functionality also will |
605 | | - // ensure that SLA like backups will be found and registered. |
606 | | - NetworkerBackup strayNetworkerBackup = getClient(vm.getDataCenterId()).getNetworkerBackupInfo(networkerBackupId); |
607 | | - // Since running backups are already present in Networker Server but not completed |
608 | | - // make sure the backup is not in progress at this time. |
609 | | - if ( strayNetworkerBackup.getCompletionTime() != null) { |
610 | | - BackupVO strayBackup = new BackupVO(); |
611 | | - strayBackup.setVmId(vm.getId()); |
612 | | - strayBackup.setExternalId(strayNetworkerBackup.getId()); |
613 | | - strayBackup.setType(strayNetworkerBackup.getType()); |
614 | | - SimpleDateFormat formatterDateTime = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); |
615 | | - try { |
616 | | - strayBackup.setDate(formatterDateTime.parse(strayNetworkerBackup.getSaveTime())); |
617 | | - } catch (ParseException e) { |
618 | | - String msg = String.format("Unable to parse date [%s].", strayNetworkerBackup.getSaveTime()); |
619 | | - LOG.error(msg, e); |
620 | | - throw new CloudRuntimeException(msg, e); |
621 | | - } |
622 | | - strayBackup.setStatus(Backup.Status.BackedUp); |
623 | | - for ( Backup.VolumeInfo thisVMVol : vm.getBackupVolumeList()) { |
624 | | - vmBackupSize += (thisVMVol.getSize() / 1024L /1024L); |
625 | | - } |
626 | | - strayBackup.setSize(vmBackupSize); |
627 | | - strayBackup.setProtectedSize(strayNetworkerBackup.getSize().getValue() / 1024L ); |
628 | | - strayBackup.setBackupOfferingId(vm.getBackupOfferingId()); |
629 | | - strayBackup.setAccountId(vm.getAccountId()); |
630 | | - strayBackup.setDomainId(vm.getDomainId()); |
631 | | - strayBackup.setZoneId(vm.getDataCenterId()); |
632 | | - LOG.debug(String.format("Creating a new entry in backups: [id: %s, uuid: %s, vm_id: %s, external_id: %s, type: %s, date: %s, backup_offering_id: %s, account_id: %s, " |
633 | | - + "domain_id: %s, zone_id: %s].", strayBackup.getId(), strayBackup.getUuid(), strayBackup.getVmId(), strayBackup.getExternalId(), |
634 | | - strayBackup.getType(), strayBackup.getDate(), strayBackup.getBackupOfferingId(), strayBackup.getAccountId(), |
635 | | - strayBackup.getDomainId(), strayBackup.getZoneId())); |
636 | | - backupDao.persist(strayBackup); |
637 | | - LOG.warn("Added backup found in provider [" + strayBackup + "]"); |
638 | | - } else { |
639 | | - LOG.debug ("Backup is in progress, skipping addition for this run"); |
640 | | - } |
641 | | - } |
642 | | - for (final Long backupIdToRemove : removeList) { |
643 | | - LOG.warn(String.format("Removing backup with ID: [%s].", backupIdToRemove)); |
644 | | - backupDao.remove(backupIdToRemove); |
645 | | - } |
646 | | - } |
647 | | - }); |
648 | | - } |
649 | | - |
650 | 566 | @Override |
651 | 567 | public Backup createNewBackupEntryForRestorePoint(Backup.RestorePoint restorePoint, VirtualMachine vm, Backup.Metric metric) { |
652 | 568 | // Technically an administrator can manually create a backup for a VM by utilizing the KVM scripts |
|
0 commit comments