@Override public String getVolumeUuid() { return volumeSnapshotJobs.get(0).getVolumeUuid(); } }
@Override public void afterTakeLiveSnapshotsOnVolumes(CreateVolumesSnapshotOverlayInnerMsg msg, TakeVolumesSnapshotOnKvmReply treply, Completion completion) { if (treply != null && !treply.isSuccess()) { completion.success(); return; } for (CreateVolumesSnapshotsJobStruct job : msg.getVolumeSnapshotJobs()) { if (!isLocalStorage(job.getPrimaryStorageUuid())) { continue; } LocalStorageResourceRefVO ref = new LocalStorageResourceRefVO(); ref.setPrimaryStorageUuid(job.getPrimaryStorageUuid()); ref.setResourceType(VolumeSnapshotVO.class.getSimpleName()); VmInstanceVO vmInstanceVO = Q.New(VmInstanceVO.class).eq(VmInstanceVO_.uuid, msg.getLockedVmInstanceUuids().get(0)).find(); ref.setHostUuid(vmInstanceVO.getHostUuid() != null ? vmInstanceVO.getHostUuid() : vmInstanceVO.getLastHostUuid()); ref.setCreateDate(job.getVolumeSnapshotStruct().getCurrent().getCreateDate()); ref.setLastOpDate(job.getVolumeSnapshotStruct().getCurrent().getLastOpDate()); ref.setResourceUuid(job.getVolumeSnapshotStruct().getCurrent().getUuid()); ref.setSize(treply.getSnapshotsResults().stream() .filter(r -> r.getVolumeUuid().equals(job.getVolumeUuid())) .findFirst().get().getSize()); dbf.persistAndRefresh(ref); } completion.success(); }
for (CreateVolumesSnapshotsJobStruct struct : msg.getVolumeSnapshotJobs()) { if (Q.New(CephPrimaryStorageVO.class) .eq(CephPrimaryStorageVO_.uuid, struct.getPrimaryStorageUuid()) .isExists()) { isCephPs += 1; VolumeSnapshotVO vo = Q.New(VolumeSnapshotVO.class).eq(VolumeSnapshotVO_.uuid, struct.getResourceUuid()).find(); if (vo.getStatus().equals(VolumeSnapshotStatus.Ready)) { logger.warn(String.format("snapshot %s on volume %s is ready, no need to create again!", tmsg.setPrimaryStorageUuid(struct.getPrimaryStorageUuid()); tmsg.setStruct(struct.getVolumeSnapshotStruct()); bus.makeTargetServiceIdByResourceUuid(tmsg, PrimaryStorageConstant.SERVICE_ID, tmsg.getPrimaryStorageUuid()); bus.send(tmsg, new CloudBusCallBack(msg) {
@Override public String getVolumeUuid() { return volumeSnapshotJobs.get(0).getVolumeUuid(); } }