code: func (plugin *iscsiPlugin) NewBlockVolumeMapper(spec *volume.Spec, pod *v1.Pod, _ volume.VolumeOptions) (volume.BlockVolumeMapper, error) {
  	// If this is called via GenerateUnmapDeviceFunc(), pod is nil.
  	// Pass empty string as dummy uid since uid isn't used in the case.
  	var uid types.UID
  	var secret map[string]string
  	var err error
  	if pod != nil {
  		uid = pod.UID
  		secret, err = createSecretMap(spec, plugin, pod.Namespace)
  		if err != nil {
  			return nil, err
  		}
  	}
  	return plugin.newBlockVolumeMapperInternal(spec, uid, &ISCSIUtil{}, plugin.host.GetMounter(plugin.GetPluginName()), plugin.host.GetExec(plugin.GetPluginName()), secret)
  }
docs: // NewBlockVolumeMapper creates a new volume.BlockVolumeMapper from an API specification.