Search in sources :

Example 46 with LoadBalancer

use of com.sequenceiq.cloudbreak.domain.stack.loadbalancer.LoadBalancer in project cloudbreak by hortonworks.

the class LoadBalancerConfigServiceTest method createLoadBalancers.

private Set<LoadBalancer> createLoadBalancers(boolean createPrivate, boolean createPublic, boolean createOutbound) {
    Set<LoadBalancer> loadBalancers = new HashSet<>();
    if (createPrivate) {
        LoadBalancer privateLoadBalancer = new LoadBalancer();
        privateLoadBalancer.setType(LoadBalancerType.PRIVATE);
        privateLoadBalancer.setFqdn(PRIVATE_FQDN);
        privateLoadBalancer.setDns(PRIVATE_DNS);
        privateLoadBalancer.setIp(PRIVATE_IP);
        loadBalancers.add(privateLoadBalancer);
    }
    if (createPublic) {
        LoadBalancer publicLoadBalancer = new LoadBalancer();
        publicLoadBalancer.setType(LoadBalancerType.PUBLIC);
        publicLoadBalancer.setFqdn(PUBLIC_FQDN);
        publicLoadBalancer.setDns(PUBLIC_DNS);
        publicLoadBalancer.setIp(PUBLIC_IP);
        loadBalancers.add(publicLoadBalancer);
    }
    if (createOutbound) {
        LoadBalancer outboundLoadBalancer = new LoadBalancer();
        outboundLoadBalancer.setType(LoadBalancerType.OUTBOUND);
        loadBalancers.add(outboundLoadBalancer);
    }
    return loadBalancers;
}
Also used : LoadBalancer(com.sequenceiq.cloudbreak.domain.stack.loadbalancer.LoadBalancer) HashSet(java.util.HashSet)

Example 47 with LoadBalancer

use of com.sequenceiq.cloudbreak.domain.stack.loadbalancer.LoadBalancer in project cloudbreak by hortonworks.

the class LoadBalancerConfigServiceTest method testGetLoadBalancerUserFacingFQDNPrivateOnly.

@Test
public void testGetLoadBalancerUserFacingFQDNPrivateOnly() {
    Set<LoadBalancer> loadBalancers = createPrivateOnlyLoadBalancer();
    when(loadBalancerPersistenceService.findByStackId(0L)).thenReturn(loadBalancers);
    String fqdn = underTest.getLoadBalancerUserFacingFQDN(0L);
    assertEquals(PRIVATE_FQDN, fqdn);
}
Also used : LoadBalancer(com.sequenceiq.cloudbreak.domain.stack.loadbalancer.LoadBalancer) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) SubnetTest(com.sequenceiq.cloudbreak.core.network.SubnetTest) Test(org.junit.Test)

Example 48 with LoadBalancer

use of com.sequenceiq.cloudbreak.domain.stack.loadbalancer.LoadBalancer in project cloudbreak by hortonworks.

the class LoadBalancerConfigServiceTest method testDisableLoadBalancer.

@Test
public void testDisableLoadBalancer() {
    Stack stack = createAwsStack(StackType.DATALAKE, PUBLIC_ID_1);
    CloudSubnet subnet = getPublicCloudSubnet(PUBLIC_ID_1, AZ_1);
    DetailedEnvironmentResponse environment = createEnvironment(subnet, false, "AWS");
    environment.getNetwork().setLoadBalancerCreation(LoadBalancerCreation.DISABLED);
    StackV4Request request = new StackV4Request();
    when(entitlementService.datalakeLoadBalancerEnabled(anyString())).thenReturn(true);
    when(blueprint.getBlueprintText()).thenReturn(getBlueprintText("input/clouderamanager-knox.bp"));
    when(subnetSelector.findSubnetById(any(), anyString())).thenReturn(Optional.of(subnet));
    ThreadBasedUserCrnProvider.doAs(USER_CRN, () -> {
        Set<LoadBalancer> loadBalancers = underTest.createLoadBalancers(stack, environment, request);
        assertEquals(0, loadBalancers.size());
    });
}
Also used : StackV4Request(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.StackV4Request) DetailedEnvironmentResponse(com.sequenceiq.environment.api.v1.environment.model.response.DetailedEnvironmentResponse) LoadBalancer(com.sequenceiq.cloudbreak.domain.stack.loadbalancer.LoadBalancer) CloudSubnet(com.sequenceiq.cloudbreak.cloud.model.CloudSubnet) Stack(com.sequenceiq.cloudbreak.domain.stack.Stack) SubnetTest(com.sequenceiq.cloudbreak.core.network.SubnetTest) Test(org.junit.Test)

Example 49 with LoadBalancer

use of com.sequenceiq.cloudbreak.domain.stack.loadbalancer.LoadBalancer in project cloudbreak by hortonworks.

the class LoadBalancerConfigServiceTest method testCreateAWSLoadBalancerForDataLakeEntitlementDisabledPrivateSubnets.

@Test
public void testCreateAWSLoadBalancerForDataLakeEntitlementDisabledPrivateSubnets() {
    Stack stack = createAwsStack(StackType.DATALAKE, PRIVATE_ID_1);
    CloudSubnet subnet = getPrivateCloudSubnet(PRIVATE_ID_1, AZ_1);
    DetailedEnvironmentResponse environment = createEnvironment(subnet, false, "AWS");
    environment.setCloudPlatform(CloudPlatform.AWS.name());
    StackV4Request request = new StackV4Request();
    request.setEnableLoadBalancer(false);
    when(entitlementService.datalakeLoadBalancerEnabled(anyString())).thenReturn(false);
    when(blueprint.getBlueprintText()).thenReturn(getBlueprintText("input/clouderamanager-knox.bp"));
    when(subnetSelector.findSubnetById(any(), anyString())).thenReturn(Optional.of(subnet));
    ThreadBasedUserCrnProvider.doAs(USER_CRN, () -> {
        Set<LoadBalancer> loadBalancers = underTest.createLoadBalancers(stack, environment, request);
        assertEquals(1, loadBalancers.size());
        assertEquals(LoadBalancerType.PRIVATE, loadBalancers.iterator().next().getType());
        InstanceGroup masterInstanceGroup = stack.getInstanceGroups().stream().filter(ig -> "master".equals(ig.getGroupName())).findFirst().get();
        assertEquals(1, masterInstanceGroup.getTargetGroups().size());
    });
}
Also used : StackV4Request(com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.StackV4Request) DetailedEnvironmentResponse(com.sequenceiq.environment.api.v1.environment.model.response.DetailedEnvironmentResponse) LoadBalancer(com.sequenceiq.cloudbreak.domain.stack.loadbalancer.LoadBalancer) CloudSubnet(com.sequenceiq.cloudbreak.cloud.model.CloudSubnet) Stack(com.sequenceiq.cloudbreak.domain.stack.Stack) InstanceGroup(com.sequenceiq.cloudbreak.domain.stack.instance.InstanceGroup) SubnetTest(com.sequenceiq.cloudbreak.core.network.SubnetTest) Test(org.junit.Test)

Example 50 with LoadBalancer

use of com.sequenceiq.cloudbreak.domain.stack.loadbalancer.LoadBalancer in project cloudbreak by hortonworks.

the class LoadBalancerConfigServiceTest method testGetLoadBalancerUserFacingFQDNIPOnlyMissingFQDN.

@Test
public void testGetLoadBalancerUserFacingFQDNIPOnlyMissingFQDN() {
    Set<LoadBalancer> loadBalancers = createLoadBalancers();
    LoadBalancer publicLoadBalancer = loadBalancers.stream().filter(lb -> LoadBalancerType.PUBLIC.equals(lb.getType())).findFirst().get();
    publicLoadBalancer.setFqdn(null);
    publicLoadBalancer.setDns(null);
    when(loadBalancerPersistenceService.findByStackId(0L)).thenReturn(loadBalancers);
    String fqdn = underTest.getLoadBalancerUserFacingFQDN(0L);
    assertEquals(PUBLIC_IP, fqdn);
}
Also used : LoadBalancer(com.sequenceiq.cloudbreak.domain.stack.loadbalancer.LoadBalancer) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) SubnetTest(com.sequenceiq.cloudbreak.core.network.SubnetTest) Test(org.junit.Test)

Aggregations

LoadBalancer (com.sequenceiq.cloudbreak.domain.stack.loadbalancer.LoadBalancer)74 Test (org.junit.Test)48 Stack (com.sequenceiq.cloudbreak.domain.stack.Stack)46 SubnetTest (com.sequenceiq.cloudbreak.core.network.SubnetTest)39 DetailedEnvironmentResponse (com.sequenceiq.environment.api.v1.environment.model.response.DetailedEnvironmentResponse)37 StackV4Request (com.sequenceiq.cloudbreak.api.endpoint.v4.stacks.request.StackV4Request)32 CloudSubnet (com.sequenceiq.cloudbreak.cloud.model.CloudSubnet)26 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)20 InstanceGroup (com.sequenceiq.cloudbreak.domain.stack.instance.InstanceGroup)16 Cluster (com.sequenceiq.cloudbreak.domain.stack.cluster.Cluster)12 Test (org.junit.jupiter.api.Test)12 InstanceMetaData (com.sequenceiq.cloudbreak.domain.stack.instance.InstanceMetaData)9 LoadBalancerPersistenceService (com.sequenceiq.cloudbreak.service.stack.LoadBalancerPersistenceService)9 HashSet (java.util.HashSet)9 CloudbreakServiceException (com.sequenceiq.cloudbreak.common.exception.CloudbreakServiceException)8 TargetGroup (com.sequenceiq.cloudbreak.domain.stack.loadbalancer.TargetGroup)8 LoadBalancerType (com.sequenceiq.common.api.type.LoadBalancerType)8 Map (java.util.Map)8 Optional (java.util.Optional)8 Json (com.sequenceiq.cloudbreak.common.json.Json)7