From a7141809955a951f3be5fc99d86913d8d1e850c7 Mon Sep 17 00:00:00 2001 From: Henry Mollman Date: Tue, 4 Apr 2017 11:23:44 -0700 Subject: [PATCH 1/2] Add logic for error handling --- lib/shiva/tasks/dock.attach.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/shiva/tasks/dock.attach.js b/lib/shiva/tasks/dock.attach.js index 74a8fb3..f4e40a6 100644 --- a/lib/shiva/tasks/dock.attach.js +++ b/lib/shiva/tasks/dock.attach.js @@ -35,8 +35,9 @@ DockAttach.task = (job) => { if (err.getCurrentASG() === targetASGName) { throw new WorkerStopError('instance already attached to asg', { err, targetASGName }) } - - throw err + if (!(new RegExp('is already part of AutoScalingGroup:' + process.env.DOCK_POOL_ASG_NAME).test(err.data.originalError.message))) { + throw err; + } }) .then(() => { return publisher.publishTask('dock.initialize', { From 783f7686e37994993ed0c881b2c6f9de8cc31f6e Mon Sep 17 00:00:00 2001 From: Henry Mollman Date: Tue, 18 Apr 2017 10:30:01 -0700 Subject: [PATCH 2/2] Fix error reporting --- lib/shiva/errors/dock-not-detached-error.js | 8 ++++++++ lib/shiva/tasks/dock.attach.js | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 lib/shiva/errors/dock-not-detached-error.js diff --git a/lib/shiva/errors/dock-not-detached-error.js b/lib/shiva/errors/dock-not-detached-error.js new file mode 100644 index 0000000..be111c7 --- /dev/null +++ b/lib/shiva/errors/dock-not-detached-error.js @@ -0,0 +1,8 @@ +'use strict' +const BaseError = require('error-cat/errors/base-error') + +module.exports = class DockNotDetachedError extends BaseError { + constructor (errMessage, originalError, reporting) { + super(errMessage, originalError, reporting) + } +} diff --git a/lib/shiva/tasks/dock.attach.js b/lib/shiva/tasks/dock.attach.js index f4e40a6..8cbae02 100644 --- a/lib/shiva/tasks/dock.attach.js +++ b/lib/shiva/tasks/dock.attach.js @@ -1,6 +1,7 @@ 'use strict' const Promise = require('bluebird') const WorkerStopError = require('error-cat/errors/worker-stop-error') +const DockNotDetachedError = require('../errors/dock-not-detached-error') require('loadenv')({ project: 'shiva', debugName: 'astral:shiva:env' }) const AutoScalingGroup = require('../models/auto-scaling-group') @@ -36,8 +37,9 @@ DockAttach.task = (job) => { throw new WorkerStopError('instance already attached to asg', { err, targetASGName }) } if (!(new RegExp('is already part of AutoScalingGroup:' + process.env.DOCK_POOL_ASG_NAME).test(err.data.originalError.message))) { - throw err; + throw new DockNotDetachedError('Instance still not detached from pool', err, { level: 'info' }) } + throw err; }) .then(() => { return publisher.publishTask('dock.initialize', {