installer: retry fetching installer data 5 times

On some VPS providers, getting the userData is "flaky".

Fixes #3
This commit is contained in:
Girish Ramakrishnan
2016-08-19 17:51:14 -07:00
parent 02c5e731a9
commit 8ee2a7016d
+13 -7
View File
@@ -58,17 +58,23 @@ function provision(callback) {
return callback(null); // already provisioned return callback(null); // already provisioned
} }
// try first digitalocean, then ec2 async.retry({ times: 5, interval: 30000 }, function (done) {
provisionDigitalOcean(function (error, userData) { // try first digitalocean, then ec2
if (!error) return installer.provision(userData, callback); provisionDigitalOcean(function (error1, userData) {
if (!error1) return done(null, userData);
provisionEC2(function (error, userData) { provisionEC2(function (error2, userData) {
if (!error) return installer.provision(userData, callback); if (!error2) return done(null, userData);
console.error('Unable to get meta data', error); console.error('Unable to get meta data: ', error1.message + ' ' + error2.message);
callback(new Error('Error getting metadata')); callback(new Error(error1.message + ' ' + error2.message));
});
}); });
}, function (error, userData) {
if (error) return callback(error);
installer.provision(userData, callback);
}); });
} }