code: func (util *portworxVolumeUtil) getLocalPortworxDriver(volumeHost volume.VolumeHost) (volumeapi.VolumeDriver, error) {
  	if util.portworxClient != nil {
  		// check if existing saved client is valid
  		if isValid, _ := isClientValid(util.portworxClient); isValid {
  			return volumeclient.VolumeDriver(util.portworxClient), nil
  		}
  	}
  
  	// Lookup port
  	svc, err := getPortworxService(volumeHost)
  	if err != nil {
  		return nil, err
  	}
  
  	osgMgmtPort := lookupPXAPIPortFromService(svc)
  	util.portworxClient, err = createDriverClient(volumeHost.GetHostName(), osgMgmtPort)
  	if err != nil {
  		return nil, err
  	}
  
  	klog.Infof("Using portworx local service at: %v:%d as api endpoint",
  		volumeHost.GetHostName(), osgMgmtPort)
  	return volumeclient.VolumeDriver(util.portworxClient), nil
  }
docs: // getLocalPortworxDriver returns driver connected to Portworx API server on volume host.
  //   This is required to force certain operations (mount, unmount, detach, attach) to
  //   go to the volume host instead of the k8s service which might route it to any host. This pertains to how
  //   Portworx mounts and attaches a volume to the running container. The node getting these requests needs to
  //   see the pod container mounts (specifically /var/lib/kubelet/pods/<pod_id>)