             cb      : required
         dbg = @dbg("action")
         dbg("action=#{opts.action}; params=#{misc.to_safe_str(opts.params)}")
-        @compute_server.call
-            host : @host
-            mesg :
-                message.compute
-                    project_id : @project_id
-                    action     : opts.action
-                    args       : opts.args
-            timeout : opts.timeout
-            cb      : (err, resp) =>
+        @update_host
+            cb : (err) =>
                 if err
-                    opts.cb(err)
-                else
-                    if resp.error?
-                        opts.cb(resp.error)
-                    else
-                        opts.cb(undefined, resp)
+                    opts.cb(err); return
+                @compute_server.call
+                    host : @host
+                    mesg :
+                        message.compute
+                            project_id : @project_id
+                            action     : opts.action
+                            args       : opts.args
+                    timeout : opts.timeout
+                    cb      : (err, resp) =>
+                        if err
+                            opts.cb(err)
+                        else
+                            if resp.error?
+                                opts.cb(resp.error)
+                            else
+                                opts.cb(undefined, resp)
 
     ###
        The state of the project, which is one of:

                                    if mesg.event == 'project_state_update'
                                        winston.debug("state_update #{misc.to_json(mesg)}")
                                        p = @_project_cache[mesg.project_id]
                                        if p?
                                            p._state      = mesg.state
                                            p._state_time = new Date()
                                            p.emit(p._state, p)

    # create snapshot, save incrementals to cloud storage
    save: (opts) =>
        opts = defaults opts,
            max_snapshots : 60
            cb     : required
        @_action
            action : "save"
