in cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/bulkwriter/CassandraClusterInfo.java [453:476]
private InstanceAvailability determineInstanceAvailability(RingEntry ringEntry)
{
if (!instanceIsUp(ringEntry))
{
return InstanceAvailability.UNAVAILABLE_DOWN;
}
else if (instanceIsJoining(ringEntry) && isReplacement(ringEntry))
{
return InstanceAvailability.UNAVAILABLE_REPLACEMENT;
}
else if (instanceIsBlocked(getCasInstanceMethodsImpl(ringEntry)))
{
return InstanceAvailability.UNAVAILABLE_BLOCKED;
}
else if (instanceIsNormal(ringEntry))
{
return InstanceAvailability.AVAILABLE;
}
else
{
// If it's not one of the above, it's inherently INVALID
return InstanceAvailability.INVALID_STATE;
}
}