Search in sources :

Example 1 with ScalingConfigurationRequest

use of com.sequenceiq.periscope.api.model.ScalingConfigurationRequest in project cloudbreak by hortonworks.

the class ClusterConverter method convert.

@Override
public AutoscaleClusterResponse convert(Cluster source) {
    AutoscaleClusterResponse json = new AutoscaleClusterResponse(source.getHost(), source.getPort(), source.getAmbariUser(), source.getStackId(), source.isAutoscalingEnabled(), source.getId(), source.getState().name());
    if (!source.getMetricAlerts().isEmpty()) {
        List<MetricAlertResponse> metricAlerts = metricAlertResponseConverter.convertAllToJson(new ArrayList<>(source.getMetricAlerts()));
        json.setMetricAlerts(metricAlerts);
    }
    if (!source.getTimeAlerts().isEmpty()) {
        List<TimeAlertResponse> timeAlertRequests = timeAlertResponseConverter.convertAllToJson(new ArrayList<>(source.getTimeAlerts()));
        json.setTimeAlerts(timeAlertRequests);
    }
    if (!source.getPrometheusAlerts().isEmpty()) {
        List<PrometheusAlertResponse> prometheusAlertRequests = prometheusAlertResponseConverter.convertAllToJson(new ArrayList<>(source.getPrometheusAlerts()));
        json.setPrometheusAlerts(prometheusAlertRequests);
    }
    ScalingConfigurationRequest scalingConfig = new ScalingConfigurationRequest(source.getMinSize(), source.getMaxSize(), source.getCoolDown());
    json.setScalingConfiguration(scalingConfig);
    return json;
}
Also used : AutoscaleClusterResponse(com.sequenceiq.periscope.api.model.AutoscaleClusterResponse) ScalingConfigurationRequest(com.sequenceiq.periscope.api.model.ScalingConfigurationRequest) TimeAlertResponse(com.sequenceiq.periscope.api.model.TimeAlertResponse) PrometheusAlertResponse(com.sequenceiq.periscope.api.model.PrometheusAlertResponse) MetricAlertResponse(com.sequenceiq.periscope.api.model.MetricAlertResponse)

Example 2 with ScalingConfigurationRequest

use of com.sequenceiq.periscope.api.model.ScalingConfigurationRequest in project cloudbreak by hortonworks.

the class ClusterRequestConverter method convert.

@Override
public Cluster convert(AutoscaleClusterRequest source) {
    Cluster cluster = new Cluster();
    cluster.setStackId(source.getStackId());
    cluster.setAutoscalingEnabled(source.enableAutoscaling());
    List<MetricAlertRequest> metricAlertResponses = source.getMetricAlerts();
    if (metricAlertResponses != null && !metricAlertResponses.isEmpty()) {
        Set<MetricAlert> alerts = metricAlertResponses.stream().map(metricAlertJson -> {
            MetricAlert alert = metricAlertRequestConverter.convert(metricAlertJson);
            alert.setCluster(cluster);
            return alert;
        }).collect(Collectors.toSet());
        cluster.setMetricAlerts(alerts);
    }
    List<TimeAlertRequest> timeAlertRequests = source.getTimeAlerts();
    if (timeAlertRequests != null && !timeAlertRequests.isEmpty()) {
        Set<TimeAlert> alerts = timeAlertRequests.stream().map(timeAlertJson -> {
            TimeAlert alert = timeAlertRequestConverter.convert(timeAlertJson);
            alert.setCluster(cluster);
            return alert;
        }).collect(Collectors.toSet());
        cluster.setTimeAlerts(alerts);
    }
    List<PrometheusAlertRequest> prometheusAlertRequests = source.getPrometheusAlerts();
    if (prometheusAlertRequests != null && !prometheusAlertRequests.isEmpty()) {
        Set<PrometheusAlert> alerts = prometheusAlertRequests.stream().map(prometheusAlertJson -> {
            PrometheusAlert alert = prometheusAlertRequestConverter.convert(prometheusAlertJson);
            alert.setCluster(cluster);
            return alert;
        }).collect(Collectors.toSet());
        cluster.setPrometheusAlerts(alerts);
    }
    ScalingConfigurationRequest scalingConfiguration = source.getScalingConfiguration();
    if (scalingConfiguration != null) {
        cluster.setMinSize(scalingConfiguration.getMinSize());
        cluster.setMaxSize(scalingConfiguration.getMaxSize());
        cluster.setCoolDown(scalingConfiguration.getCoolDown());
    }
    return cluster;
}
Also used : TimeAlertRequest(com.sequenceiq.periscope.api.model.TimeAlertRequest) Cluster(com.sequenceiq.periscope.domain.Cluster) ScalingConfigurationRequest(com.sequenceiq.periscope.api.model.ScalingConfigurationRequest) PrometheusAlertRequest(com.sequenceiq.periscope.api.model.PrometheusAlertRequest) Set(java.util.Set) Collectors(java.util.stream.Collectors) Inject(javax.inject.Inject) List(java.util.List) Component(org.springframework.stereotype.Component) MetricAlertRequest(com.sequenceiq.periscope.api.model.MetricAlertRequest) MetricAlert(com.sequenceiq.periscope.domain.MetricAlert) TimeAlert(com.sequenceiq.periscope.domain.TimeAlert) PrometheusAlert(com.sequenceiq.periscope.domain.PrometheusAlert) AutoscaleClusterRequest(com.sequenceiq.periscope.api.model.AutoscaleClusterRequest) Cluster(com.sequenceiq.periscope.domain.Cluster) MetricAlertRequest(com.sequenceiq.periscope.api.model.MetricAlertRequest) ScalingConfigurationRequest(com.sequenceiq.periscope.api.model.ScalingConfigurationRequest) TimeAlertRequest(com.sequenceiq.periscope.api.model.TimeAlertRequest) PrometheusAlertRequest(com.sequenceiq.periscope.api.model.PrometheusAlertRequest) TimeAlert(com.sequenceiq.periscope.domain.TimeAlert) PrometheusAlert(com.sequenceiq.periscope.domain.PrometheusAlert) MetricAlert(com.sequenceiq.periscope.domain.MetricAlert)

Example 3 with ScalingConfigurationRequest

use of com.sequenceiq.periscope.api.model.ScalingConfigurationRequest in project cloudbreak by hortonworks.

the class AutoscalingUtil method configureAutoScaling.

static void configureAutoScaling(AutoscaleClient autoscaleClient, Long clusterId, int cooldown, int clusterMinsize, int clusterMaxSize) {
    ConfigurationEndpoint configurationEndpoint = autoscaleClient.configurationEndpoint();
    ScalingConfigurationRequest scalingConfigurationRequest = new ScalingConfigurationRequest();
    scalingConfigurationRequest.setCoolDown(cooldown);
    scalingConfigurationRequest.setMinSize(clusterMinsize);
    scalingConfigurationRequest.setMaxSize(clusterMaxSize);
    configurationEndpoint.setScalingConfiguration(clusterId, scalingConfigurationRequest);
    ScalingConfigurationRequest scalingConfigurationTest = configurationEndpoint.getScalingConfiguration(clusterId);
    Assert.assertEquals(cooldown, scalingConfigurationTest.getCoolDown());
    Assert.assertEquals(clusterMinsize, scalingConfigurationTest.getMinSize());
    Assert.assertEquals(clusterMaxSize, scalingConfigurationTest.getMaxSize());
}
Also used : ScalingConfigurationRequest(com.sequenceiq.periscope.api.model.ScalingConfigurationRequest) ConfigurationEndpoint(com.sequenceiq.periscope.api.endpoint.v1.ConfigurationEndpoint)

Example 4 with ScalingConfigurationRequest

use of com.sequenceiq.periscope.api.model.ScalingConfigurationRequest in project cloudbreak by hortonworks.

the class ClusterService method getScalingConfiguration.

public ScalingConfigurationRequest getScalingConfiguration(Long clusterId) {
    Cluster cluster = findOneById(clusterId);
    ScalingConfigurationRequest configuration = new ScalingConfigurationRequest();
    configuration.setCoolDown(cluster.getCoolDown());
    configuration.setMaxSize(cluster.getMaxSize());
    configuration.setMinSize(cluster.getMinSize());
    return configuration;
}
Also used : ScalingConfigurationRequest(com.sequenceiq.periscope.api.model.ScalingConfigurationRequest) Cluster(com.sequenceiq.periscope.domain.Cluster)

Aggregations

ScalingConfigurationRequest (com.sequenceiq.periscope.api.model.ScalingConfigurationRequest)4 Cluster (com.sequenceiq.periscope.domain.Cluster)2 ConfigurationEndpoint (com.sequenceiq.periscope.api.endpoint.v1.ConfigurationEndpoint)1 AutoscaleClusterRequest (com.sequenceiq.periscope.api.model.AutoscaleClusterRequest)1 AutoscaleClusterResponse (com.sequenceiq.periscope.api.model.AutoscaleClusterResponse)1 MetricAlertRequest (com.sequenceiq.periscope.api.model.MetricAlertRequest)1 MetricAlertResponse (com.sequenceiq.periscope.api.model.MetricAlertResponse)1 PrometheusAlertRequest (com.sequenceiq.periscope.api.model.PrometheusAlertRequest)1 PrometheusAlertResponse (com.sequenceiq.periscope.api.model.PrometheusAlertResponse)1 TimeAlertRequest (com.sequenceiq.periscope.api.model.TimeAlertRequest)1 TimeAlertResponse (com.sequenceiq.periscope.api.model.TimeAlertResponse)1 MetricAlert (com.sequenceiq.periscope.domain.MetricAlert)1 PrometheusAlert (com.sequenceiq.periscope.domain.PrometheusAlert)1 TimeAlert (com.sequenceiq.periscope.domain.TimeAlert)1 List (java.util.List)1 Set (java.util.Set)1 Collectors (java.util.stream.Collectors)1 Inject (javax.inject.Inject)1 Component (org.springframework.stereotype.Component)1