agent/acs/handler/payload_handler.go
func (payloadHandler *payloadRequestHandler) addTasks(payload *ecsacs.PayloadMessage, tasks []*apitask.Task, skipAddTask skipAddTaskComparatorFunc) ([]*ecsacs.IAMRoleCredentialsAckRequest, bool) {
	allTasksOK := true
	var credentialsAcks []*ecsacs.IAMRoleCredentialsAckRequest
	for _, task := range tasks {
		if skipAddTask(task.GetDesiredStatus()) {
			continue
		}
		payloadHandler.taskEngine.AddTask(task)

		ackCredentials := func(id string, description string) {
			ack, err := payloadHandler.ackCredentials(payload.MessageId, id)
			if err != nil {
				allTasksOK = false
				seelog.Errorf("Failed to acknowledge %s credentials for task: %s, err: %v", description, task.String(), err)
				return
			}
			credentialsAcks = append(credentialsAcks, ack)
		}

		// Generate an ack request for the credentials in the task, if the
		// task is associated with an IAM role or the execution role
		taskCredentialsID := task.GetCredentialsID()
		if taskCredentialsID != "" {
			ackCredentials(taskCredentialsID, "task iam role")
		}

		taskExecutionCredentialsID := task.GetExecutionCredentialsID()
		if taskExecutionCredentialsID != "" {
			ackCredentials(taskExecutionCredentialsID, "task execution role")
		}
	}
	return credentialsAcks, allTasksOK
}
func (payloadHandler *payloadRequestHandler) addTasks(payload *ecsacs.PayloadMessage, tasks []*apitask.Task, skipAddTask skipAddTaskComparatorFunc) ([]*ecsacs.IAMRoleCredentialsAckRequest, bool) {
	allTasksOK := true
	var credentialsAcks []*ecsacs.IAMRoleCredentialsAckRequest
	for _, task := range tasks {
		if skipAddTask(task.GetDesiredStatus()) {
			continue
		}
		payloadHandler.taskEngine.AddTask(task)

		ackCredentials := func(id string, description string) {
			ack, err := payloadHandler.ackCredentials(payload.MessageId, id)
			if err != nil {
				allTasksOK = false
				seelog.Errorf("Failed to acknowledge %s credentials for task: %s, err: %v", description, task.String(), err)
				return
			}
			credentialsAcks = append(credentialsAcks, ack)
		}

		// Generate an ack request for the credentials in the task, if the
		// task is associated with an IAM role or the execution role
		taskCredentialsID := task.GetCredentialsID()
		if taskCredentialsID != "" {
			ackCredentials(taskCredentialsID, "task iam role")
		}

		taskExecutionCredentialsID := task.GetExecutionCredentialsID()
		if taskExecutionCredentialsID != "" {
			ackCredentials(taskExecutionCredentialsID, "task execution role")
		}
	}
	return credentialsAcks, allTasksOK
}
func ( payloadHandler * payloadRequestHandler ) addTasks ( payload * ecsacs . PayloadMessage , tasks [ ] * apitask . Task , skipAddTask skipAddTaskComparatorFunc ) ( [ ] * ecsacs . IAMRoleCredentialsAckRequest , bool ) { allTasksOK := true var credentialsAcks [ ] * ecsacs . IAMRoleCredentialsAckRequest for _ , task := range tasks { if skipAddTask ( task . GetDesiredStatus ( ) ) { continue } payloadHandler . taskEngine . AddTask ( task ) ackCredentials := func ( id string , description string ) { ack , err := payloadHandler . ackCredentials ( payload . MessageId , id ) if err != nil { allTasksOK = false seelog . Errorf ( " " , description , task . String ( ) , err ) return } credentialsAcks = append ( credentialsAcks , ack ) } // Generate an ack request for the credentials in the task, if the // task is associated with an IAM role or the execution role taskCredentialsID := task . GetCredentialsID ( ) if taskCredentialsID != " " { ackCredentials ( taskCredentialsID , " " ) } taskExecutionCredentialsID := task . GetExecutionCredentialsID ( ) if taskExecutionCredentialsID != " " { ackCredentials ( taskExecutionCredentialsID , " " ) } } return credentialsAcks , allTasksOK }
// addTasks adds the tasks to the task engine based on the skipAddTask condition
// This is used to add non-stopped tasks before adding stopped tasks
addTasks adds the tasks to the task engine based on the skipAddTask condition This is used to add non - stopped tasks before adding stopped tasks