Source:
protected void executeCommand() { GlusterVolumeEntity volume = getGlusterVolume(); Boolean tranRetVal = TransactionSupport.executeInNewTransaction(new TransactionMethod<Boolean>() { @Override public Boolean runInTransaction() { return pauseAndCreateSnapshotForGeoRepSessions(); } }); if (!tranRetVal) { return; } VDSReturnValue retVal = runVdsCommand(VDSCommandType.CreateGlusterVolumeSnapshot, new CreateGlusterVolumeSnapshotVDSParameters(upServer.getId(), volume.getName(), snapshot.getSnapshotName(), snapshot.getDescription(), force)); setSucceeded(retVal.getSucceeded()); if (!retVal.getSucceeded()) { handleVdsError(AuditLogType.GLUSTER_VOLUME_SNAPSHOT_CREATE_FAILED, retVal.getVdsError().getMessage()); } else { GlusterVolumeSnapshotEntity createdSnapshot = getParameters().getSnapshot(); createdSnapshot.setSnapshotId((Guid) retVal.getReturnValue()); createdSnapshot.setStatus(GlusterSnapshotStatus.STARTED); createdSnapshot.setCreatedAt(new Date()); getDbFacade().getGlusterVolumeSnapshotDao().save(createdSnapshot); } List<GlusterGeoRepSession> updatedGeoRepSessions = getDbFacade().getGlusterGeoRepDao().getGeoRepSessions(volume.getId()); if (updatedGeoRepSessions != null && updatedGeoRepSessions.size() > 0) { for (GlusterGeoRepSession session : updatedGeoRepSessions) { if (session.getStatus() == GeoRepSessionStatus.PAUSED) { VdcReturnValueBase sessionResumeRetVal = runInternalAction(VdcActionType.ResumeGeoRepSession, new GlusterVolumeGeoRepSessionParameters(volume.getId(), session.getId())); if (!sessionResumeRetVal.getSucceeded()) { handleVdsErrors(AuditLogType.GLUSTER_VOLUME_GEO_REP_RESUME_FAILED, sessionResumeRetVal.getExecuteFailedMessages()); return; } } } } setSucceeded(true); }

Target:
protected void executeCommand() { GlusterVolumeEntity volume = getGlusterVolume(); Boolean tranRetVal = TransactionSupport.executeInNewTransaction(new TransactionMethod<Boolean>() { @Override public Boolean runInTransaction() { return pauseAndCreateSnapshotForGeoRepSessions(); } }); if (!tranRetVal) { return; } VDSReturnValue retVal = runVdsCommand(VDSCommandType.CreateGlusterVolumeSnapshot, new CreateGlusterVolumeSnapshotVDSParameters(upServer.getId(), volume.getName(), snapshot.getSnapshotName(), snapshot.getDescription(), force)); setSucceeded(retVal.getSucceeded()); if (!retVal.getSucceeded()) { handleVdsError(AuditLogType.GLUSTER_VOLUME_SNAPSHOT_CREATE_FAILED, retVal.getVdsError().getMessage()); } else { GlusterVolumeSnapshotEntity createdSnapshot = getParameters().getSnapshot(); createdSnapshot.setSnapshotId((Guid) retVal.getReturnValue()); createdSnapshot.setStatus(GlusterSnapshotStatus.STARTED); createdSnapshot.setCreatedAt(new Date()); getDbFacade().getGlusterVolumeSnapshotDao().save(createdSnapshot); } List<GlusterGeoRepSession> updatedGeoRepSessions = getDbFacade().getGlusterGeoRepDao().getGeoRepSessions(volume.getId()); if (updatedGeoRepSessions != null && updatedGeoRepSessions.size() > 0) { for (GlusterGeoRepSession session : updatedGeoRepSessions) { if (session.getStatus() == GeoRepSessionStatus.PAUSED) { VdcReturnValueBase sessionResumeRetVal = runInternalAction(VdcActionType.ResumeGeoRepSession, new GlusterVolumeGeoRepSessionParameters(volume.getId(), session.getId())); if (!sessionResumeRetVal.getSucceeded()) { handleVdsErrors(AuditLogType.GLUSTER_VOLUME_GEO_REP_RESUME_FAILED, sessionResumeRetVal.getExecuteFailedMessages()); setSucceeded(false); return; } } } } setSucceeded(true); }