code: public void stop(SessionStatus status,
                     List<ResourceType> resourceTypes,
                     List<NodeUsageReport> reportList) {
      LOG.info("Stopping session driver");
      running = false;
  
      // clear all calls from the notifier and append the feedback and session
      // end.
      cmNotifier.clearCalls();
      if (reportList != null && !reportList.isEmpty()) {
        cmNotifier.addCall(
          new ClusterManagerService.nodeFeedback_args(
            sessionId, resourceTypes, reportList));
      }
      cmNotifier.addCall(
          new ClusterManagerService.sessionEnd_args(sessionId, status));
      cmNotifier.doShutdown();
      server.stop();
  
      incomingCallExecutor.interrupt();
    }
docs: Stop the SessionDriver.
  This sends the message to the ClusterManager indicating that the session
  has ended.
  If reportList is not null or empty it will send the report prior to
  closing the session.
  
  @param status the terminating status of the session
  @param resourceTypes the types of the resources to send the report for
  @param reportList the report of node usage for this session