     (.networks (openstack :network-ids))
     (.build)))
 
-(defn wait-for-ip  [compute id network timeout]
+(defn wait-for-ip  [servers' id network timeout]
   "Wait for an ip to be avilable"
-  (wait-for {:timeout timeout} #(not (nil? (first-ip (.get compute id) network)))
+  (wait-for {:timeout timeout} #(not (nil? (first-ip (.get servers' id) network)))
     {:type ::openstack:status-failed :timeout timeout} 
       "Timed out on waiting for ip to be available"))
 

  [(provider-validation spec)]
  Vm
  (create [this] 
    (let [compute (servers tenant) 
          server (.boot compute (model spec)) 
          id (:id (from-java server)) 
          network (first (get-in spec [:openstack :networks]))]
       (update-id spec id)
       (debug "waiting for" id "to get an ip on" network)
       (wait-for-ip compute id network [5 :minute])
       (let [ip (first-ip (.get compute id) network)]
         (update-ip spec ip)
         (debug "waiting for ssh to be available at" ip)
         (wait-for-ssh ip (get-in spec [:machine :user]) [5 :minute]))
       (when-let [floating (get-in spec [:openstack :floating-ip])]
         (assoc-floating compute server floating))
       this))

  (start [this]

  (delete [this]
     (with-instance-id 
       (debug "deleting" instance-id)
       (let [servers' (servers tenant)]
         (when-let [ip (get-in spec [:openstack :floating-ip])]
           (dissoc-floating (floating-ips tenant) (.get servers' instance-id) ip))
         (.delete servers' instance-id))))

  (stop [this]
     (with-instance-id 
       (debug "stopping" instance-id )
       (.action (servers tenant) instance-id Action/STOP)
       (wait-for-stop this [5 :minute])))

  (status [this] 
     (if-let [instance-id (instance-id* spec)]
