@Override public boolean equals(final Object obj) { if (obj == null) { return false; } if (!(obj instanceof PeerStatus)) { return false; } final PeerStatus other = (PeerStatus) obj; return description.equals(other.getPeerDescription()); } }
public boolean isPenalized(final PeerStatus peerStatus) { final Long expirationEnd = peerTimeoutExpirations.get(peerStatus.getPeerDescription()); return (expirationEnd != null && expirationEnd > systemTime.currentTimeMillis()); }
private void persistPeerStatuses(final Set<PeerStatus> statuses) { if (persistenceFile == null) { return; } try (final OutputStream fos = new FileOutputStream(persistenceFile); final OutputStream out = new BufferedOutputStream(fos)) { for (final PeerStatus status : statuses) { final PeerDescription description = status.getPeerDescription(); final String line = description.getHostname() + ":" + description.getPort() + ":" + description.isSecure() + ":" + status.isQueryForPeers() + "\n"; out.write(line.getBytes(StandardCharsets.UTF_8)); } } catch (final IOException e) { error(logger, eventReporter, "Failed to persist list of Peers due to {}; if restarted and peer's NCM is down," + " may be unable to transfer data until communications with NCM are restored", e.toString()); logger.error("", e); } }
lastFetched.stream().map(peer -> peer.getPeerDescription()) .forEach(desc -> peersToRequestClusterInfoFrom.add(desc));
PeerStatus status = destinations.get(index); if (status == null) { status = new PeerStatus(nodeInfo.getPeerDescription(), nodeInfo.getFlowFileCount(), nodeInfo.isQueryForPeers()); destinations.set(index, status); break;
private CommunicationsSession establishSiteToSiteConnection(final PeerStatus peerStatus) throws IOException { final PeerDescription description = peerStatus.getPeerDescription(); return establishSiteToSiteConnection(description.getHostname(), description.getPort()); }
private Set<PeerStatus> getPeerStatuses() { final PeerStatusCache cache = this.peerStatusCache; if (cache == null || cache.getStatuses() == null || cache.getStatuses().isEmpty()) { return null; } if (cache.getTimestamp() + PEER_CACHE_MILLIS < systemTime.currentTimeMillis()) { final Set<PeerStatus> equalizedSet = new HashSet<>(cache.getStatuses().size()); for (final PeerStatus status : cache.getStatuses()) { final PeerStatus equalizedStatus = new PeerStatus(status.getPeerDescription(), 1, status.isQueryForPeers()); equalizedSet.add(equalizedStatus); } return equalizedSet; } return cache.getStatuses(); }
final String nodeApiUrl = resolveNodeApiUrl(peerStatus.getPeerDescription()); final StringBuilder clusterUrls = new StringBuilder(); config.getUrls().forEach(url -> { final Peer peer = new Peer(peerStatus.getPeerDescription(), commSession, nodeApiUrl, clusterUrls.toString());
final PeerDescription peerDescription = peerStatus.getPeerDescription(); BlockingQueue<EndpointConnection> connectionQueue = connectionQueueMap.get(peerDescription); if (connectionQueue == null) { commsSession = establishSiteToSiteConnection(peerStatus); } catch (final IOException ioe) { peerSelector.penalize(peerStatus.getPeerDescription(), penalizationMillis); throw ioe;