@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_FAILURE: return this; case ON_RERUN: return SchedulerJobInstanceState.LAUNCHING; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_FAILURE: return this; case ON_RERUN: return SchedulerJobInstanceState.LAUNCHING; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_SUCCESS: return this; case ON_RERUN: return SchedulerJobInstanceState.LAUNCHING; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_KILL: return this; case ON_RERUN: return SchedulerJobInstanceState.LAUNCHING; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } }
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_SUCCESS: return this; case ON_RERUN: return SchedulerJobInstanceState.LAUNCHING; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_TIME_OUT: return this; case ON_RERUN: return SchedulerJobInstanceState.WAITING; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_KILL: return this; case ON_RERUN: return SchedulerJobInstanceState.LAUNCHING; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } }
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_TIME_OUT: return this; case ON_RERUN: return SchedulerJobInstanceState.WAITING; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_RUN: return SchedulerJobInstanceState.RUNNING; case ON_SUCCESS: return SchedulerJobInstanceState.SUCCEEDED; case ON_FAILURE: return SchedulerJobInstanceState.FAILED; case ON_KILL: return SchedulerJobInstanceState.KILLED; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_RUN: return this; case ON_SUCCESS: return SchedulerJobInstanceState.SUCCEEDED; case ON_FAILURE: return SchedulerJobInstanceState.FAILED; case ON_KILL: return SchedulerJobInstanceState.KILLED; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_RUN: return this; case ON_SUCCESS: return SchedulerJobInstanceState.SUCCEEDED; case ON_FAILURE: return SchedulerJobInstanceState.FAILED; case ON_KILL: return SchedulerJobInstanceState.KILLED; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_RUN: return SchedulerJobInstanceState.RUNNING; case ON_SUCCESS: return SchedulerJobInstanceState.SUCCEEDED; case ON_FAILURE: return SchedulerJobInstanceState.FAILED; case ON_KILL: return SchedulerJobInstanceState.KILLED; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_CONDITIONS_MET: return SchedulerJobInstanceState.LAUNCHED; case ON_CONDITIONS_NOT_MET: return SchedulerJobInstanceState.WAITING; case ON_RUN: return SchedulerJobInstanceState.RUNNING; case ON_SUCCESS: return SchedulerJobInstanceState.SUCCEEDED; case ON_FAILURE: return SchedulerJobInstanceState.FAILED; case ON_KILL: return SchedulerJobInstanceState.KILLED; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_PREPARE: return SchedulerJobInstanceState.LAUNCHING; case ON_TIME_OUT: return SchedulerJobInstanceState.TIMED_OUT; case ON_RUN: return SchedulerJobInstanceState.RUNNING; case ON_SUCCESS: return SchedulerJobInstanceState.SUCCEEDED; case ON_FAILURE: return SchedulerJobInstanceState.FAILED; case ON_KILL: return SchedulerJobInstanceState.KILLED; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_PREPARE: return SchedulerJobInstanceState.LAUNCHING; case ON_TIME_OUT: return SchedulerJobInstanceState.TIMED_OUT; case ON_RUN: return SchedulerJobInstanceState.RUNNING; case ON_SUCCESS: return SchedulerJobInstanceState.SUCCEEDED; case ON_FAILURE: return SchedulerJobInstanceState.FAILED; case ON_KILL: return SchedulerJobInstanceState.KILLED; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
@Override public SchedulerJobInstanceState nextTransition(SchedulerJobInstanceEvent event) throws InvalidStateTransitionException { switch (event) { case ON_CONDITIONS_MET: return SchedulerJobInstanceState.LAUNCHED; case ON_CONDITIONS_NOT_MET: return SchedulerJobInstanceState.WAITING; case ON_RUN: return SchedulerJobInstanceState.RUNNING; case ON_SUCCESS: return SchedulerJobInstanceState.SUCCEEDED; case ON_FAILURE: return SchedulerJobInstanceState.FAILED; case ON_KILL: return SchedulerJobInstanceState.KILLED; default: throw new InvalidStateTransitionException( "SchedulerJobInstanceEvent: " + event.name() + " is not a valid event for state: " + this.name()); } } },
} catch (InvalidStateTransitionException e) { throw new LensException(LensSchedulerErrorCode.INVALID_EVENT_FOR_JOB_INSTANCE.getLensErrorInfo(), e, ON_KILL.name(), latestRun.getInstanceState().name(), instanceInfo.getId().getHandleIdString(), instanceInfo.getJobId().getHandleIdString());
/** * {@inheritDoc} */ @Override public void rerunInstance(LensSessionHandle sessionHandle, SchedulerJobInstanceHandle instanceHandle) throws LensException { SchedulerJobInstanceInfo instanceInfo = schedulerDAO.getSchedulerJobInstanceInfo(instanceHandle); doesSessionBelongToUser(sessionHandle, schedulerDAO.getUser(instanceInfo.getJobId())); SchedulerJobState currentState = schedulerDAO.getJobState(instanceInfo.getJobId()); if (currentState != SchedulerJobState.SCHEDULED) { throw new LensException(LensSchedulerErrorCode.JOB_IS_NOT_SCHEDULED.getLensErrorInfo(), null, instanceInfo.getJobId().getHandleIdString(), currentState); } // Get the latest run. List<SchedulerJobInstanceRun> runList = instanceInfo.getInstanceRunList(); if (runList.size() == 0) { throw new LensException(LensSchedulerErrorCode.JOB_INSTANCE_IS_NOT_YET_RUN.getLensErrorInfo(), null, instanceHandle.getHandleIdString(), instanceInfo.getJobId().getHandleIdString()); } SchedulerJobInstanceRun latestRun = runList.get(runList.size() - 1); try { latestRun.getInstanceState().nextTransition(ON_RERUN); notifyRerun(instanceInfo); log.info("Rerunning the instance with {} for job {} ", instanceHandle, instanceInfo.getJobId()); } catch (InvalidStateTransitionException e) { throw new LensException(LensSchedulerErrorCode.INVALID_EVENT_FOR_JOB_INSTANCE.getLensErrorInfo(), e, ON_RERUN.name(), latestRun.getInstanceState().name(), instanceInfo.getId().getHandleIdString(), instanceInfo.getJobId().getHandleIdString()); } }