use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceMetadataType.GATEWAY in project cloudbreak by hortonworks.
the class PlatformRecommendationToPlatformRecommendationV4ResponseConverter method convert.
public RecommendationV4Response convert(PlatformRecommendation source) {
Map<String, VmTypeV4Response> result = new HashMap<>();
source.getRecommendations().forEach((hostGroupName, vm) -> result.put(hostGroupName, vmTypeToVmTypeV4ResponseConverter.convert(vm)));
Set<VmTypeV4Response> vmTypes = source.getVirtualMachines().stream().map(vmType -> vmTypeToVmTypeV4ResponseConverter.convert(vmType)).collect(Collectors.toSet());
Set<DiskV4Response> diskResponses = new HashSet<>();
for (Entry<DiskType, DisplayName> diskTypeDisplayName : source.getDiskTypes().displayNames().entrySet()) {
for (Entry<String, VolumeParameterType> volumeParameterType : source.getDiskTypes().diskMapping().entrySet()) {
if (diskTypeDisplayName.getKey().value().equals(volumeParameterType.getKey())) {
DiskV4Response diskResponse = new DiskV4Response(diskTypeDisplayName.getKey().value(), volumeParameterType.getValue().name(), diskTypeDisplayName.getValue().value());
diskResponses.add(diskResponse);
}
}
}
Map<String, InstanceCountV4Response> instanceCounts = new TreeMap<>();
source.getInstanceCounts().forEach((hostGroupName, instanceCount) -> instanceCounts.put(hostGroupName, new InstanceCountV4Response(instanceCount.getMinimumCount(), instanceCount.getMaximumCount())));
GatewayRecommendationV4Response gateway = new GatewayRecommendationV4Response(source.getGatewayRecommendation().getHostGroups());
AutoscaleRecommendationV4Response autoscaleRecommendation = new AutoscaleRecommendationV4Response(source.getAutoscaleRecommendation().getTimeBasedHostGroups(), source.getAutoscaleRecommendation().getLoadBasedHostGroups());
ResizeRecommendationV4Response resizeRecommendation = new ResizeRecommendationV4Response(source.getResizeRecommendation().getScaleUpHostGroups(), source.getResizeRecommendation().getScaleDownHostGroups());
return new RecommendationV4Response(result, vmTypes, diskResponses, instanceCounts, gateway, autoscaleRecommendation, resizeRecommendation);
}
use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceMetadataType.GATEWAY in project cloudbreak by hortonworks.
the class OpdbServiceEndpointCollectorTest method testPrepareClusterExposedServices.
@Test
public void testPrepareClusterExposedServices() {
Cluster cluster = createClusterWithComponents(GatewayType.INDIVIDUAL);
cluster.getGateway().setGatewayPort(443);
mockTemplateComponents();
mockComponentLocator(Lists.newArrayList("10.0.0.1"));
Map<String, Collection<ClusterExposedServiceV4Response>> clusterExposedServicesMap = underTest.prepareClusterExposedServices(cluster, "10.0.0.1");
assertEquals(clusterExposedServicesMap.toString(), 2L, clusterExposedServicesMap.keySet().size());
Collection<ClusterExposedServiceV4Response> proxyServices = clusterExposedServicesMap.get("proxy");
Collection<ClusterExposedServiceV4Response> proxyApiServices = clusterExposedServicesMap.get("proxy-api");
assertNotNull("Topology proxy services was null", proxyServices);
assertNotNull("Topology proxy API services was null", proxyApiServices);
Set<String> proxyServiceNames = proxyServices.stream().map(ClusterExposedServiceV4Response::getKnoxService).collect(Collectors.toSet());
Set<String> proxyApiServiceNames = proxyApiServices.stream().map(ClusterExposedServiceV4Response::getKnoxService).collect(Collectors.toSet());
assertEquals(proxyServiceNames.toString(), 2, proxyServiceNames.size());
assertEquals(proxyApiServiceNames.toString(), 4, proxyApiServiceNames.size());
assertEquals(new HashSet<>(Arrays.asList("CM-UI", "HBASEUI")), proxyServiceNames);
assertEquals(new HashSet<>(Arrays.asList("CM-API", "HBASEJARS", "WEBHBASE", "AVATICA")), proxyApiServiceNames);
Optional<ClusterExposedServiceV4Response> hbasejars = proxyApiServices.stream().filter(service -> service.getKnoxService().equals("HBASEJARS")).findFirst();
Optional<ClusterExposedServiceV4Response> avatica = proxyApiServices.stream().filter(service -> service.getKnoxService().equals("AVATICA")).findFirst();
assertTrue(hbasejars.isPresent());
assertTrue(avatica.isPresent());
assertEquals("https://10.0.0.1/gateway-path/proxy-api/hbase/jars", hbasejars.get().getServiceUrl());
assertEquals("https://10.0.0.1/gateway-path/proxy-api/avatica/", avatica.get().getServiceUrl());
}
use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceMetadataType.GATEWAY in project cloudbreak by hortonworks.
the class ServiceEndpointCollectorTest method testPrepareClusterExposedServices.
@Test
public void testPrepareClusterExposedServices() {
Cluster cluster = createClusterWithComponents(new ExposedService[] { exposedService("ATLAS") }, new ExposedService[] { exposedService("HIVE_SERVER"), exposedService("WEBHDFS") }, GatewayType.INDIVIDUAL);
cluster.getGateway().setGatewayPort(443);
mockBlueprintTextProcessor();
mockComponentLocator(Lists.newArrayList("10.0.0.1"));
Map<String, Collection<ClusterExposedServiceV4Response>> clusterExposedServicesMap = underTest.prepareClusterExposedServices(cluster, "10.0.0.1");
assertEquals(4L, clusterExposedServicesMap.keySet().size());
Collection<ClusterExposedServiceV4Response> topology2ClusterExposedServiceV4Responses = clusterExposedServicesMap.get("topology2");
Optional<ClusterExposedServiceV4Response> webHDFS = topology2ClusterExposedServiceV4Responses.stream().filter(service -> "WEBHDFS".equals(service.getKnoxService())).findFirst();
if (webHDFS.isPresent()) {
assertEquals("https://10.0.0.1/gateway-path/topology2/webhdfs/v1", webHDFS.get().getServiceUrl());
assertEquals("WEBHDFS", webHDFS.get().getKnoxService());
assertEquals("WebHDFS", webHDFS.get().getDisplayName());
assertEquals("NAMENODE", webHDFS.get().getServiceName());
assertTrue(webHDFS.get().isOpen());
}
Optional<ClusterExposedServiceV4Response> sparkHistoryUI = topology2ClusterExposedServiceV4Responses.stream().filter(service -> "SPARKHISTORYUI".equals(service.getKnoxService())).findFirst();
if (sparkHistoryUI.isPresent()) {
assertEquals("https://10.0.0.1/gateway-path/topology2/sparkhistory/", sparkHistoryUI.get().getServiceUrl());
assertEquals("SPARKHISTORYUI", sparkHistoryUI.get().getKnoxService());
assertEquals("Spark 1.x History Server", sparkHistoryUI.get().getDisplayName());
assertEquals("SPARK_YARN_HISTORY_SERVER", sparkHistoryUI.get().getServiceName());
assertFalse(sparkHistoryUI.get().isOpen());
}
Optional<ClusterExposedServiceV4Response> hiveServer = topology2ClusterExposedServiceV4Responses.stream().filter(service -> "HIVE".equals(service.getKnoxService())).findFirst();
if (hiveServer.isPresent()) {
assertEquals("jdbc:hive2://10.0.0.1/;ssl=true;sslTrustStore=/cert/gateway.jks;trustStorePassword=${GATEWAY_JKS_PASSWORD};" + "transportMode=http;httpPath=gateway-path/topology2/hive", hiveServer.get().getServiceUrl());
assertEquals("HIVE", hiveServer.get().getKnoxService());
assertEquals("Hive Server", hiveServer.get().getDisplayName());
assertEquals("HIVE_SERVER", hiveServer.get().getServiceName());
assertTrue(hiveServer.get().isOpen());
}
}
use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceMetadataType.GATEWAY in project cloudbreak by hortonworks.
the class GatewayConvertUtilTest method testGatewayPathConversionWhenPathIsInGatewayJson.
@Test
public void testGatewayPathConversionWhenPathIsInGatewayJson() {
Gateway gateway = new Gateway();
String gatewayPath = "gatewayPath";
GatewayV4Request gatewayJson = new GatewayV4Request();
gatewayJson.setPath(gatewayPath);
underTest.setGatewayPathAndSsoProvider(gatewayJson, gateway);
assertEquals('/' + gateway.getPath() + "/sso/api/v1/websso", gateway.getSsoProvider());
assertEquals(gatewayPath, gateway.getPath());
assertEquals('/' + gateway.getPath() + "/sso/api/v1/websso", gateway.getSsoProvider());
}
use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceMetadataType.GATEWAY in project cloudbreak by hortonworks.
the class GatewayConvertUtilTest method testSetMultipleTopologies.
@Test
public void testSetMultipleTopologies() {
GatewayV4Request source = new GatewayV4Request();
GatewayTopologyV4Request topology1 = new GatewayTopologyV4Request();
topology1.setTopologyName("topology1");
topology1.setExposedServices(Collections.singletonList("AMBARI"));
GatewayTopologyV4Request topology2 = new GatewayTopologyV4Request();
topology2.setTopologyName("topology2");
topology2.setExposedServices(Collections.singletonList("ALL"));
source.setTopologies(Arrays.asList(topology1, topology2));
Gateway result = new Gateway();
when(gatewayTopologyV4RequestToGatewayTopologyConverter.convert(any())).thenReturn(new GatewayTopology());
underTest.setTopologies(source, result);
verify(gatewayTopologyV4RequestToGatewayTopologyConverter, times(2)).convert(any());
}
Aggregations