Example usage for com.amazonaws.services.ecs.model Task getClusterArn

List of usage examples for com.amazonaws.services.ecs.model Task getClusterArn

Introduction

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

Prototype


public String getClusterArn() 

Source Link

Document

The ARN of the cluster that hosts the task.

Usage

From source file:com.netflix.spinnaker.clouddriver.ecs.provider.agent.TaskCachingAgent.java

License:Apache License

@Override
protected Map<String, Collection<CacheData>> generateFreshData(Collection<Task> tasks) {
    Collection<CacheData> dataPoints = new LinkedList<>();
    Map<String, CacheData> clusterDataPoints = new HashMap<>();

    for (Task task : tasks) {
        String taskId = StringUtils.substringAfterLast(task.getTaskArn(), "/");
        Map<String, Object> attributes = convertTaskToAttributes(task);

        String key = Keys.getTaskKey(accountName, region, taskId);
        dataPoints.add(new DefaultCacheData(key, attributes, Collections.emptyMap()));

        String clusterName = StringUtils.substringAfterLast(task.getClusterArn(), "/");
        Map<String, Object> clusterAttributes = EcsClusterCachingAgent
                .convertClusterArnToAttributes(accountName, region, task.getClusterArn());
        key = Keys.getClusterKey(accountName, region, clusterName);
        clusterDataPoints.put(key, new DefaultCacheData(key, clusterAttributes, Collections.emptyMap()));
    }//from  ww w. jav a  2 s. co  m

    log.info("Caching " + dataPoints.size() + " tasks in " + getAgentType());
    Map<String, Collection<CacheData>> dataMap = new HashMap<>();
    dataMap.put(TASKS.toString(), dataPoints);

    log.info("Caching " + clusterDataPoints.size() + " ECS clusters in " + getAgentType());
    dataMap.put(ECS_CLUSTERS.toString(), clusterDataPoints.values());

    return dataMap;
}

From source file:com.netflix.spinnaker.clouddriver.ecs.provider.agent.TaskCachingAgent.java

License:Apache License

public static Map<String, Object> convertTaskToAttributes(Task task) {
    String taskId = StringUtils.substringAfterLast(task.getTaskArn(), "/");

    Map<String, Object> attributes = new HashMap<>();
    attributes.put("taskId", taskId);
    attributes.put("taskArn", task.getTaskArn());
    attributes.put("clusterArn", task.getClusterArn());
    attributes.put("containerInstanceArn", task.getContainerInstanceArn());
    attributes.put("group", task.getGroup());
    attributes.put("containers", task.getContainers());
    attributes.put("lastStatus", task.getLastStatus());
    attributes.put("desiredStatus", task.getDesiredStatus());
    attributes.put("startedAt", task.getStartedAt().getTime());

    return attributes;
}

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

License:Apache License

protected RTFECSContainerTask createInstance(String clusterName, String instanceName, String password,
        RTFECSTaskDefinition taskDef, Integer duration, User user) {

    AmazonECS client = AmazonECSClientBuilder.standard().withRegion(taskDef.getRegion())
            .withCredentials(new DefaultAWSCredentialsProviderChain()).build();
    TaskOverride overrides = new TaskOverride();
    List<ContainerOverride> containerOverrides = new LinkedList<ContainerOverride>();
    ContainerOverride co = new ContainerOverride();
    List<KeyValuePair> environment = new LinkedList<KeyValuePair>();
    KeyValuePair kv = new KeyValuePair();
    kv.setName(Constants.ENV_USR_PWD);/*from  ww  w  . j  a  va2s  . c  o  m*/
    kv.setValue(password);
    environment.add(kv);
    co.setEnvironment(environment);
    co.setName(taskDef.getContainerName());
    containerOverrides.add(co);
    overrides.setContainerOverrides(containerOverrides);
    RunTaskRequest request = new RunTaskRequest().withCluster(clusterName)
            .withTaskDefinition(taskDef.getTaskDefinitionArn()).withOverrides(overrides);
    logger.debug("# ECS Requesting Task " + instanceName + " for user " + user.getIdUser()
            + " with task definition: " + taskDef.getTaskDefinitionArn() + " on cluster: " + clusterName
            + " on region " + taskDef.getRegion().getName());
    try {
        RunTaskResult response = client.runTask(request);
        String failureReason = "";
        if (response.getTasks().isEmpty()) {
            for (Failure failure : response.getFailures()) {
                failureReason += "\n" + failure.getReason();
            }
            logger.error("Task creation failed due to: \n" + failureReason);
            return null;
        }
        Task task = response.getTasks().get(0);
        RTFECSContainerTask rtfInstance = new RTFECSContainerTask();
        rtfInstance.setCluster(task.getClusterArn());
        rtfInstance.setTaskArn(task.getTaskArn());
        rtfInstance.setIdContainerInstance(task.getContainerInstanceArn());
        rtfInstance.setName(instanceName);
        rtfInstance.setRegion(taskDef.getRegion());
        rtfInstance.setUser(user);
        rtfInstance.setCreateTime(task.getCreatedAt());
        rtfInstance.setStatus(Constants.STATUS_PENDING);
        logger.debug("# ECS Task " + instanceName + " created for user " + user.getIdUser()
                + " with task definition: " + taskDef.getTaskDefinitionName() + " start: "
                + rtfInstance.getCreateTime());
        return rtfInstance;
    } catch (Exception e) {
        logger.warn("# ECS Task " + instanceName + " could not be created for user " + user.getIdUser() + " "
                + e.getMessage());
        return null;
    }
}