Skip to content

Commit c16297e

Browse files
authored
Merge pull request #775 from abetomo/v3-updateTags
sdk-v3: Use sdk-v3 with _updateTags()
2 parents b80f8a9 + c21c954 commit c16297e

File tree

2 files changed

+20
-17
lines changed

2 files changed

+20
-17
lines changed

lib/main.js

+13-14
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ const {
3434
DeleteEventSourceMappingCommand,
3535
GetFunctionCommand,
3636
ListEventSourceMappingsCommand,
37+
ListTagsCommand,
38+
TagResourceCommand,
39+
UntagResourceCommand,
3740
UpdateEventSourceMappingCommand,
3841
UpdateFunctionCodeCommand,
3942
UpdateFunctionConfigurationCommand
@@ -856,21 +859,17 @@ they may not work as expected in the Lambda environment.
856859
}))
857860
}
858861

859-
_updateTags (lambda, functionArn, tags) {
862+
async _updateTags (lambda, functionArn, tags) {
860863
if (!tags || Object.keys(tags).length <= 0) {
861-
return Promise.resolve([])
862-
} else {
863-
return lambda.listTags({ Resource: functionArn }).promise()
864-
.then(data => {
865-
const keys = Object.keys(data.Tags)
866-
return keys && keys.length > 0
867-
? lambda.untagResource({ Resource: functionArn, TagKeys: keys }).promise()
868-
: Promise.resolve()
869-
})
870-
.then(() => {
871-
return lambda.tagResource({ Resource: functionArn, Tags: tags }).promise()
872-
})
864+
return []
865+
}
866+
867+
const data = await lambda.send(new ListTagsCommand({ Resource: functionArn }))
868+
const keys = Object.keys(data.Tags)
869+
if (keys && keys.length > 0) {
870+
await lambda.send(new UntagResourceCommand({ Resource: functionArn, TagKeys: keys }))
873871
}
872+
return lambda.send(new TagResourceCommand({ Resource: functionArn, Tags: tags }))
874873
}
875874

876875
_updateScheduleEvents (scheduleEvents, functionArn, scheduleList) {
@@ -1016,7 +1015,7 @@ they may not work as expected in the Lambda environment.
10161015
eventSourceList.S3Events
10171016
),
10181017
this._updateTags(
1019-
lambda,
1018+
lambdaClient,
10201019
results.FunctionArn,
10211020
params.Tags)
10221021
])

test/main.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ const {
2424
DeleteEventSourceMappingCommand,
2525
GetFunctionCommand,
2626
ListEventSourceMappingsCommand,
27+
ListTagsCommand,
28+
TagResourceCommand,
29+
UntagResourceCommand,
2730
UpdateEventSourceMappingCommand,
2831
UpdateFunctionCodeCommand,
2932
UpdateFunctionConfigurationCommand
@@ -162,10 +165,8 @@ describe('lib/main', function () {
162165
}
163166

164167
let aws = null // mock
165-
let awsLambda = null // mock
166168
before(() => {
167169
aws = _mockSetting()
168-
awsLambda = new aws.Lambda({ apiVersion: '2015-03-31' })
169170

170171
if (process.platform === 'win32') {
171172
execFileSync('cmd.exe', ['/c', 'npm', 'ci'], { cwd: sourceDirectoryForTest })
@@ -180,6 +181,9 @@ describe('lib/main', function () {
180181
mockLambdaClient.on(DeleteEventSourceMappingCommand).resolves(lambdaMockSettings.deleteEventSourceMapping)
181182
mockLambdaClient.on(GetFunctionCommand).resolves(lambdaMockSettings.getFunction)
182183
mockLambdaClient.on(ListEventSourceMappingsCommand).resolves(lambdaMockSettings.listEventSourceMappings)
184+
mockLambdaClient.on(ListTagsCommand).resolves(lambdaMockSettings.listTags)
185+
mockLambdaClient.on(TagResourceCommand).resolves(lambdaMockSettings.tagResource)
186+
mockLambdaClient.on(UntagResourceCommand).resolves(lambdaMockSettings.untagResource)
183187
mockLambdaClient.on(UpdateEventSourceMappingCommand).resolves(lambdaMockSettings.updateEventSourceMapping)
184188
mockLambdaClient.on(UpdateFunctionCodeCommand).resolves(lambdaMockSettings.updateFunctionCode)
185189
mockLambdaClient.on(UpdateFunctionConfigurationCommand).resolves(lambdaMockSettings.updateFunctionConfiguration)
@@ -1682,7 +1686,7 @@ describe('lib/main', function () {
16821686
describe('Lambda.prototype._updateTags()', () => {
16831687
it('simple test with mock', () => {
16841688
return lambda._updateTags(
1685-
awsLambda,
1689+
lambdaClient,
16861690
'arn:aws:lambda:eu-central-1:1234567:function:test',
16871691
{ tagKey: 'tagValue' }).then((result) => {
16881692
assert.deepEqual(

0 commit comments

Comments
 (0)