notSubmittedTasks.add(scheduleRetry(job, task)); submitTasks(notSubmittedTasks, cluster, nodeMap, clusterNodes, job, queueName); if (job.getClusterAction() == ClusterAction.CLUSTER_CREATE && allCreateTasksFailed(job)) { String message = job.getStatusMessage();
private void testCallbacks(boolean failJob) throws Exception { ClusterScheduler clusterScheduler = injector.getInstance(ClusterScheduler.class); String tenantId = cluster.getAccount().getTenantId(); clusterQueues.add(tenantId, new Element(cluster.getId(), ClusterAction.CLUSTER_CREATE.name())); clusterScheduler.run(); CallbackScheduler callbackScheduler = injector.getInstance(CallbackScheduler.class); // should be no job in the queue until the start callback runs Assert.assertEquals(0, jobQueues.size(tenantId)); waitForCallback(callbackScheduler); Assert.assertEquals(CallbackData.Type.START, mockClusterCallback.getReceivedCallbacks().get(0).getType()); JobScheduler jobScheduler = injector.getInstance(JobScheduler.class); jobScheduler.run(); // take tasks until there are no more TakeTaskRequest takeRequest = new TakeTaskRequest("consumer1", PROVISIONER_ID, tenantId); SchedulableTask task = TestHelper.takeTask(getInternalServerUrl(), takeRequest); while (task != null) { FinishTaskRequest finishRequest = new FinishTaskRequest("consumer1", PROVISIONER_ID, tenantId, task.getTaskId(), null, null, failJob ? 1 : 0, null, null, null); TestHelper.finishTask(getInternalServerUrl(), finishRequest); jobScheduler.run(); jobScheduler.run(); task = TestHelper.takeTask(getInternalServerUrl(), takeRequest); } jobScheduler.run(); waitForCallback(callbackScheduler); // at this point, the failure callback should have run Assert.assertEquals(failJob ? CallbackData.Type.FAILURE : CallbackData.Type.SUCCESS, mockClusterCallback.getReceivedCallbacks().get(1).getType()); }
ClusterAction.CLUSTER_CREATE, 3, 0); jobScheduler.run();
jobQueues.add(tenantId, new Element(jobId)); JobScheduler jobScheduler = injector.getInstance(JobScheduler.class); jobScheduler.run(); clusterStore.writeClusterJob(job); jobScheduler.run(); job = clusterStore.getClusterJob(JobId.fromString(jobId)); Set newStage = job.getCurrentStage(); clusterStore.writeClusterJob(job); jobQueues.add(tenantId, new Element(jobId)); jobScheduler.run(); job = clusterStore.getClusterJob(JobId.fromString(jobId)); newStage = job.getCurrentStage();
jobScheduler.run(); Assert.assertEquals(0, jobQueues.size(tenantId)); jobScheduler.run(); jobScheduler.run(); jobScheduler.run(); jobScheduler.run(); task.getTaskId(), null, null, 0, null, null, null); TestHelper.finishTask(getInternalServerUrl(), finishRequest); jobScheduler.run(); jobScheduler.run();