summaryrefslogtreecommitdiffstats
path: root/vnfmarket/src/main/webapp/vnfmarket/node_modules/karma/lib/launchers/retry.js
diff options
context:
space:
mode:
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.js32
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