Search in sources :

Example 16 with GATEWAY

use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceMetadataType.GATEWAY in project cloudbreak by hortonworks.

the class StackV4RequestToGatewayConverterTest method shouldCreateCorrectSsoUrlWhenClusterNameisProvided.

@Test
public void shouldCreateCorrectSsoUrlWhenClusterNameisProvided() {
    GatewayV4Request gatewayJson = new GatewayV4Request();
    gatewayJson.setPath("funnyPath");
    gatewayJson.setTopologies(Arrays.asList(getGatewayTopologyV4Request()));
    StackV4Request source = generateStackV4Request(gatewayJson);
    when(gatewayJsonValidator.validate(gatewayJson)).thenReturn(ValidationResult.builder().build());
    doAnswer(i -> {
        Gateway gw = i.getArgument(1);
        gw.setSsoProvider("SSOPROVIDER");
        gw.setPath(gatewayJson.getPath());
        gw.setTopologies(GATEWAY_TOPOLOGY);
        gw.setGatewayType(GatewayType.CENTRAL);
        return null;
    }).when(convertUtil).setBasicProperties(eq(gatewayJson), any(Gateway.class));
    Gateway result = underTest.convert(source);
    assertEquals("SSOPROVIDER", result.getSsoProvider());
    assertEquals("funnyPath", result.getPath());
    assertTrue(EqualsBuilder.reflectionEquals(GATEWAY_TOPOLOGY, result.getTopologies()));
    assertEquals(GatewayType.CENTRAL, result.getGatewayType());
}
Also used : GatewayV4Request(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.cluster.gateway.GatewayV4Request) StackV4Request(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.StackV4Request) Gateway(com.sequenceiq.cloudbreak.domain.stack.cluster.gateway.Gateway) Test(org.junit.Test)

Example 17 with GATEWAY

use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceMetadataType.GATEWAY in project cloudbreak by hortonworks.

the class StackV4RequestToTemplatePreparationObjectConverterTest method testConvertWhenGatewayExistsInStack.

@Test
public void testConvertWhenGatewayExistsInStack() {
    when(stackV4RequestToGatewayConverter.convert(source)).thenReturn(new Gateway());
    when(cluster.getGateway()).thenReturn(new GatewayV4Request());
    TemplatePreparationObject result = underTest.convert(source);
    assertNotNull(result.getGatewayView());
}
Also used : GatewayV4Request(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.cluster.gateway.GatewayV4Request) TemplatePreparationObject(com.sequenceiq.cloudbreak.template.TemplatePreparationObject) Gateway(com.sequenceiq.cloudbreak.domain.stack.cluster.gateway.Gateway) Test(org.junit.Test)

Example 18 with GATEWAY

use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceMetadataType.GATEWAY in project cloudbreak by hortonworks.

the class ServiceEndpointCollectorTest method testPrepareClusterExposedServicesByGeneratedBlueprint.

@Test
public void testPrepareClusterExposedServicesByGeneratedBlueprint() {
    Cluster cluster = createClusterWithComponents(new ExposedService[] { exposedService("ATLAS") }, new ExposedService[] { exposedService("HIVE_SERVER"), exposedService("WEBHDFS") }, GatewayType.INDIVIDUAL);
    cluster.getGateway().setGatewayPort(443);
    cluster.setExtendedBlueprintText("extended-blueprint");
    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());
    }
}
Also used : Arrays(java.util.Arrays) EntitlementService(com.sequenceiq.cloudbreak.auth.altus.EntitlementService) ClusterExposedServiceV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.response.cluster.gateway.topology.ClusterExposedServiceV4Response) ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) GatewayTopologyV4RequestToExposedServicesConverter(com.sequenceiq.cloudbreak.converter.v4.stacks.cluster.gateway.topology.GatewayTopologyV4RequestToExposedServicesConverter) CmTemplateProcessorFactory(com.sequenceiq.cloudbreak.cmtemplate.CmTemplateProcessorFactory) Orchestrator(com.sequenceiq.cloudbreak.domain.Orchestrator) ValidationResult(com.sequenceiq.cloudbreak.validation.ValidationResult) Map(java.util.Map) Gateway(com.sequenceiq.cloudbreak.domain.stack.cluster.gateway.Gateway) ExposedServiceCollector(com.sequenceiq.cloudbreak.api.service.ExposedServiceCollector) Blueprint(com.sequenceiq.cloudbreak.domain.Blueprint) ExposedServiceListValidator(com.sequenceiq.cloudbreak.controller.validation.stack.cluster.gateway.ExposedServiceListValidator) Collection(java.util.Collection) Set(java.util.Set) ExposedService(com.sequenceiq.cloudbreak.api.service.ExposedService) ArgumentMatchers.anyList(org.mockito.ArgumentMatchers.anyList) Collectors(java.util.stream.Collectors) Sets(com.google.common.collect.Sets) Json(com.sequenceiq.cloudbreak.common.json.Json) List(java.util.List) GatewayType(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.GatewayType) StackServiceComponentDescriptors(com.sequenceiq.cloudbreak.cmtemplate.validation.StackServiceComponentDescriptors) Assert.assertFalse(org.junit.Assert.assertFalse) Tenant(com.sequenceiq.cloudbreak.workspace.model.Tenant) Optional(java.util.Optional) ExposedServices(com.sequenceiq.cloudbreak.domain.stack.cluster.gateway.ExposedServices) CmTemplateProcessor(com.sequenceiq.cloudbreak.cmtemplate.CmTemplateProcessor) MockitoJUnitRunner(org.mockito.junit.MockitoJUnitRunner) GatewayTopologyV4Request(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.cluster.gateway.topology.GatewayTopologyV4Request) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) Stack(com.sequenceiq.cloudbreak.domain.stack.Stack) Cluster(com.sequenceiq.cloudbreak.domain.stack.cluster.Cluster) ArgumentMatchers.anyLong(org.mockito.ArgumentMatchers.anyLong) ExposedServiceUtil.exposedService(com.sequenceiq.cloudbreak.controller.validation.stack.cluster.gateway.ExposedServiceUtil.exposedService) Mock(org.mockito.Mock) RunWith(org.junit.runner.RunWith) ArrayList(java.util.ArrayList) Lists(com.google.common.collect.Lists) ExposedServiceV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.util.responses.ExposedServiceV4Response) FileReaderUtils(com.sequenceiq.cloudbreak.util.FileReaderUtils) Before(org.junit.Before) InjectMocks(org.mockito.InjectMocks) Collections.emptyMap(java.util.Collections.emptyMap) Assert.assertTrue(org.junit.Assert.assertTrue) ReflectionTestUtils(org.springframework.test.util.ReflectionTestUtils) IOException(java.io.IOException) Test(org.junit.Test) Mockito.when(org.mockito.Mockito.when) Maps(com.google.common.collect.Maps) Workspace(com.sequenceiq.cloudbreak.workspace.model.Workspace) GatewayTopology(com.sequenceiq.cloudbreak.domain.stack.cluster.gateway.GatewayTopology) BlueprintService(com.sequenceiq.cloudbreak.service.blueprint.BlueprintService) ComponentLocatorService(com.sequenceiq.cloudbreak.service.blueprint.ComponentLocatorService) Assert.assertEquals(org.junit.Assert.assertEquals) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) Cluster(com.sequenceiq.cloudbreak.domain.stack.cluster.Cluster) Collection(java.util.Collection) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) ClusterExposedServiceV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.response.cluster.gateway.topology.ClusterExposedServiceV4Response) Test(org.junit.Test)

Example 19 with GATEWAY

use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceMetadataType.GATEWAY in project cloudbreak by hortonworks.

the class ClusterRequestToClusterConverterTest method testConvert.

@Test
public void testConvert() {
    // GIVEN
    ClusterV4Request request = getRequest("cluster.json");
    Blueprint blueprint = new Blueprint();
    blueprint.setStackType(StackType.HDP.name());
    given(blueprintService.getByNameForWorkspaceAndLoadDefaultsIfNecessary(eq("my-blueprint"), any())).willReturn(blueprint);
    given(gatewayV4RequestToGatewayConverter.convert(request.getGateway())).willReturn(new Gateway());
    // WHEN
    Cluster result = underTest.convert(request);
    // THEN
    assertAllFieldsNotNull(result, Arrays.asList("stack", "blueprint", "creationStarted", "creationFinished", "upSince", "statusReason", "clusterManagerIp", "fileSystem", "additionalFileSystem", "rdsConfigs", "attributes", "uptime", "ambariSecurityMasterKey", "proxyConfigCrn", "configStrategy", "extendedBlueprintText", "environmentCrn", "variant", "description", "databaseServerCrn", "fqdn", "customConfigurations"));
}
Also used : ClusterV4Request(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.cluster.ClusterV4Request) Blueprint(com.sequenceiq.cloudbreak.domain.Blueprint) Gateway(com.sequenceiq.cloudbreak.domain.stack.cluster.gateway.Gateway) Cluster(com.sequenceiq.cloudbreak.domain.stack.cluster.Cluster) AbstractJsonConverterTest(com.sequenceiq.cloudbreak.converter.AbstractJsonConverterTest) Test(org.junit.jupiter.api.Test)

Example 20 with GATEWAY

use of com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.base.InstanceMetadataType.GATEWAY in project cloudbreak by hortonworks.

the class ClusterRequestToClusterConverterTest method testNoGateway.

@Test
public void testNoGateway() {
    // GIVEN
    Blueprint blueprint = new Blueprint();
    blueprint.setStackType(StackType.HDP.name());
    given(blueprintService.getByNameForWorkspaceAndLoadDefaultsIfNecessary(eq("my-blueprint"), any())).willReturn(blueprint);
    // WHEN
    ClusterV4Request clusterRequest = getRequest("cluster-no-gateway.json");
    Cluster result = underTest.convert(clusterRequest);
    // THEN
    assertAllFieldsNotNull(result, Arrays.asList("stack", "blueprint", "creationStarted", "creationFinished", "upSince", "statusReason", "clusterManagerIp", "fileSystem", "additionalFileSystem", "rdsConfigs", "attributes", "uptime", "ambariSecurityMasterKey", "proxyConfigCrn", "configStrategy", "extendedBlueprintText", "gateway", "environmentCrn", "variant", "description", "databaseServerCrn", "fqdn", "customConfigurations"));
    assertNull(result.getGateway());
}
Also used : ClusterV4Request(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.cluster.ClusterV4Request) Blueprint(com.sequenceiq.cloudbreak.domain.Blueprint) Cluster(com.sequenceiq.cloudbreak.domain.stack.cluster.Cluster) AbstractJsonConverterTest(com.sequenceiq.cloudbreak.converter.AbstractJsonConverterTest) Test(org.junit.jupiter.api.Test)

Aggregations

Gateway (com.sequenceiq.cloudbreak.domain.stack.cluster.gateway.Gateway)20 Test (org.junit.Test)18 GatewayV4Request (com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.cluster.gateway.GatewayV4Request)16 Stack (com.sequenceiq.cloudbreak.domain.stack.Stack)16 Cluster (com.sequenceiq.cloudbreak.domain.stack.cluster.Cluster)15 Set (java.util.Set)15 Map (java.util.Map)14 List (java.util.List)13 Test (org.junit.jupiter.api.Test)12 InstanceGroup (com.sequenceiq.cloudbreak.domain.stack.instance.InstanceGroup)10 Json (com.sequenceiq.cloudbreak.common.json.Json)9 InstanceMetaData (com.sequenceiq.cloudbreak.domain.stack.instance.InstanceMetaData)9 Optional (java.util.Optional)9 Collectors (java.util.stream.Collectors)9 GatewayTopologyV4Request (com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.cluster.gateway.topology.GatewayTopologyV4Request)8 Blueprint (com.sequenceiq.cloudbreak.domain.Blueprint)8 InstanceGroupType (com.sequenceiq.common.api.type.InstanceGroupType)8 HashSet (java.util.HashSet)8 EntitlementService (com.sequenceiq.cloudbreak.auth.altus.EntitlementService)7 InstanceMetaDataService (com.sequenceiq.cloudbreak.service.stack.InstanceMetaDataService)7