List of usage examples for com.amazonaws.services.ecs.model Task getClusterArn
public String getClusterArn()
The ARN of the cluster that hosts the task.
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; } }