code: func (vs *volumeSnapshotter) deleteSnapshot(spec *crdv1.VolumeSnapshotDataSpec) error {
  	volumeType := crdv1.GetSupportedVolumeFromSnapshotDataSpec(spec)
  	if len(volumeType) == 0 {
  		return fmt.Errorf("unsupported volume type found in VolumeSnapshotData %#v", spec)
  	}
  	plugin, ok := (*vs.volumePlugins)[volumeType]
  	if !ok {
  		return fmt.Errorf("%s is not supported volume for %#v", volumeType, spec)
  	}
  	source := spec.VolumeSnapshotDataSource
  	pv, err := vs.getPVFromName(spec.PersistentVolumeRef.Name)
  	if err != nil {
  		glog.Warningf("failed to retrieve PV %s from the API server: %q", spec.PersistentVolumeRef.Name, err)
  	}
  	err = plugin.SnapshotDelete(&source, pv)
  	if err != nil {
  		return fmt.Errorf("failed to delete snapshot %#v, err: %v", source, err)
  	}
  	glog.Infof("snapshot %#v deleted", source)
  
  	return nil
  }
docs: // This is the function responsible for determining the correct volume plugin to use,
  // asking it to make a snapshot and assigning it some name that it returns to the caller.