code: func ValidDependencies(task *apitask.Task) bool {
  	unresolved := make([]*apicontainer.Container, len(task.Containers))
  	resolved := make([]*apicontainer.Container, 0, len(task.Containers))
  
  	copy(unresolved, task.Containers)
  
  OuterLoop:
  	for len(unresolved) > 0 {
  		for i, tryResolve := range unresolved {
  			if dependenciesCanBeResolved(tryResolve, resolved) {
  				resolved = append(resolved, tryResolve)
  				unresolved = append(unresolved[:i], unresolved[i+1:]...)
  				// Break out of the inner loop now that we modified the slice
  				// we're looping over
  				continue OuterLoop
  			}
  		}
  		log.Warnf("Could not resolve some containers: [%v] for task %v", unresolved, task)
  		return false
  	}
  
  	return true
  }
docs: // ValidDependencies takes a task and verifies that it is possible to allow all
  // containers within it to reach the desired status by proceeding in some
  // order.