code: public void nodeFeedback(String nodeName, List<ResourceType> resourceTypes,
        NodeUsageReport usageReport) {
      List<FaultStatsForType> faultStats = nodeToFaultStats.get(nodeName);
      if (faultStats == null) {
        LOG.info("Received node feedback for deleted node " + nodeName);
        return;
      }
      boolean statsModified = false;
      synchronized (faultStats) {
        if (tooManyFailedConnectionsInSession(usageReport)) {
          for (FaultStatsForType stat : faultStats) {
            if (resourceTypes.contains(stat.type)) {
              stat.numSessionsWithFailedConnections++;
              statsModified = true;
            }
          }
        }
        if (tooManyFailuresInSession(usageReport)) {
          for (FaultStatsForType stat : faultStats) {
            if (resourceTypes.contains(stat.type)) {
              stat.numSessionsWithTooManyFailures++;
              statsModified = true;
            }
          }
        }
      }
  
      if (statsModified) {
        blacklistIfNeeded(nodeName, faultStats);
      }
    }
docs: Provide the fault manager with new feedback about a node.
  
  @param nodeName The node name.
  @param resourceTypes The types of resources used on the node.
  @param usageReport The {@link NodeUsageReport} for this node.