Example usage for com.amazonaws.services.ecs.model PlacementStrategyType fromValue

List of usage examples for com.amazonaws.services.ecs.model PlacementStrategyType fromValue

Introduction

In this page you can find the example usage for com.amazonaws.services.ecs.model PlacementStrategyType fromValue.

Prototype

public static PlacementStrategyType fromValue(String value) 

Source Link

Document

Use this in place of valueOf.

Usage

From source file:com.netflix.spinnaker.clouddriver.ecs.deploy.validators.EcsCreateServerGroupDescriptionValidator.java

License:Apache License

@Override
public void validate(List priorDescriptions, Object description, Errors errors) {
    CreateServerGroupDescription createServerGroupDescription = (CreateServerGroupDescription) description;

    validateCredentials(createServerGroupDescription, errors, "credentials");
    validateCapacity(errors, createServerGroupDescription.getCapacity());

    if (createServerGroupDescription.getAvailabilityZones() != null) {
        if (createServerGroupDescription.getAvailabilityZones().size() != 1) {
            rejectValue(errors, "availabilityZones", "must.have.only.one");
        }//from  www .j  a  v  a 2s  .  c o m
    } else {
        rejectValue(errors, "availabilityZones", "not.nullable");
    }

    if (createServerGroupDescription.getPlacementStrategySequence() != null) {
        for (PlacementStrategy placementStrategy : createServerGroupDescription
                .getPlacementStrategySequence()) {
            PlacementStrategyType type;
            try {
                type = PlacementStrategyType.fromValue(placementStrategy.getType());
            } catch (IllegalArgumentException e) {
                rejectValue(errors, "placementStrategySequence.type", "invalid");
                continue;
            }

            switch (type) {
            case Random:
                break;
            case Spread:
                if (!SPREAD_VALUES.contains(placementStrategy.getField())) {
                    rejectValue(errors, "placementStrategySequence.spread", "invalid");
                }
                break;
            case Binpack:
                if (!BINPACK_VALUES.contains(placementStrategy.getField())) {
                    rejectValue(errors, "placementStrategySequence.binpack", "invalid");
                }
                break;
            }

        }
    } else {
        rejectValue(errors, "placementStrategySequence", "not.nullable");
    }

    if (createServerGroupDescription.getAutoscalingPolicies() == null) {
        rejectValue(errors, "autoscalingPolicies", "not.nullable");
    }

    if (createServerGroupDescription.getApplication() == null) {
        rejectValue(errors, "application", "not.nullable");
    }

    if (createServerGroupDescription.getEcsClusterName() == null) {
        rejectValue(errors, "ecsClusterName", "not.nullable");
    }

    if (createServerGroupDescription.getDockerImageAddress() == null) {
        rejectValue(errors, "dockerImageAddress", "not.nullable");
    }

    if (createServerGroupDescription.getContainerPort() != null) {
        if (createServerGroupDescription.getContainerPort() < 0
                || createServerGroupDescription.getContainerPort() > 65535) {
            rejectValue(errors, "containerPort", "invalid");
        }
    } else {
        rejectValue(errors, "containerPort", "not.nullable");
    }

    if (createServerGroupDescription.getComputeUnits() != null) {
        if (createServerGroupDescription.getComputeUnits() < 0) {
            rejectValue(errors, "computeUnits", "invalid");
        }
    } else {
        rejectValue(errors, "computeUnits", "not.nullable");
    }

    if (createServerGroupDescription.getReservedMemory() != null) {
        if (createServerGroupDescription.getReservedMemory() < 0) {
            rejectValue(errors, "reservedMemory", "invalid");
        }
    } else {
        rejectValue(errors, "reservedMemory", "not.nullable");
    }

}