Search in sources :

Example 1 with SubnetType

use of com.sequenceiq.cloudbreak.cloud.model.network.SubnetType in project cloudbreak by hortonworks.

the class EnvironmentDetailsToCDPNetworkDetailsConverter method convert.

public UsageProto.CDPNetworkDetails convert(EnvironmentDetails environmentDetails) {
    UsageProto.CDPNetworkDetails.Builder cdpNetworkDetails = UsageProto.CDPNetworkDetails.newBuilder();
    cdpNetworkDetails.setNumberPublicSubnets(DEFAULT_INTEGER_VALUE);
    cdpNetworkDetails.setNumberPrivateSubnets(DEFAULT_INTEGER_VALUE);
    Tunnel tunnel = environmentDetails.getTunnel();
    if (tunnel != null) {
        cdpNetworkDetails.setConnectivity(tunnel.name());
    }
    CcmV2TlsType tlsType = environmentDetails.getTlsType();
    if (tlsType != null) {
        cdpNetworkDetails.setControlPlaneAndCCMAgentConnectionSecurity(tlsType.name());
    }
    NetworkDto network = environmentDetails.getNetwork();
    if (network != null) {
        cdpNetworkDetails.setNetworkType(network.getRegistrationType().name());
        cdpNetworkDetails.setServiceEndpointCreation(network.getServiceEndpointCreation().name());
        if (network.getSubnetMetas() != null) {
            if (network.getSubnetMetas().isEmpty()) {
                cdpNetworkDetails.setNumberPrivateSubnets(0);
                cdpNetworkDetails.setNumberPublicSubnets(0);
            } else {
                List<SubnetType> types = network.getSubnetMetas().values().stream().map(CloudSubnet::getType).filter(Objects::nonNull).sorted().collect(Collectors.toUnmodifiableList());
                if (!types.isEmpty()) {
                    cdpNetworkDetails.setNumberPrivateSubnets(types.stream().filter(e -> e.equals(SubnetType.PRIVATE) || e.equals(SubnetType.MLX) || e.equals(SubnetType.DWX)).collect(Collectors.toList()).size());
                    cdpNetworkDetails.setNumberPublicSubnets(types.stream().filter(e -> e.equals(SubnetType.PUBLIC)).collect(Collectors.toList()).size());
                }
            }
        }
        cdpNetworkDetails.setPublicEndpointAccessGateway(network.getPublicEndpointAccessGateway() != null ? network.getPublicEndpointAccessGateway().name() : PublicEndpointAccessGateway.DISABLED.name());
    }
    cdpNetworkDetails.setSecurityAccessType(defaultIfEmpty(environmentDetails.getSecurityAccessType(), ""));
    cdpNetworkDetails.setProxyDetails(convertProxy(environmentDetails.getProxyDetails()));
    cdpNetworkDetails.setDomain(defaultIfEmpty(environmentDetails.getDomain(), ""));
    cdpNetworkDetails.setOwnDnsZones(convertOwnDnsZones(network, environmentDetails.getCloudPlatform()));
    UsageProto.CDPNetworkDetails ret = cdpNetworkDetails.build();
    LOGGER.debug("Converted CDPNetworkDetails: {}", ret);
    return ret;
}
Also used : StringUtils.defaultIfEmpty(org.apache.commons.lang3.StringUtils.defaultIfEmpty) CloudSubnet(com.sequenceiq.cloudbreak.cloud.model.CloudSubnet) Logger(org.slf4j.Logger) AzureParams(com.sequenceiq.environment.network.dto.AzureParams) LoggerFactory(org.slf4j.LoggerFactory) Collectors(java.util.stream.Collectors) StringUtils(org.apache.commons.lang3.StringUtils) CloudPlatform(com.sequenceiq.cloudbreak.common.mappable.CloudPlatform) ProxyDetails(com.sequenceiq.cloudbreak.structuredevent.event.cdp.environment.proxy.ProxyDetails) Objects(java.util.Objects) List(java.util.List) Component(org.springframework.stereotype.Component) NetworkDto(com.sequenceiq.environment.network.dto.NetworkDto) SubnetType(com.sequenceiq.cloudbreak.cloud.model.network.SubnetType) PublicEndpointAccessGateway(com.sequenceiq.common.api.type.PublicEndpointAccessGateway) Optional(java.util.Optional) UsageProto(com.cloudera.thunderhead.service.common.usage.UsageProto) CcmV2TlsType(com.sequenceiq.common.api.type.CcmV2TlsType) EnvironmentDetails(com.sequenceiq.cloudbreak.structuredevent.event.cdp.environment.EnvironmentDetails) Tunnel(com.sequenceiq.common.api.type.Tunnel) NetworkDto(com.sequenceiq.environment.network.dto.NetworkDto) Tunnel(com.sequenceiq.common.api.type.Tunnel) Objects(java.util.Objects) CcmV2TlsType(com.sequenceiq.common.api.type.CcmV2TlsType) SubnetType(com.sequenceiq.cloudbreak.cloud.model.network.SubnetType) UsageProto(com.cloudera.thunderhead.service.common.usage.UsageProto)

Aggregations

UsageProto (com.cloudera.thunderhead.service.common.usage.UsageProto)1 CloudSubnet (com.sequenceiq.cloudbreak.cloud.model.CloudSubnet)1 SubnetType (com.sequenceiq.cloudbreak.cloud.model.network.SubnetType)1 CloudPlatform (com.sequenceiq.cloudbreak.common.mappable.CloudPlatform)1 EnvironmentDetails (com.sequenceiq.cloudbreak.structuredevent.event.cdp.environment.EnvironmentDetails)1 ProxyDetails (com.sequenceiq.cloudbreak.structuredevent.event.cdp.environment.proxy.ProxyDetails)1 CcmV2TlsType (com.sequenceiq.common.api.type.CcmV2TlsType)1 PublicEndpointAccessGateway (com.sequenceiq.common.api.type.PublicEndpointAccessGateway)1 Tunnel (com.sequenceiq.common.api.type.Tunnel)1 AzureParams (com.sequenceiq.environment.network.dto.AzureParams)1 NetworkDto (com.sequenceiq.environment.network.dto.NetworkDto)1 List (java.util.List)1 Objects (java.util.Objects)1 Optional (java.util.Optional)1 Collectors (java.util.stream.Collectors)1 StringUtils (org.apache.commons.lang3.StringUtils)1 StringUtils.defaultIfEmpty (org.apache.commons.lang3.StringUtils.defaultIfEmpty)1 Logger (org.slf4j.Logger)1 LoggerFactory (org.slf4j.LoggerFactory)1 Component (org.springframework.stereotype.Component)1