 
 (defn get-hosts
   "Returns all hosts for connected cluster"
-  [^Session client]
+  [^Session session]
   (map (fn [^Host host]
          {:datacenter (.getDatacenter host)
           :address    (.getHostAddress (.getAddress host))
-          :rack       (.getRack host)})
-       (-> client
+          :rack       (.getRack host)
+          :is-up      (.isUp (.getMonitor host))})
+       (-> session
            (.getCluster)
            (.getMetadata)
            (.getAllHosts))))
-
 
 ;; defn get-replicas
 ;; defn get-cluster-name

(defn exponential-reconnection-policy
  "Reconnection policy that waits exponentially longer between each
reconnection attempt (but keeps a constant delay once a maximum delay is
reached)."
  [base-delay-ms max-delay-ms]
  (ExponentialReconnectionPolicy. base-delay-ms max-delay-ms))

(defn constant-reconnection-policy
  "Reconnection policy that waits constantly longer between each
reconnection attempt (but keeps a constant delay once a maximum delay is
reached)."
  [delay-ms]
  (ConstantReconnectionPolicy. delay-ms))


(defn connect!
  "Connects and sets *default-cluster* and *default-session* for default cluster and session, that
   cql/execute is going to use."
  [hosts & {:as options}]
  (let [cluster (-> (Cluster/builder)
                    (copt/set-cluster-options! (assoc options :contact-points hosts))
