@Transactional(readOnly = true) private List<PrimaryStorageVO> considerImageBackupStorageRef(PrimaryStorageAllocationSpec spec, List<PrimaryStorageVO> vos){ List<BackupStorageVO> bsvos = SQL.New("select bs" + " from BackupStorageVO bs, ImageBackupStorageRefVO ref" + " where ref.imageUuid = :imgUuid" + " and bs.uuid = ref.backupStorageUuid", BackupStorageVO.class) .param("imgUuid", spec.getImageUuid()) .list(); vos.removeIf(ps -> bsvos.stream().noneMatch(bs -> { List<String> relatedPsUuids = BackupStorageType.valueOf(bs.getType()).findRelatedPrimaryStorage(bs.getUuid()); return relatedPsUuids == null || relatedPsUuids.contains(ps.getUuid()); }) ); return vos; }
List<String> psTypes = new ArrayList<>(); for (BackupStorageVO bs : bss) { BackupStorageType bsType = BackupStorageType.valueOf(bs.getType()); List<String> lst = bsType.findRelatedPrimaryStorage(bs.getUuid()); if (lst != null) {
BackupStorageType bsType = BackupStorageType.valueOf(bs.getType()); List<String> relatedPrimaryStorageUuids = bsType.findRelatedPrimaryStorage(bs.getUuid()); if (relatedPrimaryStorageUuids == null) {
private void passThrough(BackupStorageMessage pmsg) { BackupStorageVO vo = dbf.findByUuid(pmsg.getBackupStorageUuid(), BackupStorageVO.class); if (vo == null && allowedMessageAfterDeletion.contains(pmsg.getClass())) { BackupStorageEO eo = dbf.findByUuid(pmsg.getBackupStorageUuid(), BackupStorageEO.class); vo = ObjectUtils.newAndCopy(eo, BackupStorageVO.class); } Message msg = (Message) pmsg; if (vo == null) { String err = String.format("Cannot find backup storage[uuid:%s], it may have been deleted", pmsg.getBackupStorageUuid()); bus.replyErrorByMessageType(msg, err); return; } BackupStorageFactory factory = getBackupStorageFactory(BackupStorageType.valueOf(vo.getType())); BackupStorageVO finalVo = vo; BackupStorage ss = New(()-> factory.getBackupStorage(finalVo)); ss.handleMessage(msg); }
@Override public void handle(PrimaryStorageInventory inv, UploadBitsToBackupStorageMsg msg, final ReturnValueCompletion<UploadBitsToBackupStorageReply> completion) { BackupStorageVO bs = dbf.findByUuid(msg.getBackupStorageUuid(), BackupStorageVO.class); NfsPrimaryToBackupStorageMediator m = nfsFactory.getPrimaryToBackupStorageMediator(BackupStorageType.valueOf(bs.getType()), HypervisorType.valueOf(msg.getHypervisorType())); m.uploadBits(msg.getImageUuid(), inv, BackupStorageInventory.valueOf(bs), msg.getBackupStorageInstallPath(), msg.getPrimaryStorageInstallPath(), new ReturnValueCompletion<String>(completion) { @Override public void success(String installPath) { UploadBitsToBackupStorageReply reply = new UploadBitsToBackupStorageReply(); reply.setBackupStorageInstallPath(installPath); completion.success(reply); } @Override public void fail(ErrorCode errorCode) { completion.fail(errorCode); } }); }
private void handle(final BackupVolumeSnapshotFromPrimaryStorageToBackupStorageMsg msg) { BackupStorageInventory bs = msg.getBackupStorage(); VolumeSnapshotInventory sinv = msg.getSnapshot(); NfsPrimaryToBackupStorageMediator mediator = factory.getPrimaryToBackupStorageMediator( BackupStorageType.valueOf(bs.getType()), nfsMgr.findHypervisorTypeByImageFormatAndPrimaryStorageUuid(sinv.getFormat(), self.getUuid()) ); final BackupVolumeSnapshotFromPrimaryStorageToBackupStorageReply reply = new BackupVolumeSnapshotFromPrimaryStorageToBackupStorageReply(); final String installPath = mediator.makeVolumeSnapshotInstallPath(bs.getUuid(), sinv.getUuid()); mediator.uploadBits(null, getSelfInventory(), bs, installPath, sinv.getPrimaryStorageInstallPath(), new ReturnValueCompletion<String>(msg) { @Override public void success(String installPath) { reply.setBackupStorageInstallPath(installPath); bus.reply(msg, reply); } @Override public void fail(ErrorCode errorCode) { reply.setError(errorCode); bus.reply(msg, reply); } }); }
q.add(BackupStorageVO_.uuid, Op.EQ, spec.getRequiredBackupStorageUuid()); String type = q.findValue(); BackupStorageType bsType = BackupStorageType.valueOf(type);
@Override protected void handle(final DownloadDataVolumeToPrimaryStorageMsg msg) { final DownloadDataVolumeToPrimaryStorageReply reply = new DownloadDataVolumeToPrimaryStorageReply(); final String installPath = PathUtil.join(self.getMountPath(), PrimaryStoragePathMaker.makeDataVolumeInstallPath(msg.getVolumeUuid())); BackupStorageVO bsvo = dbf.findByUuid(msg.getBackupStorageRef().getBackupStorageUuid(), BackupStorageVO.class); NfsPrimaryToBackupStorageMediator mediator = factory.getPrimaryToBackupStorageMediator( BackupStorageType.valueOf(bsvo.getType()), nfsMgr.findHypervisorTypeByImageFormatAndPrimaryStorageUuid(msg.getImage().getFormat(), self.getUuid()) ); mediator.downloadBits(getSelfInventory(), BackupStorageInventory.valueOf(bsvo), msg.getBackupStorageRef().getInstallPath(), installPath, new Completion(msg) { @Override public void success() { reply.setInstallPath(installPath); bus.reply(msg, reply); } @Override public void fail(ErrorCode errorCode) { reply.setError(errorCode); bus.reply(msg, reply); } }); }
final BackupStorageInventory backupStorage = BackupStorageInventory.valueOf(bsvo); final NfsPrimaryToBackupStorageMediator mediator = nfsFactory.getPrimaryToBackupStorageMediator( BackupStorageType.valueOf(backupStorage.getType()), nfsMgr.findHypervisorTypeByImageFormatAndPrimaryStorageUuid(image.getInventory().getFormat(), primaryStorage.getUuid()) );
private void handle(final APIAddBackupStorageMsg msg) { BackupStorageType type = BackupStorageType.valueOf(msg.getType()); final BackupStorageFactory factory = getBackupStorageFactory(type);