package org.rhq.enterprise.server.storage; import java.net.InetAddress; import com.datastax.driver.core.exceptions.NoHostAvailableException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.rhq.server.metrics.StorageSession; import org.rhq.server.metrics.StorageStateListener; /** * @author John Sanda */ public class StorageClusterMonitor implements StorageStateListener { private Log log = LogFactory.getLog(StorageClusterMonitor.class); private boolean isClusterAvailable = true; private StorageSession session; public StorageClusterMonitor(StorageSession session) { this.session = session; } public boolean isClusterAvailable() { return isClusterAvailable; } @Override public void onStorageNodeUp(InetAddress address) { log.info("Storage node at " + address.getHostAddress() + " is up"); isClusterAvailable = true; } @Override public void onStorageNodeDown(InetAddress address) { log.info("Storage node at " + address.getHostAddress() + " is down"); } @Override public void onStorageNodeRemoved(InetAddress address) { log.info("Storage node at " + address.getHostAddress() + " has been removed from the cluster"); } @Override public void onStorageClusterUp() { log.info("Storage cluster is up"); isClusterAvailable = true; } @Override public void onStorageClusterDown(NoHostAvailableException e) { log.info("Storage cluster is down"); isClusterAvailable = false; } @Override public void onClientTimeout(NoHostAvailableException e) { } }