SolverRequest solverRequest = new SolverRequest(SolverRequest.Type.CREATE_CLUSTER, gson.toJson(clusterCreateRequest)); solverQueues.add(account.getTenantId(), new Element(cluster.getId(), gson.toJson(solverRequest)));
clusterStore.writeClusterJob(solverJob); switch (solverRequest.getType()) { case CREATE_CLUSTER: return solveClusterCreate(cluster, gson.fromJson(solverRequest.getJsonRequest(), ClusterCreateRequest.class)); case ADD_SERVICES: return solveAddServices(cluster, gson.fromJson(solverRequest.getJsonRequest(), AddServicesRequest.class)); default: return "unknown solver request type " + solverRequest.getType(); switch(solverRequest.getType()) { case CREATE_CLUSTER: taskService.failJobAndTerminateCluster(toFailJob, cluster, "Exception while solving layout.");
@Test public void testAddClusterWithOptionalArgs() throws Exception { String clusterName = "my-cluster"; String tenantId = USER1_ACCOUNT.getTenantId(); ClusterCreateRequest clusterCreateRequest = ClusterCreateRequest.builder() .setName(clusterName) .setClusterTemplateName(reactorTemplate.getName()) .setNumMachines(5) .setProviderName("joyent") .setServiceNames(ImmutableSet.of("namenode", "datanode")) .setHardwareTypeName("large") .setImageTypeName("centos6") .setInitialLeaseDuration(-1L) .build(); HttpResponse response = doPostExternalAPI("/clusters", gson.toJson(clusterCreateRequest), USER1_HEADERS); assertResponseStatus(response, HttpResponseStatus.OK); // check there was an element added to the cluster queue for creating this cluster Element element = solverQueues.take(tenantId, "0"); SolverRequest request = gson.fromJson(element.getValue(), SolverRequest.class); ClusterCreateRequest createRequest = gson.fromJson(request.getJsonRequest(), ClusterCreateRequest.class); Assert.assertEquals("joyent", createRequest.getProvider()); Assert.assertEquals("centos6", createRequest.getImageType()); Assert.assertEquals("large", createRequest.getHardwareType()); Assert.assertEquals(ImmutableSet.of("namenode", "datanode"), createRequest.getServices()); }
SolverRequest solverRequest = new SolverRequest(SolverRequest.Type.ADD_SERVICES, gson.toJson(addRequest)); solverQueues.add(account.getTenantId(), new Element(clusterId, gson.toJson(solverRequest))); } finally {
@Test public void testAddCluster() throws Exception { String clusterName = "my-cluster"; String tenantId = USER1_ACCOUNT.getTenantId(); ClusterCreateRequest clusterCreateRequest = ClusterCreateRequest.builder() .setName(clusterName) .setClusterTemplateName(reactorTemplate.getName()) .setNumMachines(5) .build(); HttpResponse response = doPostExternalAPI("/clusters", gson.toJson(clusterCreateRequest), USER1_HEADERS); assertResponseStatus(response, HttpResponseStatus.OK); String clusterId = getIdFromResponse(response); // check there was an element added to the cluster queue for creating this cluster Element element = solverQueues.take(tenantId, "0"); Assert.assertEquals(clusterId, element.getId()); ClusterCreateRequest expected = ClusterCreateRequest.builder() .setName(clusterName) .setClusterTemplateName(reactorTemplate.getName()) .setNumMachines(5) .setInitialLeaseDuration(-1L) .build(); SolverRequest expectedSolverRequest = new SolverRequest(SolverRequest.Type.CREATE_CLUSTER, gson.toJson(expected)); Assert.assertEquals(expectedSolverRequest, gson.fromJson(element.getValue(), SolverRequest.class)); }
.setInitialLeaseDuration(0L) .build(); SolverRequest solverRequest = new SolverRequest(SolverRequest.Type.CREATE_CLUSTER, gson.toJson(createRequest)); String queueName = "tenant123"; solverQueues.add(queueName, new Element(cluster.getId(), gson.toJson(solverRequest)));