in priam/src/main/java/com/netflix/priam/identity/InstanceIdentity.java [97:127]
public List<String> getSeeds() {
populateRacMap();
List<String> seeds = new LinkedList<>();
// Handle single zone deployment
if (config.getRacs().size() == 1) {
// Return empty list if all nodes are not up
if (membership.getRacMembershipSize() != locMap.get(myInstance.getRac()).size())
return seeds;
// If seed node, return the next node in the list
if (locMap.get(myInstance.getRac()).size() > 1
&& locMap.get(myInstance.getRac())
.get(0)
.getHostIP()
.equals(myInstance.getHostIP())) {
PriamInstance instance = locMap.get(myInstance.getRac()).get(1);
if (instance != null && !isInstanceDummy(instance)) {
if (config.isMultiDC()) seeds.add(instance.getHostIP());
else seeds.add(instance.getHostName());
}
}
}
for (String loc : locMap.keySet()) {
PriamInstance instance =
Iterables.tryFind(locMap.get(loc), differentHostPredicate).orNull();
if (instance != null && !isInstanceDummy(instance)) {
if (config.isMultiDC()) seeds.add(instance.getHostIP());
else seeds.add(instance.getHostName());
}
}
return seeds;
}