code: func (c *Cluster) DetachNetwork(target string, containerID string) error {
  	aKey := attacherKey(target, containerID)
  
  	c.mu.Lock()
  	attacher, ok := c.attachers[aKey]
  	delete(c.attachers, aKey)
  	c.mu.Unlock()
  
  	if !ok {
  		return fmt.Errorf("could not find network attachment for container %s to network %s", containerID, target)
  	}
  
  	close(attacher.detachWaitCh)
  	return nil
  }
docs: // DetachNetwork unblocks the waiters waiting on WaitForDetachment so
  // that a request to detach can be generated towards the manager.