public static APIRevertVolumeFromSnapshotMsg __example__() { APIRevertVolumeFromSnapshotMsg msg = new APIRevertVolumeFromSnapshotMsg(); msg.setUuid(uuid()); return msg; }
@Override public void start(LongJobVO job, ReturnValueCompletion<APIEvent> completion) { RevertVolumeSnapshotMsg msg = new RevertVolumeSnapshotMsg(); APIRevertVolumeFromSnapshotMsg apiMessage = JSONObjectUtil.toObject(job.getJobData(), APIRevertVolumeFromSnapshotMsg.class); msg.setApiMessage(apiMessage); msg.setSnapshotUuid(apiMessage.getSnapshotUuid()); msg.setVolumeUuid(apiMessage.getVolumeUuid()); msg.setTreeUuid(apiMessage.getTreeUuid()); bus.makeLocalServiceId(msg, VolumeSnapshotConstant.SERVICE_ID); bus.send(msg, new CloudBusCallBack(completion) { @Override public void run(MessageReply reply) { auditResourceUuid = msg.getVolumeUuid(); if (reply.isSuccess()) { APIRevertVolumeFromSnapshotEvent evt = new APIRevertVolumeFromSnapshotEvent(ThreadContext.get(Constants.THREAD_CONTEXT_API)); completion.success(evt); } else { completion.fail(reply.getError()); } } }); }
@Override public void run(final SyncTaskChain chain) { APIRevertVolumeFromSnapshotEvent evt = new APIRevertVolumeFromSnapshotEvent(msg.getId()); revert(msg, new Completion(chain) { @Override public void success() { bus.publish(evt); chain.next(); } @Override public void fail(ErrorCode errorCode) { evt.setError(errorCode); bus.publish(evt); chain.next(); } }); }
private void validate(APIRevertVolumeFromSnapshotMsg msg) { SimpleQuery<VolumeSnapshotVO> q = dbf.createQuery(VolumeSnapshotVO.class); q.select(VolumeSnapshotVO_.state, VolumeSnapshotVO_.volumeUuid); q.add(VolumeSnapshotVO_.uuid, Op.EQ, msg.getUuid()); Tuple t = q.findTuple(); VolumeSnapshotState state = t.get(0, VolumeSnapshotState.class); if (state != VolumeSnapshotState.Enabled) { throw new ApiMessageInterceptionException(operr("volume snapshot[uuid:%s] is in state %s, cannot revert volume to it", msg.getUuid(), state)); } String volUuid = t.get(1, String.class); if (volUuid == null) { throw new ApiMessageInterceptionException(operr("original volume for snapshot[uuid:%s] has been deleted, cannot revert volume to it", msg.getUuid())); } }