code: func (runner *runner) EnsureChain(table Table, chain Chain) (bool, error) {
  	fullArgs := makeFullArgs(table, chain)
  
  	runner.mu.Lock()
  	defer runner.mu.Unlock()
  
  	out, err := runner.run(opCreateChain, fullArgs)
  	if err != nil {
  		if ee, ok := err.(utilexec.ExitError); ok {
  			if ee.Exited() && ee.ExitStatus() == 1 {
  				return true, nil
  			}
  		}
  		return false, fmt.Errorf("error creating chain %q: %v: %s", chain, err, out)
  	}
  	return false, nil
  }
docs: // EnsureChain is part of Interface.