Example usage for com.amazonaws.services.ecs.model RegisterTaskDefinitionResult getTaskDefinition

List of usage examples for com.amazonaws.services.ecs.model RegisterTaskDefinitionResult getTaskDefinition

Introduction

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

Prototype


public TaskDefinition getTaskDefinition() 

Source Link

Document

The full description of the registered task definition.

Usage

From source file:com.cloudbees.jenkins.plugins.amazonecs.ECSTaskTemplate.java

License:Open Source License

public void setOwner(ECSCloud owner) {
    final AmazonECSClient client = owner.getAmazonECSClient();
    if (taskDefinitionArn == null) {
        final RegisterTaskDefinitionRequest req = asRegisterTaskDefinitionRequest(owner);
        final RegisterTaskDefinitionResult result = client.registerTaskDefinition(req);
        taskDefinitionArn = result.getTaskDefinition().getTaskDefinitionArn();
        LOGGER.log(Level.FINE, "Slave {0} - Created Task Definition {1}: {2}",
                new Object[] { label, taskDefinitionArn, req });
        LOGGER.log(Level.INFO, "Slave {0} - Created Task Definition: {1}",
                new Object[] { label, taskDefinitionArn });
        getDescriptor().save();//w  w w . j a v  a2  s.co m
    } else {
        LOGGER.log(Level.FINE, "Slave {0} - Task Definition already exists {1}",
                new Object[] { label, taskDefinitionArn });
    }
}

From source file:com.netflix.spinnaker.clouddriver.ecs.deploy.ops.CreateServerGroupAtomicOperation.java

License:Apache License

private TaskDefinition registerTaskDefinition(AmazonECS ecs, String version) {

    Collection<KeyValuePair> containerEnvironment = new LinkedList<>();
    containerEnvironment.add(new KeyValuePair().withName("SERVER_GROUP").withValue(version));
    containerEnvironment.add(new KeyValuePair().withName("CLOUD_STACK").withValue(description.getStack()));
    containerEnvironment/*from   w w  w . j  a v  a 2  s  .  c  o  m*/
            .add(new KeyValuePair().withName("CLOUD_DETAIL").withValue(description.getFreeFormDetails()));

    PortMapping portMapping = new PortMapping().withHostPort(0)
            .withContainerPort(description.getContainerPort())
            .withProtocol(description.getPortProtocol() != null ? description.getPortProtocol() : "tcp");

    Collection<PortMapping> portMappings = new LinkedList<>();
    portMappings.add(portMapping);

    ContainerDefinition containerDefinition = new ContainerDefinition().withName(version)
            .withEnvironment(containerEnvironment).withPortMappings(portMappings)
            .withCpu(description.getComputeUnits()).withMemoryReservation(description.getReservedMemory())
            .withImage(description.getDockerImageAddress());

    Collection<ContainerDefinition> containerDefinitions = new LinkedList<>();
    containerDefinitions.add(containerDefinition);

    RegisterTaskDefinitionRequest request = new RegisterTaskDefinitionRequest()
            .withContainerDefinitions(containerDefinitions).withFamily(getFamilyName());

    if (!description.getIamRole().equals("None (No IAM role)")) {
        checkRoleTrustRelations(description.getIamRole());
        request.setTaskRoleArn(description.getIamRole());
    }

    RegisterTaskDefinitionResult registerTaskDefinitionResult = ecs.registerTaskDefinition(request);

    return registerTaskDefinitionResult.getTaskDefinition();
}

From source file:com.remediatetheflag.global.utils.AWSHelper.java

License:Apache License

public String createECSTaskDefinition(RTFECSTaskDefinition taskDef, User user) {

    createExerciseLogGroup(taskDef.getRegion(), Constants.EXERCISE_LOG_GROUP);

    AmazonECS client = AmazonECSClientBuilder.standard().withRegion(taskDef.getRegion())
            .withCredentials(new DefaultAWSCredentialsProviderChain()).build();

    RegisterTaskDefinitionRequest request = new RegisterTaskDefinitionRequest();

    ArrayList<PortMapping> portMappings = new ArrayList<PortMapping>();
    portMappings.add(new PortMapping().withContainerPort(8080).withHostPort(0).withProtocol("tcp"));
    portMappings.add(new PortMapping().withContainerPort(3389).withHostPort(0).withProtocol("tcp"));

    LinuxParameters linuxParameters = new LinuxParameters();
    KernelCapabilities capabilities = new KernelCapabilities();
    capabilities.setAdd(Arrays.asList("NET_ADMIN"));
    linuxParameters.setCapabilities(capabilities);

    LogConfiguration logConfiguration = new LogConfiguration();
    logConfiguration.setLogDriver("awslogs");
    Map<String, String> options = new HashMap<String, String>();
    options.put("awslogs-group", Constants.EXERCISE_LOG_GROUP);
    options.put("awslogs-region", taskDef.getRegion().getName().toLowerCase());
    logConfiguration.setOptions(options);

    final ContainerDefinition def = new ContainerDefinition().withName(taskDef.getContainerName())
            .withImage(taskDef.getRepositoryImageUrl()).withMemoryReservation(taskDef.getSoftMemoryLimit())
            .withMemory(taskDef.getHardMemoryLimit()).withPortMappings(portMappings)
            .withLinuxParameters(linuxParameters).withLogConfiguration(logConfiguration).withEssential(true);

    request.setContainerDefinitions(Arrays.asList(def));
    request.setFamily(taskDef.getTaskDefinitionName());
    request.setNetworkMode("bridge");

    try {//from w w w  . j a  v  a  2 s .  c  o m
        RegisterTaskDefinitionResult response = client.registerTaskDefinition(request);
        logger.debug("# ECS Task Definition " + taskDef.getTaskDefinitionName() + " created for user "
                + user.getIdUser() + " in region " + taskDef.getRegion());
        return response.getTaskDefinition().getTaskDefinitionArn();
    } catch (Exception e) {
        logger.debug(
                "# ECS Task Definition " + taskDef.getTaskDefinitionName() + " COULD NOT BE created for user "
                        + user.getIdUser() + " in region " + taskDef.getRegion() + "\n" + e.getMessage());
        return null;
    }
}