   (:require 
     [celestial.common :refer (import-logging )] 
     [celestial.provider :refer (wait-for)] 
-    [aws.sdk.ebs :as ebs]
-    [aws.sdk.ec2 :as ec2]
+    [amazonica.aws.ec2 :as ec2]
     [celestial.persistency.systems :as s]
     [aws.common :refer (with-ctx instance-desc creds image-id)]
     )) 

    (wait-for-attach endpoint instance-id [10 :minute]))
  (let [zone (instance-desc endpoint instance-id :placement :availability-zone)]
    (doseq [{:keys [device size]} (aws :volumes)]
      (let [{:keys [volumeId]} (with-ctx ebs/create-volume size zone)]
        (wait-for {:timeout [10 :minute]} #(= "available" (with-ctx ebs/state volumeId))
           {:type ::aws:ebs-volume-availability :message "Failed to wait for ebs volume to become available"})
        (with-ctx ebs/attach-volume volumeId instance-id device)
        (wait-for {:timeout [10 :minute]} #(= "attached" (with-ctx ebs/attachment-status volumeId))
           {:type ::aws:ebs-volume-attach-failed :message "Failed to wait for ebs volume device attach"})))))

(defn clear?

(import-logging)

(defn image-desc [endpoint ami & ks]
  (-> 
    (ec2/describe-images (assoc (creds) :endpoint endpoint) 
       :image-ids [ami]) :images first (apply ks)
      ))

(defn wait-for-attach [endpoint instance-id timeout]
  (wait-for {:timeout timeout} 
    #(= "attached" (instance-desc endpoint instance-id :block-device-mappings 0 :ebs :status)) 
    {:type ::aws:ebs-attach-failed :message "Failed to wait for ebs root device attach"}))

(defn volume-desc [endpoint volume-id & ks]
  (-> 
   (with-ctx ec2/describe-volumes {:volume-ids [volume-id]}))
    :volumes first (get-in ks))

(defn handle-volumes 
   "attached and waits for ebs volumes" 
