Example usage for com.amazonaws.services.ecs.model PlacementStrategy getType

List of usage examples for com.amazonaws.services.ecs.model PlacementStrategy getType

Introduction

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

Prototype


public String getType() 

Source Link

Document

The type of placement strategy.

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   w  w  w .j  a va2s . c  om*/
    } 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");
    }

}