code: func (ps *Plugins) getPlugin(name string, config io.Reader) (Interface, bool, error) {
  	ps.lock.Lock()
  	defer ps.lock.Unlock()
  	f, found := ps.registry[name]
  	if !found {
  		return nil, false, nil
  	}
  
  	config1, config2, err := splitStream(config)
  	if err != nil {
  		return nil, true, err
  	}
  	if !PluginEnabledFn(name, config1) {
  		return nil, true, nil
  	}
  
  	ret, err := f(config2)
  	return ret, true, err
  }
docs: // getPlugin creates an instance of the named plugin.  It returns `false` if the
  // the name is not known. The error is returned only when the named provider was
  // known but failed to initialize.  The config parameter specifies the io.Reader
  // handler of the configuration file for the cloud provider, or nil for no configuration.