/** * @throws Exception If test failed. */ @Test public void testCheckpointEvents() throws Exception { long tstamp = startTimestamp(); generateEvents(null, new GridAllCheckpointEventsTestJob()).get(); List<Event> evts = pullEvents(tstamp, 11); assertEvent(evts.get(0).type(), EVT_TASK_STARTED, evts); assertEvent(evts.get(1).type(), EVT_JOB_MAPPED, evts); assertEvent(evts.get(2).type(), EVT_JOB_QUEUED, evts); assertEvent(evts.get(3).type(), EVT_JOB_STARTED, evts); assertEvent(evts.get(4).type(), EVT_CHECKPOINT_SAVED, evts); assertEvent(evts.get(5).type(), EVT_CHECKPOINT_LOADED, evts); assertEvent(evts.get(6).type(), EVT_CHECKPOINT_REMOVED, evts); assertEvent(evts.get(7).type(), EVT_JOB_RESULTED, evts); assertEvent(evts.get(8).type(), EVT_TASK_REDUCED, evts); assertEvent(evts.get(9).type(), EVT_TASK_FINISHED, evts); assertEvent(evts.get(10).type(), EVT_JOB_FINISHED, evts); assertNotNull(((JobEvent)evts.get(7)).resultPolicy()); assertEquals(WAIT, ((JobEvent)evts.get(7)).resultPolicy()); }
/** * @throws Exception If test failed. */ @Test public void testSuccessTask() throws Exception { generateEvents(null, new GridAllEventsSuccessTestJob()).get(); long tstamp = startTimestamp(); generateEvents(null, new GridAllEventsSuccessTestJob()).get(); List<Event> evts = pullEvents(tstamp, 10); assertEvent(evts.get(0).type(), EVT_TASK_STARTED, evts); assertEvent(evts.get(1).type(), EVT_JOB_MAPPED, evts); assertEvent(evts.get(2).type(), EVT_JOB_QUEUED, evts); assertEvent(evts.get(3).type(), EVT_JOB_STARTED, evts); assertEvent(evts.get(4).type(), EVT_CHECKPOINT_SAVED, evts); assertEvent(evts.get(5).type(), EVT_CHECKPOINT_REMOVED, evts); assertEvent(evts.get(6).type(), EVT_JOB_RESULTED, evts); assertEvent(evts.get(7).type(), EVT_TASK_REDUCED, evts); assertEvent(evts.get(8).type(), EVT_TASK_FINISHED, evts); assertEvent(evts.get(9).type(), EVT_JOB_FINISHED, evts); assertNotNull(((JobEvent)evts.get(6)).resultPolicy()); assertEquals(WAIT, ((JobEvent)evts.get(6)).resultPolicy()); }
/** * @throws Exception If test failed. */ @Test public void testFailTask() throws Exception { long tstamp = startTimestamp(); ComputeTaskFuture<?> fut = generateEvents(null, new GridAllEventsFailTestJob()); try { fut.get(); assert false : "Grid with locally executed job with timeout should throw ComputeTaskTimeoutException."; } catch (IgniteException e) { info("Expected exception caught [taskFuture=" + fut + ", exception=" + e + ']'); } List<Event> evts = pullEvents(tstamp, 7); assertEvent(evts.get(0).type(), EVT_TASK_STARTED, evts); assertEvent(evts.get(1).type(), EVT_JOB_MAPPED, evts); assertEvent(evts.get(2).type(), EVT_JOB_QUEUED, evts); assertEvent(evts.get(3).type(), EVT_JOB_STARTED, evts); assertEvent(evts.get(4).type(), EVT_JOB_RESULTED, evts); assertEvent(evts.get(5).type(), EVT_TASK_FAILED, evts); assertEvent(evts.get(6).type(), EVT_JOB_FAILED, evts); // Exception was thrown, so policy is null. assertNull(((JobEvent)evts.get(4)).resultPolicy()); }
assertEvent(evts.get(11).type(), EVT_TASK_DEPLOYED, evts); assertNotNull(((JobEvent)evts.get(6)).resultPolicy()); assertEquals(WAIT, ((JobEvent)evts.get(6)).resultPolicy());
assertEvent(evts.get(cnt++).type(), EVT_JOB_RESULTED, evts); assertEquals(((JobEvent)evts.get(cnt - 1)).resultPolicy(), FAILOVER);
/** * @param evtType Event type. * @param jobId Job ID. * @param evtNode Event node. * @param plc Job result policy. * @param msg Event message. */ private void recordJobEvent(int evtType, IgniteUuid jobId, ClusterNode evtNode, @Nullable ComputeJobResultPolicy plc, String msg) { if (!internal && ctx.event().isRecordable(evtType)) { JobEvent evt = new JobEvent(); evt.message(msg); evt.node(ctx.discovery().localNode()); evt.taskName(ses.getTaskName()); evt.taskClassName(ses.getTaskClassName()); evt.taskSessionId(ses.getId()); evt.taskNode(evtNode); evt.jobId(jobId); evt.type(evtType); evt.taskSubjectId(ses.subjectId()); evt.resultPolicy(plc); ctx.event().record(evt); } }
/** * @param evtType Event type. * @param jobId Job ID. * @param evtNode Event node. * @param plc Job result policy. * @param msg Event message. */ private void recordJobEvent(int evtType, IgniteUuid jobId, ClusterNode evtNode, @Nullable ComputeJobResultPolicy plc, String msg) { if (!internal && ctx.event().isRecordable(evtType)) { JobEvent evt = new JobEvent(); evt.message(msg); evt.node(ctx.discovery().localNode()); evt.taskName(ses.getTaskName()); evt.taskClassName(ses.getTaskClassName()); evt.taskSessionId(ses.getId()); evt.taskNode(evtNode); evt.jobId(jobId); evt.type(evtType); evt.taskSubjectId(ses.subjectId()); evt.resultPolicy(plc); ctx.event().record(evt); } }