func NewTasksResponse(state *dockerstate.DockerTaskEngineState) *TasksResponse { allTasks := state.AllTasks() taskResponses := make([]*TaskResponse, len(allTasks)) for ndx, task := range allTasks { containerMap, _ := state.ContainerMapByArn(task.Arn) taskResponses[ndx] = NewTaskResponse(task, containerMap) } return &TasksResponse{Tasks: taskResponses} }
func stateSetupHelper(state *dockerstate.DockerTaskEngineState, tasks []*api.Task) { for _, task := range tasks { state.AddTask(task) for _, container := range task.Containers { state.AddContainer(&api.DockerContainer{ Container: container, DockerId: "dockerid-" + task.Arn + "-" + container.Name, DockerName: "dockername-" + task.Arn + "-" + container.Name, }, task) } } }
// Creates JSON response and sets the http status code for the task queried. func createTaskJSONResponse(task *api.Task, found bool, resourceId string, state *dockerstate.DockerTaskEngineState) ([]byte, int) { var responseJSON []byte status := statusOK if found { containerMap, _ := state.ContainerMapByArn(task.Arn) responseJSON, _ = json.Marshal(NewTaskResponse(task, containerMap)) } else { log.Warn("Could not find requsted resource: " + resourceId) responseJSON, _ = json.Marshal(&TaskResponse{}) status = statusBadRequest } return responseJSON, status }
// DockerStatesEqual determines if the two given dockerstates are equal, for // equal meaning they have the same tasks and their tasks are equal func DockerStatesEqual(lhs, rhs *dockerstate.DockerTaskEngineState) bool { // Simple equality check; just verify that all tasks are equal lhsTasks := lhs.AllTasks() rhsTasks := rhs.AllTasks() if len(lhsTasks) != len(rhsTasks) { return false } for _, left := range lhsTasks { right, ok := rhs.TaskByArn(left.Arn) if !ok { return false } if !api_testutils.TasksEqual(left, right) { return false } } return true }