diff options
Diffstat (limited to 'vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/launchers/retry.js')
-rw-r--r-- | vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/launchers/retry.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/launchers/retry.js b/vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/launchers/retry.js new file mode 100644 index 00000000..3df67c8e --- /dev/null +++ b/vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/launchers/retry.js @@ -0,0 +1,32 @@ +var log = require('../logger').create('launcher') + +var RetryLauncher = function (retryLimit) { + var self = this + + this._retryLimit = retryLimit + + this.on('done', function () { + if (!self.error) { + return + } + + if (self._retryLimit > 0) { + var attempt = retryLimit - self._retryLimit + 1 + log.info('Trying to start %s again (%d/%d).', self.name, attempt, retryLimit) + self.restart() + self._retryLimit-- + } else if (self._retryLimit === 0) { + log.error('%s failed %d times (%s). Giving up.', self.name, retryLimit, self.error) + } else { + log.debug('%s failed (%s). Not restarting.', self.name, self.error) + } + }) +} + +RetryLauncher.decoratorFactory = function () { + return function (launcher) { + RetryLauncher.call(launcher, 2) + } +} + +module.exports = RetryLauncher |