private boolean controlLogGrowth(DataNodeId dataNodeId, boolean enableGrowth) throws IOException, TimeoutException {
    return serverAdminTool.controlRequest(dataNodeId, null, RequestOrResponseType.PutRequest, enableGrowth)
        == ServerErrorCode.NoError
        && serverAdminTool.controlRequest(dataNodeId, null, RequestOrResponseType.DeleteRequest, enableGrowth)
        == ServerErrorCode.NoError
        && serverAdminTool.controlReplication(dataNodeId, null, Collections.EMPTY_LIST, enableGrowth)
        == ServerErrorCode.NoError;
  }
Disables/enables requests (PUT, DELETE, inbound replication) on {@code dataNodeId} that cause the logs the grow.
@param dataNodeId the {@link DataNodeId} where log growth has to be controlled.
@param enableGrowth {@code true} if the requests need to be enabled, {@code false} if they need to be disabled.
@return {@code true} if the requested operation succeeded. {@code false} otherwise.
@throws IOException if there is any I/O error.
@throws TimeoutException if there are timeout errors while making network requests.
ambry-tools/src/main/java/com/github/ambry/tools/admin/SafeServerShutdownTool.java