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}
}
// 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
}