Search in sources :

Example 1 with RecommendationV4Response

use of com.sequenceiq.cloudbreak.api.endpoint.v4.blueprint.responses.RecommendationV4Response 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);
}
Also used : DisplayName(com.sequenceiq.cloudbreak.cloud.model.DisplayName) ResizeRecommendationV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.ResizeRecommendationV4Response) PlatformRecommendation(com.sequenceiq.cloudbreak.cloud.model.PlatformRecommendation) DiskType(com.sequenceiq.cloudbreak.cloud.model.DiskType) Set(java.util.Set) DiskV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.DiskV4Response) HashMap(java.util.HashMap) VmTypeV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.util.responses.VmTypeV4Response) Collectors(java.util.stream.Collectors) VmTypeToVmTypeV4ResponseConverter(com.sequenceiq.cloudbreak.converter.v4.connectors.VmTypeToVmTypeV4ResponseConverter) HashSet(java.util.HashSet) Inject(javax.inject.Inject) AutoscaleRecommendationV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.AutoscaleRecommendationV4Response) Component(org.springframework.stereotype.Component) TreeMap(java.util.TreeMap) InstanceCountV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.InstanceCountV4Response) VolumeParameterType(com.sequenceiq.cloudbreak.cloud.model.VolumeParameterType) Map(java.util.Map) Entry(java.util.Map.Entry) GatewayRecommendationV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.GatewayRecommendationV4Response) RecommendationV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.blueprint.responses.RecommendationV4Response) HashMap(java.util.HashMap) VmTypeV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.util.responses.VmTypeV4Response) VolumeParameterType(com.sequenceiq.cloudbreak.cloud.model.VolumeParameterType) InstanceCountV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.InstanceCountV4Response) TreeMap(java.util.TreeMap) DiskType(com.sequenceiq.cloudbreak.cloud.model.DiskType) DiskV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.DiskV4Response) AutoscaleRecommendationV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.AutoscaleRecommendationV4Response) ResizeRecommendationV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.ResizeRecommendationV4Response) GatewayRecommendationV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.GatewayRecommendationV4Response) DisplayName(com.sequenceiq.cloudbreak.cloud.model.DisplayName) ResizeRecommendationV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.ResizeRecommendationV4Response) AutoscaleRecommendationV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.AutoscaleRecommendationV4Response) GatewayRecommendationV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.GatewayRecommendationV4Response) RecommendationV4Response(com.sequenceiq.cloudbreak.api.endpoint.v4.blueprint.responses.RecommendationV4Response) HashSet(java.util.HashSet)

Aggregations

RecommendationV4Response (com.sequenceiq.cloudbreak.api.endpoint.v4.blueprint.responses.RecommendationV4Response)1 AutoscaleRecommendationV4Response (com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.AutoscaleRecommendationV4Response)1 DiskV4Response (com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.DiskV4Response)1 GatewayRecommendationV4Response (com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.GatewayRecommendationV4Response)1 InstanceCountV4Response (com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.InstanceCountV4Response)1 ResizeRecommendationV4Response (com.sequenceiq.cloudbreak.api.endpoint.v4.connector.responses.ResizeRecommendationV4Response)1 VmTypeV4Response (com.sequenceiq.cloudbreak.api.endpoint.v4.util.responses.VmTypeV4Response)1 DiskType (com.sequenceiq.cloudbreak.cloud.model.DiskType)1 DisplayName (com.sequenceiq.cloudbreak.cloud.model.DisplayName)1 PlatformRecommendation (com.sequenceiq.cloudbreak.cloud.model.PlatformRecommendation)1 VolumeParameterType (com.sequenceiq.cloudbreak.cloud.model.VolumeParameterType)1 VmTypeToVmTypeV4ResponseConverter (com.sequenceiq.cloudbreak.converter.v4.connectors.VmTypeToVmTypeV4ResponseConverter)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 Map (java.util.Map)1 Entry (java.util.Map.Entry)1 Set (java.util.Set)1 TreeMap (java.util.TreeMap)1 Collectors (java.util.stream.Collectors)1 Inject (javax.inject.Inject)1