func getTaskInfo()

in cmd/task_info.go [47:101]


func getTaskInfo(operation *TaskInfoOperation) {
	var tasks []ECS.Task
	var eniIds []string

	ecs := ECS.New(sess, clusterName)
	ec2 := EC2.New(sess)

	if len(operation.TaskIds) > 0 {
		tasks = ecs.DescribeTasks(operation.TaskIds)
	} else {
		tasks = ecs.DescribeTasksForTaskGroup(operation.TaskGroupName)
	}

	if len(tasks) == 0 {
		console.InfoExit("No tasks found")
	}

	for _, task := range tasks {
		if task.EniId != "" {
			eniIds = append(eniIds, task.EniId)
		}
	}

	enis := ec2.DescribeNetworkInterfaces(eniIds)

	console.KeyValue("Task Group Name", "%s\n", operation.TaskGroupName)
	console.KeyValue("Task Instances", "%d\n", len(tasks))

	for _, task := range tasks {
		eni := enis[task.EniId]

		console.KeyValue("  "+task.TaskId, "\n")
		console.KeyValue("    Image", "%s\n", task.Image)
		console.KeyValue("    Status", "%s\n", Humanize(task.LastStatus))
		console.KeyValue("    Started At", "%s\n", task.CreatedAt)
		console.KeyValue("    IP", "%s\n", eni.PublicIpAddress)
		console.KeyValue("    CPU", "%s\n", task.Cpu)
		console.KeyValue("    Memory", "%s\n", task.Memory)

		if task.TaskRole != "" {
			console.KeyValue("    Task Role", "%s\n", task.TaskRole)
		}

		console.KeyValue("    Subnet", "%s\n", task.SubnetId)
		console.KeyValue("    Security Groups", "%s\n", strings.Join(eni.SecurityGroupIds, ", "))

		if len(task.EnvVars) > 0 {
			console.KeyValue("    Environment Variables", "\n")

			for _, envVar := range task.EnvVars {
				fmt.Printf("      %s=%s\n", envVar.Key, envVar.Value)
			}
		}
	}
}