code: func (d *flexVolumeDetacher) Detach(volumeName string, hostName types.NodeName) error {
  
  	call := d.plugin.NewDriverCall(detachCmd)
  	call.Append(volumeName)
  	call.Append(string(hostName))
  
  	_, err := call.Run()
  	if isCmdNotSupportedErr(err) {
  		return (*detacherDefaults)(d).Detach(volumeName, hostName)
  	}
  	return err
  }
docs: // Detach is part of the volume.Detacher interface.