code: func (p *iscsiProvisioner) Delete(volume *v1.PersistentVolume) error {
  	//vol from the annotation
  	log.Debugln("volume deletion request received: ", volume.GetName())
  	for _, initiator := range strings.Split(volume.Annotations["initiators"], ",") {
  		log.Debugln("removing iscsi export: ", volume.Annotations["volume_name"], volume.Annotations["pool"], initiator)
  		err := p.exportDestroy(volume.Annotations["volume_name"], volume.Annotations["pool"], initiator)
  		if err != nil {
  			log.Warnln(err)
  			return err
  		}
  		log.Debugln("iscsi export removed: ", volume.Annotations["volume_name"], volume.Annotations["pool"], initiator)
  	}
  	log.Debugln("removing logical volume : ", volume.Annotations["volume_name"], volume.Annotations["pool"])
  	err := p.volDestroy(volume.Annotations["volume_name"], volume.Annotations["pool"])
  	if err != nil {
  		log.Warnln(err)
  		return err
  	}
  	log.Debugln("logical volume removed: ", volume.Annotations["volume_name"], volume.Annotations["pool"])
  	log.Debugln("volume deletion request completed: ", volume.GetName())
  	return nil
  }
docs: // Delete removes the storage asset that was created by Provision represented
  // by the given PV.