/** * Fail a task by setting the status of the task to {@link ClusterTask.Status#FAILED} and the status time to the * current timestamp and the status code to the given code. * * @param clusterTask Task to fail. * @param status Status code of the failed task. * @throws IOException */ public void failTask(ClusterTask clusterTask, int status) throws IOException { clusterTask.setStatus(ClusterTask.Status.FAILED); clusterTask.setStatusCode(status); clusterTask.setStatusTime(System.currentTimeMillis()); clusterStore.writeClusterTask(clusterTask); // Update stats serverStats.getFailedProvisionerStats().incrementStat(clusterTask.getTaskName()); }
/** * Drop a task by setting the status of the task to {@link ClusterTask.Status#DROPPED} and the status time to the * current timestamp. Tasks can be dropped if there is no longer any point in executing them. For example, if another * task in the same stage has failed, the entire job cannot complete so there is no point in executing any * unexecuted task in the job. * * @param clusterTask Task to drop. * @throws IOException */ public void dropTask(ClusterTask clusterTask) throws IOException { clusterTask.setStatus(ClusterTask.Status.DROPPED); clusterTask.setStatusTime(System.currentTimeMillis()); clusterStore.writeClusterTask(clusterTask); // Update stats serverStats.getDroppedProvisionerStats().incrementStat(clusterTask.getTaskName()); }
/** * Starts a task by setting the status of the task to {@link ClusterTask.Status#IN_PROGRESS} and the submit time * to the current timestamp. * * @param clusterTask Task to start. * @throws IOException */ public void startTask(ClusterTask clusterTask) throws IOException { clusterTask.setStatus(ClusterTask.Status.IN_PROGRESS); clusterTask.setSubmitTime(System.currentTimeMillis()); clusterStore.writeClusterTask(clusterTask); // Update stats serverStats.getProvisionerStats().incrementStat(clusterTask.getTaskName()); }
@Test public void noPermissionsTest() throws Exception { long submitTimeTask6 = 1; long statusTimeTask6 = 2; clusterStore.writeClusterTask(CLUSTER_TASK6); CLUSTER_TASK6.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK6.setSubmitTime(submitTimeTask6); CLUSTER_TASK6.setStatusTime(statusTimeTask6); clusterStore.writeClusterTask(CLUSTER_TASK6); HttpResponse response = doGetExternalAPI("/metrics/nodes/usage?start=5&end=22&tenant=tenant2", USER1_HEADERS); assertResponseStatus(response, HttpResponseStatus.METHOD_NOT_ALLOWED); }
/** * Complete a task by setting the status of the task to {@link ClusterTask.Status#COMPLETE} and the status time to * the current timestamp and the status code to the given code. * * @param clusterTask Task to complete. * @param status Status code of the completed task. * @throws IOException */ public void completeTask(ClusterTask clusterTask, int status) throws IOException { clusterTask.setStatus(ClusterTask.Status.COMPLETE); clusterTask.setStatusCode(status); clusterTask.setStatusTime(System.currentTimeMillis()); clusterStore.writeClusterTask(clusterTask); // update stats serverStats.getSuccessfulProvisionerStats().incrementStat(clusterTask.getTaskName()); }
CLUSTER_TASK1.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK1.setSubmitTime(submitTimeTask1); CLUSTER_TASK1.setStatusTime(statusTimeTask1); CLUSTER_TASK2.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK2.setSubmitTime(submitTimeTask2); CLUSTER_TASK2.setStatusTime(statusTimeTask2); CLUSTER_TASK3.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK3.setSubmitTime(submitTimeTask3); CLUSTER_TASK3.setStatusTime(statusTimeTask3); CLUSTER_TASK4.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK4.setSubmitTime(submitTimeTask4); CLUSTER_TASK4.setStatusTime(statusTimeTask4); CLUSTER_TASK5.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK5.setSubmitTime(submitTimeTask5); CLUSTER_TASK5.setStatusTime(statusTimeTask5); CLUSTER_TASK6.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK6.setSubmitTime(submitTimeTask6); CLUSTER_TASK6.setStatusTime(statusTimeTask6); CLUSTER_TASK7.setStatus(ClusterTask.Status.FAILED); CLUSTER_TASK7.setSubmitTime(submitTimeTask7); CLUSTER_TASK7.setStatusTime(statusTimeTask7);
@Test public void testQueuedTaskMissingFromStoreIsRemovedFromQueue() { ClusterCleanup clusterCleanup = new ClusterCleanup(clusterStore, clusterService, nodeService, taskService, jobQueues, provisionerQueues, -10, 1, 1); String queueName = account.getTenantId(); ClusterTask task = new ClusterTask(ProvisionerAction.CREATE, TaskId.fromString("3-1-1"), "node1", "service", ClusterAction.CLUSTER_CREATE, "test", account); task.setStatus(ClusterTask.Status.IN_PROGRESS); Cluster cluster = Entities.ClusterExample.createCluster(); TaskConfig taskConfig = TaskConfig.from(cluster, Entities.ClusterExample.NODE1, Entities.ServiceExample.NAMENODE, cluster.getConfig(), ProvisionerAction.START, null); SchedulableTask schedulableTask = new SchedulableTask(task, taskConfig); // add a task to the queue without storing it.x provisionerQueues.add(queueName, new Element(task.getTaskId(), gson.toJson(schedulableTask))); provisionerQueues.takeIterator("0").next(); clusterCleanup.run(); Assert.assertEquals(0, Iterators.size(provisionerQueues.getBeingConsumed(queueName))); }
CLUSTER_TASK1.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK1.setSubmitTime(submitTimeTask1); CLUSTER_TASK1.setStatusTime(statusTimeTask1); CLUSTER_TASK2.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK2.setSubmitTime(submitTimeTask2); CLUSTER_TASK2.setStatusTime(statusTimeTask2); CLUSTER_TASK3.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK3.setSubmitTime(submitTimeTask3); CLUSTER_TASK3.setStatusTime(statusTimeTask3); CLUSTER_TASK4.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK4.setSubmitTime(submitTimeTask4); CLUSTER_TASK4.setStatusTime(statusTimeTask4); CLUSTER_TASK5.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK5.setSubmitTime(submitTimeTask5); CLUSTER_TASK5.setStatusTime(statusTimeTask5); CLUSTER_TASK6.setStatus(ClusterTask.Status.COMPLETE); CLUSTER_TASK6.setSubmitTime(submitTimeTask6); CLUSTER_TASK6.setStatusTime(statusTimeTask6); CLUSTER_TASK7.setStatus(ClusterTask.Status.FAILED); CLUSTER_TASK7.setSubmitTime(submitTimeTask7); CLUSTER_TASK7.setStatusTime(statusTimeTask7);