@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Volume v = (Volume)state.getResource(); state.getData().put("processId", process.getId().toString()); state.getData().put("volumeName", v.getName()); return null; }
public ProcessPhase getPhase() { return state.getPhase(); }
@Override public void handleException(ExecutionException e, ProcessState state, ProcessServiceContext context) { for (Object resource : e.getResources()) { if (state.getResource() == resource) { Map<String, Object> data = TransitioningUtils.getTransitioningData(e); state.reload(); state.applyData(data); } } }
@Override public void wrapChainSchedule(ProcessState state, ProcessServiceContext context, Runnable run) { Map<String, Object> errorData = TransitioningUtils.getTransitioningErrorData(state.getResource()); run.run(); if (errorData.size() > 0) { state.applyData(errorData); } }
@Override protected Object getDataResource(ProcessState state, ProcessInstance process) { Volume v = (Volume)state.getResource(); List<? extends VolumeStoragePoolMap> maps = objectManager.children(v, VolumeStoragePoolMap.class); return maps.size() > 0 ? maps.get(0) : null; }
@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Object now = state.getData().get("now"); Long nowLong = System.currentTimeMillis(); if (now instanceof Number) { nowLong = ((Number) now).longValue(); } else { state.getData().put("now", nowLong); } return new HandlerResult(INSTANCE.HEALTH_UPDATED, new Date(nowLong)); } }
@Override protected HandlerResult preHandle(ProcessState state, ProcessInstance process) { for (Host host : objectManager.children(state.getResource(), Host.class)) { log.debug("Setting host [{}] agentState to [{}] on pre", host.getId(), state.getState()); setState(host, state.getState()); } return null; }
@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Agent agent = (Agent) state.getResource(); if (!agent.getManagedConfig()) { return null; } ConfigUpdateRequest request = ConfigUpdateRequestUtils.getRequest(jsonMapper, state, this); switch (state.getPhase()) { case PRE_LISTENERS: request = before(request, agent); break; case POST_LISTENERS: after(request, agent); break; default: } ConfigUpdateRequestUtils.setRequest(request, state, this); return null; }
try { ProcessState state = instanceContext.getState(); state.rebuild(); if (state.getResource() == null) { throw new ProcessCancelException("Resource is null [" + getName() + ":" + getId() + "] on resource [" + getResourceId() + "]"); throw new ProcessCancelException("State [" + instanceContext.getState().getState() + "] is not valid for process [" + getName() + ":" + getId() + "] on resource [" + getResourceId() + "]"); if (instanceContext.getState().isStart(record)) { previousState = setTransitioning(); getProcessManager().persistState(this, schedule); previousState = state.getState();
boolean shouldContinue = handlerResult.shouldContinue(state.getPhase()); Map<String, Object> resultData = state.convertData(handlerResult.getData()); state.applyData(resultData);
protected void assertState(String previousState) { ProcessState state = instanceContext.getState(); state.reload(); String newState = state.getState(); if (!previousState.equals(newState)) { preRunStateCheck(); throw new ProcessExecutionExitException("Previous state [" + previousState + "] does not equal current state [" + newState + "]", STATE_CHANGED); } }
protected String setTransitioning() { ProcessState state = instanceContext.getState(); String previousState = state.getState(); String newState = state.setTransitioning(); log.debug("Changing state [{}->{}] on [{}:{}]", previousState, newState, record.getResourceType(), record.getResourceId()); execution.getTransitions().add(new ProcessStateTransition(previousState, newState, "transitioning", now())); publishChanged(previousState, newState, schedule); return newState; }
protected boolean setDone(String previousState) { boolean chained = false; final ProcessState state = instanceContext.getState(); assertState(previousState); if (chainProcess != null) { scheduleChain(chainProcess); chained = true; } String newState = chained ? state.getState() : state.setDone(); log.debug("Changing state [{}->{}] on [{}:{}]", previousState, newState, record.getResourceType(), record.getResourceId()); execution.getTransitions().add(new ProcessStateTransition(previousState, newState, chained ? "chain" : "done", now())); publishChanged(previousState, newState, schedule); return chained; }
@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Instance instance = (Instance)state.getResource(); agentInstanceFactory.deleteAgent(instance); return null; }
@Override public void run() { try { objectProcessManager.scheduleStandardProcess(StandardProcess.CREATE, agentFinal, state.getData()); } catch (ProcessCancelException e) { } } });
@Override protected HandlerResult postHandle(ProcessState state, ProcessInstance process) { Agent agent = (Agent)state.getResource(); String newState = transitioningToDone.get(state.getState()); if (newState == null) { return null; } for (Host host : objectManager.children(agent, Host.class)) { log.debug("Setting host [{}] agentState to [{}] on post", host.getId(), newState); setState(host, newState); } return null; }
@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { List<Service> services = new ArrayList<>(); if (state.getResource() instanceof Service) { services.add((Service) state.getResource()); } else { if (state.getResource() instanceof Instance) { if (state.getData().containsKey(InstanceConstants.PROCESS_DATA_ERROR) || state.getData().containsKey(ServiceConstants.PROCESS_DATA_SERVICE_RECONCILE)) { return null; } } for (ServiceLookup lookup : serviceLookups) { Collection<? extends Service> lookupSvs = lookup.getServices(state.getResource()); if (lookupSvs != null) { services.addAll(lookupSvs); } } } deploymentManager.reconcileServices(services); return null; }
@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Service service = (Service) state.getResource(); deploymentMgr.deactivate(service); return null; }
public static List<ConfigUpdateRequest> getRequests(JsonMapper jsonMapper, ProcessState state) { List<ConfigUpdateRequest> result = new ArrayList<ConfigUpdateRequest>(); Map<String, Object> requests = CollectionUtils.toMap(state.getData().get(ConfigUpdateRequest.class.getName())); for (Object obj : requests.values()) { result.add(jsonMapper.convertValue(obj, ConfigUpdateRequest.class)); } return result; }
@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { switch (state.getPhase()) { case PRE_LISTENERS: return preHandle(state, process); case POST_LISTENERS: return postHandle(state, process); default: break; } return null; }