private InstanceAvailability determineInstanceAvailability()

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;
        }
    }