@Override public void nodeLeft(ManagementNodeInventory inv) { final String nodeId = inv.getUuid(); if (!destinationMaker.getManagementNodesInHashRing().contains(nodeId)) { logger.debug(String.format("the management node[uuid:%s] is not in our hash ring, ignore this node-left call", nodeId)); return; } ManagementNodeChangeListener l = (ManagementNodeChangeListener) destinationMaker; l.nodeLeft(inv); CollectionUtils.safeForEach(lifeCycleExtension, new ForEachFunction<ManagementNodeChangeListener>() { @Override public void run(ManagementNodeChangeListener arg) { arg.nodeLeft(inv); } }); }
@Override public void nodeJoin(ManagementNodeInventory inv) { final String nodeId = inv.getUuid(); if (destinationMaker.getManagementNodesInHashRing().contains(nodeId)) { logger.debug(String.format("the management node[uuid:%s] is already in our hash ring, ignore this node-join call", nodeId)); return; } ManagementNodeChangeListener l = (ManagementNodeChangeListener) destinationMaker; l.nodeJoin(inv); CollectionUtils.safeForEach(lifeCycleExtension, new ForEachFunction<ManagementNodeChangeListener>() { @Override public void run(ManagementNodeChangeListener arg) { arg.nodeJoin(inv); } }); }
destinationMaker.getManagementNodesInHashRing().forEach(nodeUuid -> { if (!nodeUuidsInDb.contains(nodeUuid)) { logger.warn(String.format("found that a management node[uuid:%s] had no heartbeat in database but still in our hash ring," + if (!destinationMaker.getManagementNodesInHashRing().contains(n.getUuid())) { new Runnable() { @Override