public void cancelGrant ( String nodeName , String sessionId , int requestId ) { ClusterNode node = nameToNode . get ( nodeName ) ; if ( node == null ) { LOG . warn ( "Canceling grant for non-existent node: " + nodeName ) ; return ; } synchronized ( node ) { if ( node . deleted ) { LOG . warn ( "Canceling grant for deleted node: " + nodeName ) ; return ; } String hoststr = node . getClusterNodeInfo ( ) . getAddress ( ) . getHost ( ) ; if ( ! canAllowNode ( hoststr ) ) { LOG . warn ( "Canceling grant for excluded node: " + hoststr ) ; return ; } ResourceRequestInfo req = node . getRequestForGrant ( sessionId , requestId ) ; if ( req != null ) { ResourceRequest unitReq = Utilities . getUnitResourceRequest ( req . getType ( ) ) ; boolean previouslyRunnable = node . checkForGrant ( unitReq , resourceLimit ) ; node . cancelGrant ( sessionId , requestId ) ; loadManager . decrementLoad ( req . getType ( ) ) ; if ( ! previouslyRunnable && node . checkForGrant ( unitReq , resourceLimit ) ) { RunnableIndices r = typeToIndices . get ( req . getType ( ) ) ; if ( ! faultManager . isBlacklisted ( node . getName ( ) , req . getType ( ) ) ) { r . addRunnable ( node ) ; } } } } }
Cancel grant on a node