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

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

Introduction

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

Prototype


public String getField() 

Source Link

Document

The field to apply the placement strategy against.

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 va2 s.co 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");
    }

}