default void resume(LongJobVO job) { job.setJobResult("Failed because management node restarted."); job.setState(LongJobState.Failed); } default Class getAuditType() {
@Override public void success(APIEvent evt) { reportProgress("100"); updateByUuid(longJobUuid, it -> { it.setState(LongJobState.Succeeded); if (it.getJobResult() == null || it.getJobResult().isEmpty()) { it.setJobResult("Succeeded"); } }); exts.forEach(ext -> { ext.afterJobFinished(job, vo, evt); }); logger.info(String.format("successfully run longjob [uuid:%s, name:%s]", vo.getUuid(), vo.getName())); }
@Override public void fail(ErrorCode errorCode) { LongJobVO vo = updateByUuid(longJobUuid, it -> { setStateWhenFail(it, errorCode); if (it.getJobResult() == null || it.getJobResult().isEmpty()) { it.setJobResult("Failed : " + errorCode.toString()); } }); APIEvent evt = new APIEvent(ThreadContext.get(Constants.THREAD_CONTEXT_API)); evt.setError(errorCode); exts.forEach(ext -> { ext.afterJobFailed(job, vo, evt); }); logger.info(String.format("failed to run longjob [uuid:%s, name:%s]", vo.getUuid(), vo.getName())); }
@Override public void run(MessageReply reply) { UpdateClusterOSReply rly = reply.castReply(); if (reply.isSuccess()) { job.setJobResult(JSONObjectUtil.toJsonString(rly.getResults())); dbf.update(job); completion.success(null); } else { completion.fail(reply.getError()); } } });
@Override protected List<LongJobVO> scripts() { // check long jobs using same uuid with current node List<LongJobVO> vos = Q.New(LongJobVO.class) .eq(LongJobVO_.managementNodeUuid, Platform.getManagementServerId()) .eq(LongJobVO_.state, LongJobState.Running) .list(); vos.forEach(vo -> { if (destinationMaker.isManagedByUs(vo.getUuid())) { vo.setJobResult("Failed because management node restarted."); vo.setState(LongJobState.Failed); merge(vo); } }); vos = Q.New(LongJobVO.class).isNull(LongJobVO_.managementNodeUuid).list(); vos.removeIf(it -> !destinationMaker.isManagedByUs(it.getUuid())); vos.forEach(it -> { it.setManagementNodeUuid(Platform.getManagementServerId()); merge(it); }); return vos; } }.execute();
vo.setState(LongJobState.Waiting); vo.setExecuteTime(null); vo.setJobResult(null); Timestamp now = Timestamp.valueOf(LocalDateTime.now()); vo.setCreateDate(now);
private LongJobVO createSuccessLongJob(APISubmitLongJobMsg msg) { // create LongJobVO LongJobVO vo = new LongJobVO(); if (msg.getResourceUuid() != null) { vo.setUuid(msg.getResourceUuid()); } else { vo.setUuid(Platform.getUuid()); } if (msg.getName() != null) { vo.setName(msg.getName()); } else { vo.setName(msg.getJobName()); } vo.setDescription(msg.getDescription()); vo.setApiId(ThreadContext.getImmutableContext().get(Constants.THREAD_CONTEXT_API)); vo.setJobName(msg.getJobName()); vo.setJobData(msg.getJobData()); vo.setState(LongJobState.Succeeded); vo.setJobResult(LongJobState.Succeeded.toString()); vo.setTargetResourceUuid(msg.getTargetResourceUuid()); vo.setManagementNodeUuid(Platform.getManagementServerId()); vo.setAccountUuid(msg.getSession().getAccountUuid()); vo = dbf.persistAndRefresh(vo); msg.setJobUuid(vo.getUuid()); tagMgr.createTags(msg.getSystemTags(), msg.getUserTags(), vo.getUuid(), LongJobVO.class.getSimpleName()); return vo; }