From 6aa515616d55d814376ad717ce7aa62b3a5d162c Mon Sep 17 00:00:00 2001 From: Jason Nah Date: Wed, 26 Apr 2017 13:34:03 +1000 Subject: [PATCH 1/2] Prevent empty deadLetterQueue TargetArns * Command returns options as an empty string. Empty strings are invalid ARNs anyway and the AWS SDK will fail. Ignore empty strings if they are sent through. --- lib/main.js | 2 +- test/main.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/main.js b/lib/main.js index 8c6235be..2f4a9219 100644 --- a/lib/main.js +++ b/lib/main.js @@ -131,7 +131,7 @@ Lambda.prototype._params = function (program, buffer) { Variables: config } } - if (program.deadLetterConfigTargetArn !== undefined) { + if (program.deadLetterConfigTargetArn !== undefined && program.deadLetterConfigTargetArn !== '' && program.deadLetterConfigTargetArn !== null) { params.DeadLetterConfig = { TargetArn: program.deadLetterConfigTargetArn }; diff --git a/test/main.js b/test/main.js index 34e27d78..79fa0691 100644 --- a/test/main.js +++ b/test/main.js @@ -85,7 +85,7 @@ describe('node-lambda', function () { }); it('appends DeadLetterConfig to params when DLQ params set', function() { - ['', 'arn:aws:sqs:test'].forEach(function(v) { + ['arn:aws:sqs:test'].forEach(function(v) { program.deadLetterConfigTargetArn = v; const params = lambda._params(program); assert.equal(params.DeadLetterConfig.TargetArn, v, v); From 89543102bddf22b622c65cc06e76408e51133abb Mon Sep 17 00:00:00 2001 From: Jason Nah Date: Wed, 26 Apr 2017 14:18:20 +1000 Subject: [PATCH 2/2] Handle empty tracingConfig * Again, the AWS SDK fails if it is provided and not expected --- .build_1493180045112/package.json | 1 + .build_1493180045112/testa | 1 + .build_1493180045214/package.json | 1 + .build_1493180045214/testa | 1 + lib/main.js | 4 +++- test/main.js | 2 +- 6 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 .build_1493180045112/package.json create mode 100644 .build_1493180045112/testa create mode 100644 .build_1493180045214/package.json create mode 100644 .build_1493180045214/testa diff --git a/.build_1493180045112/package.json b/.build_1493180045112/package.json new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/.build_1493180045112/package.json @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/.build_1493180045112/testa b/.build_1493180045112/testa new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/.build_1493180045112/testa @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/.build_1493180045214/package.json b/.build_1493180045214/package.json new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/.build_1493180045214/package.json @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/.build_1493180045214/testa b/.build_1493180045214/testa new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/.build_1493180045214/testa @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/lib/main.js b/lib/main.js index 2f4a9219..5c67ea7d 100644 --- a/lib/main.js +++ b/lib/main.js @@ -136,8 +136,10 @@ Lambda.prototype._params = function (program, buffer) { TargetArn: program.deadLetterConfigTargetArn }; } - if (program.tracingConfig) { + if (program.tracingConfig !== undefined && program.tracingConfig !== '' && program.tracingConfig !== null) { params.TracingConfig.Mode = program.tracingConfig; + } else { + delete params.TracingConfig; } return params; diff --git a/test/main.js b/test/main.js index 79fa0691..9dd3c47f 100644 --- a/test/main.js +++ b/test/main.js @@ -107,7 +107,7 @@ describe('node-lambda', function () { it('does not append TracingConfig when params are not set', function() { program.tracingConfig = ''; const params = lambda._params(program); - assert.isNull(params.TracingConfig.Mode); + assert.isUndefined(params.TracingConfig); }); describe('configFile', function () {