func TaskContainerMetadataHandler(taskEngine utils.DockerStateResolver) func(http.ResponseWriter, *http.Request) {
	return func(w http.ResponseWriter, r *http.Request) {
		var responseJSON []byte
		dockerTaskEngineState := taskEngine.State()
		dockerID, dockerIDExists := utils.ValueFromRequest(r, dockerIDQueryField)
		taskArn, taskARNExists := utils.ValueFromRequest(r, taskARNQueryField)
		var status int
		if dockerIDExists && taskARNExists {
			seelog.Info("Request contains both ", dockerIDQueryField, " and ", taskARNQueryField, ". Expect at most one of these.")
			w.WriteHeader(http.StatusBadRequest)
			w.Write(responseJSON)
			return
		}
		if dockerIDExists {
			// Create TaskResponse for the docker id in the query.
			var task *apitask.Task
			var found bool
			if len(dockerID) > dockerShortIDLen {
				task, found = dockerTaskEngineState.TaskByID(dockerID)
			} else {
				tasks, _ := dockerTaskEngineState.TaskByShortID(dockerID)
				if len(tasks) == 0 {
					task = nil
					found = false
				} else if len(tasks) == 1 {
					task = tasks[0]
					found = true
				} else {
					seelog.Info("Multiple tasks found for requested dockerId: " + dockerID)
					w.WriteHeader(http.StatusBadRequest)
					w.Write(responseJSON)
					return
				}
			}
			responseJSON, status = createTaskResponse(task, found, dockerID, dockerTaskEngineState)
			w.WriteHeader(status)
		} else if taskARNExists {
			// Create TaskResponse for the task arn in the query.
			task, found := dockerTaskEngineState.TaskByArn(taskArn)
			responseJSON, status = createTaskResponse(task, found, taskArn, dockerTaskEngineState)
			w.WriteHeader(status)
		} else {
			// List all tasks.
			responseJSON, _ = json.Marshal(NewTasksResponse(dockerTaskEngineState))
		}
		w.Write(responseJSON)
	}
}
func TaskContainerMetadataHandler(taskEngine utils.DockerStateResolver) func(http.ResponseWriter, *http.Request) {
	return func(w http.ResponseWriter, r *http.Request) {
		var responseJSON []byte
		dockerTaskEngineState := taskEngine.State()
		dockerID, dockerIDExists := utils.ValueFromRequest(r, dockerIDQueryField)
		taskArn, taskARNExists := utils.ValueFromRequest(r, taskARNQueryField)
		var status int
		if dockerIDExists && taskARNExists {
			seelog.Info("Request contains both ", dockerIDQueryField, " and ", taskARNQueryField, ". Expect at most one of these.")
			w.WriteHeader(http.StatusBadRequest)
			w.Write(responseJSON)
			return
		}
		if dockerIDExists {
			
			var task *apitask.Task
			var found bool
			if len(dockerID) > dockerShortIDLen {
				task, found = dockerTaskEngineState.TaskByID(dockerID)
			} else {
				tasks, _ := dockerTaskEngineState.TaskByShortID(dockerID)
				if len(tasks) == 0 {
					task = nil
					found = false
				} else if len(tasks) == 1 {
					task = tasks[0]
					found = true
				} else {
					seelog.Info("Multiple tasks found for requested dockerId: " + dockerID)
					w.WriteHeader(http.StatusBadRequest)
					w.Write(responseJSON)
					return
				}
			}
			responseJSON, status = createTaskResponse(task, found, dockerID, dockerTaskEngineState)
			w.WriteHeader(status)
		} else if taskARNExists {
			
			task, found := dockerTaskEngineState.TaskByArn(taskArn)
			responseJSON, status = createTaskResponse(task, found, taskArn, dockerTaskEngineState)
			w.WriteHeader(status)
		} else {
			
			responseJSON, _ = json.Marshal(NewTasksResponse(dockerTaskEngineState))
		}
		w.Write(responseJSON)
	}
}
func TaskContainerMetadataHandler ( taskEngine utils . DockerStateResolver ) func ( http . ResponseWriter , * http . Request ) { return func ( w http . ResponseWriter , r * http . Request ) { var responseJSON [ ] byte dockerTaskEngineState := taskEngine . State ( ) dockerID , dockerIDExists := utils . ValueFromRequest ( r , dockerIDQueryField ) taskArn , taskARNExists := utils . ValueFromRequest ( r , taskARNQueryField ) var status int if dockerIDExists && taskARNExists { seelog . Info ( " " , dockerIDQueryField , " " , taskARNQueryField , " " ) w . WriteHeader ( http . StatusBadRequest ) w . Write ( responseJSON ) return } if dockerIDExists { // Create TaskResponse for the docker id in the query. var task * apitask . Task var found bool if len ( dockerID ) > dockerShortIDLen { task , found = dockerTaskEngineState . TaskByID ( dockerID ) } else { tasks , _ := dockerTaskEngineState . TaskByShortID ( dockerID ) if len ( tasks ) == 0 { task = nil found = false } else if len ( tasks ) == 1 { task = tasks [ 0 ] found = true } else { seelog . Info ( " " + dockerID ) w . WriteHeader ( http . StatusBadRequest ) w . Write ( responseJSON ) return } } responseJSON , status = createTaskResponse ( task , found , dockerID , dockerTaskEngineState ) w . WriteHeader ( status ) } else if taskARNExists { // Create TaskResponse for the task arn in the query. task , found := dockerTaskEngineState . TaskByArn ( taskArn ) responseJSON , status = createTaskResponse ( task , found , taskArn , dockerTaskEngineState ) w . WriteHeader ( status ) } else { // List all tasks. responseJSON , _ = json . Marshal ( NewTasksResponse ( dockerTaskEngineState ) ) } w . Write ( responseJSON ) } }
// TaskContainerMetadataHandler creates response for the 'v1/tasks' API. Lists all tasks if the request
// doesn't contain any fields. Returns a Task if either of 'dockerid' or
// 'taskarn' are specified in the request.
TaskContainerMetadataHandler creates response for the v1 / tasks API . Lists all tasks if the request doesn t contain any fields . Returns a Task if either of dockerid or taskarn are specified in the request .