package io.cattle.platform.iaas.api.process; import io.cattle.platform.api.action.ActionHandler; import io.cattle.platform.core.model.ProcessInstance; import io.cattle.platform.engine.eventing.EngineEvents; import io.cattle.platform.eventing.EventService; import io.cattle.platform.eventing.model.Event; import io.cattle.platform.eventing.model.EventVO; import io.cattle.platform.object.ObjectManager; import io.github.ibuildthecloud.gdapi.request.ApiRequest; import javax.inject.Inject; public class ProcessInstanceReplayHandler implements ActionHandler { @Inject ObjectManager objectManager; @Inject EventService eventService; @Override public String getName() { return "processinstance.replay"; } @Override public Object perform(String name, Object obj, ApiRequest request) { ProcessInstance pi = objectManager.loadResource(ProcessInstance.class, request.getId()); if (pi == null) { return null; } pi.setRunAfter(null); pi.setExecutionCount(0L); objectManager.persist(pi); Event event = EventVO.newEvent(EngineEvents.PROCESS_EXECUTE).withResourceId(pi.getId().toString()); eventService.publish(event); return pi; } }