@Override public ListenableFuture<?> apply(ProgramController controller) { return controller.suspend(); } })).get();
@Override public ListenableFuture<ProgramController> apply(ProgramController input) { return input.suspend(); } })).get();
@Override public ListenableFuture<?> apply(ProgramController controller) { return controller.suspend(); } })).get();
@Override public void handleCommand(Command command) throws Exception { // need to make sure controller exists before handling the command if (ProgramCommands.SUSPEND.equals(command)) { controllerFuture.get().suspend().get(); return; } if (ProgramCommands.RESUME.equals(command)) { controllerFuture.get().resume().get(); return; } if (ProgramOptionConstants.INSTANCES.equals(command.getCommand())) { int instances = Integer.parseInt(command.getOptions().get("count")); controllerFuture.get().command(ProgramOptionConstants.INSTANCES, instances).get(); return; } LOG.warn("Ignore unsupported command: " + command); }
@Override public void handleCommand(Command command) throws Exception { // need to make sure controller exists before handling the command if (ProgramCommands.SUSPEND.equals(command)) { controllerFuture.get().suspend().get(); return; } if (ProgramCommands.RESUME.equals(command)) { controllerFuture.get().resume().get(); return; } if (ProgramOptionConstants.INSTANCES.equals(command.getCommand())) { int instances = Integer.parseInt(command.getOptions().get("count")); controllerFuture.get().command(ProgramOptionConstants.INSTANCES, instances).get(); return; } LOG.warn("Ignore unsupported command: " + command); }
@POST @Path("/apps/{app-id}/workflows/{workflow-name}/runs/{run-id}/suspend") public void suspendWorkflowRun(HttpRequest request, HttpResponder responder, @PathParam("namespace-id") String namespaceId, @PathParam("app-id") String appId, @PathParam("workflow-name") String workflowName, @PathParam("run-id") String runId) throws Exception { ProgramId id = new ProgramId(namespaceId, appId, ProgramType.WORKFLOW, workflowName); ProgramRuntimeService.RuntimeInfo runtimeInfo = runtimeService.list(id).get(RunIds.fromString(runId)); if (runtimeInfo == null) { throw new NotFoundException(id.run(runId)); } ProgramController controller = runtimeInfo.getController(); if (controller.getState() == ProgramController.State.SUSPENDED) { throw new ConflictException("Program run already suspended"); } controller.suspend().get(); responder.sendString(HttpResponseStatus.OK, "Program run suspended."); }
@POST @Path("/apps/{app-id}/workflows/{workflow-name}/runs/{run-id}/suspend") public void suspendWorkflowRun(HttpRequest request, HttpResponder responder, @PathParam("namespace-id") String namespaceId, @PathParam("app-id") String appId, @PathParam("workflow-name") String workflowName, @PathParam("run-id") String runId) throws Exception { ProgramId id = new ProgramId(namespaceId, appId, ProgramType.WORKFLOW, workflowName); ProgramRuntimeService.RuntimeInfo runtimeInfo = runtimeService.list(id).get(RunIds.fromString(runId)); if (runtimeInfo == null) { throw new NotFoundException(id.run(runId)); } ProgramController controller = runtimeInfo.getController(); if (controller.getState() == ProgramController.State.SUSPENDED) { throw new ConflictException("Program run already suspended"); } controller.suspend().get(); responder.sendString(HttpResponseStatus.OK, "Program run suspended."); }