From ba082711865d351bd02786f0f19bf49870718a03 Mon Sep 17 00:00:00 2001
From: Lloyd Hilaiel <lloyd@hilaiel.com>
Date: Wed, 1 Feb 2012 14:55:06 -0700
Subject: [PATCH] fix provisioning failure where DescribeInstance doesn't find
 an instance immediately after provisioning

---
 scripts/deploy/vm.js | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/scripts/deploy/vm.js b/scripts/deploy/vm.js
index 3556bd871..f6efc45e6 100644
--- a/scripts/deploy/vm.js
+++ b/scripts/deploy/vm.js
@@ -84,6 +84,13 @@ exports.waitForInstance = function(id, cb) {
     InstanceId: id
   }, function(r) {
     if (!r) return cb('no response from ec2');
+    // we're waiting and amazon might not have created the image yet!  that's
+    // not an error, just an api timing quirk
+    var waiting = jsel.match('.Error .Code:val("InvalidInstanceID.NotFound")', r);
+    if (waiting.length) {
+      return setTimeout(function(){ exports.waitForInstance(id, cb); }, 1000);
+    }
+
     if (!r.instanceStatusSet) return cb('malformed response from ec2' + JSON.stringify(r, null, 2));
     if (Object.keys(r.instanceStatusSet).length) {
       var deets = extractInstanceDeets(r.instanceStatusSet.item);
-- 
GitLab