ClusterCleanup clusterCleanup = new ClusterCleanup(clusterStore, clusterService, nodeService, taskService, jobQueues, provisionerQueues, 1, 1, 1);
@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))); }
@Test public void testOnlyCorrectClustersAreCleaned() throws Exception { long now = System.currentTimeMillis(); for (int i = 0; i < 20; i++) { createCluster(String.valueOf(i), now - 1000, now - 100, Cluster.Status.ACTIVE); } String queueName = account.getTenantId(); ClusterCleanup clusterCleanup = new ClusterCleanup(clusterStore, clusterService, nodeService, taskService, jobQueues, provisionerQueues, -10, 3, 7); Assert.assertEquals(0, Iterators.size(clusterQueues.getQueued(queueName))); clusterCleanup.run(); // clusters 3, 10, and 17 should have been scheduled for deletion Assert.assertEquals(3, Iterators.size(clusterQueues.getQueued(queueName))); Element e1 = clusterQueues.take(queueName, "consumer1"); Element e2 = clusterQueues.take(queueName, "consumer1"); Element e3 = clusterQueues.take(queueName, "consumer1"); Assert.assertEquals(ImmutableSet.of("3", "10", "17"), ImmutableSet.of(e1.getId(), e2.getId(), e3.getId())); Assert.assertEquals(ClusterAction.CLUSTER_DELETE.name(), e1.getValue()); Assert.assertEquals(ClusterAction.CLUSTER_DELETE.name(), e2.getValue()); Assert.assertEquals(ClusterAction.CLUSTER_DELETE.name(), e3.getValue()); }
@Test public void testCleanup() throws Exception { ClusterCleanup clusterCleanup = new ClusterCleanup(clusterStore, clusterService, nodeService, taskService, jobQueues, provisionerQueues, 1, 1, 1);