/** * Register cron job REST API * * @param message - JSON with cron expressions. * @return JSON with status.OK * @throws IOException, IllegalArgumentException */ @POST @Path("cron/{notebookId}") @ZeppelinApi public Response registerCronJob(@PathParam("notebookId") String notebookId, String message) throws IOException, IllegalArgumentException { LOG.info("Register cron job note={} request cron msg={}", notebookId, message); CronRequest request = gson.fromJson(message, CronRequest.class); Note note = notebook.getNote(notebookId); if (note == null) { return new JsonResponse<>(Status.NOT_FOUND, "note not found.").build(); } if (!CronExpression.isValidExpression(request.getCronString())) { return new JsonResponse<>(Status.BAD_REQUEST, "wrong cron expressions.").build(); } Map<String, Object> config = note.getConfig(); config.put("cron", request.getCronString()); note.setConfig(config); notebook.refreshCron(note.id()); return new JsonResponse<>(Status.OK).build(); }
/** * Remove cron job REST API * * @param * @return JSON with status.OK * @throws IOException, IllegalArgumentException */ @DELETE @Path("cron/{notebookId}") @ZeppelinApi public Response removeCronJob(@PathParam("notebookId") String notebookId) throws IOException, IllegalArgumentException { LOG.info("Remove cron job note {}", notebookId); Note note = notebook.getNote(notebookId); if (note == null) { return new JsonResponse<>(Status.NOT_FOUND, "note not found.").build(); } Map<String, Object> config = note.getConfig(); config.put("cron", null); note.setConfig(config); notebook.refreshCron(note.id()); return new JsonResponse<>(Status.OK).build(); }