// Path: src/main/java/uk/sky/cqlmigrate/exception/ClusterUnhealthyException.java
// public class ClusterUnhealthyException extends RuntimeException {
//     public ClusterUnhealthyException(String message) {
//         super(message);
//     }
// }


import com.datastax.oss.driver.api.core.metadata.Node;
import com.datastax.oss.driver.api.core.metadata.NodeState;
import com.datastax.oss.driver.api.core.session.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import uk.sky.cqlmigrate.exception.ClusterUnhealthyException;
import java.net.InetAddress;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
package uk.sky.cqlmigrate;



class ClusterHealth {

    private static final Logger log = LoggerFactory.getLogger(ClusterHealth.class);

    private final Session session;

    ClusterHealth(Session session) {
        this.session = session;
    }

// Path: src/main/java/uk/sky/cqlmigrate/exception/ClusterUnhealthyException.java
// public class ClusterUnhealthyException extends RuntimeException {
//     public ClusterUnhealthyException(String message) {
//         super(message);
//     }
// }


// Path: src/main/java/uk/sky/cqlmigrate/ClusterHealth.java
import com.datastax.oss.driver.api.core.metadata.Node;
import com.datastax.oss.driver.api.core.metadata.NodeState;
import com.datastax.oss.driver.api.core.session.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import uk.sky.cqlmigrate.exception.ClusterUnhealthyException;
import java.net.InetAddress;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;

package uk.sky.cqlmigrate;



class ClusterHealth {

    private static final Logger log = LoggerFactory.getLogger(ClusterHealth.class);

    private final Session session;

    ClusterHealth(Session session) {
        this.session = session;
    }

    void check() throws ClusterUnhealthyException {