From 53d9f8cf99ba3014772cc2e2d9eb76b59f1e1592 Mon Sep 17 00:00:00 2001 From: Kerkesni Date: Tue, 19 Apr 2022 16:05:48 +0200 Subject: [PATCH] feature: CLDSRV-176 support s3:ObjectTagging:* notifications --- lib/api/objectDeleteTagging.js | 2 ++ lib/api/objectPutTagging.js | 2 ++ tests/unit/api/objectDeleteTagging.js | 3 ++- tests/unit/api/objectPutTagging.js | 3 ++- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/api/objectDeleteTagging.js b/lib/api/objectDeleteTagging.js index 4f58248119..ff6a0a7a36 100644 --- a/lib/api/objectDeleteTagging.js +++ b/lib/api/objectDeleteTagging.js @@ -80,6 +80,8 @@ function objectDeleteTagging(authInfo, request, log, callback) { objectMD.replicationInfo = Object.assign({}, objectMD.replicationInfo, replicationInfo); } + // eslint-disable-next-line no-param-reassign + objectMD.originOp = 's3:ObjectTagging:Delete'; metadata.putObjectMD(bucket.getName(), objectKey, objectMD, params, log, err => next(err, bucket, objectMD)); diff --git a/lib/api/objectPutTagging.js b/lib/api/objectPutTagging.js index ebb41ef784..6dfd4d10c3 100644 --- a/lib/api/objectPutTagging.js +++ b/lib/api/objectPutTagging.js @@ -86,6 +86,8 @@ function objectPutTagging(authInfo, request, log, callback) { objectMD.replicationInfo = Object.assign({}, objectMD.replicationInfo, replicationInfo); } + // eslint-disable-next-line no-param-reassign + objectMD.originOp = 's3:ObjectTagging:Put'; metadata.putObjectMD(bucket.getName(), objectKey, objectMD, params, log, err => next(err, bucket, objectMD)); diff --git a/tests/unit/api/objectDeleteTagging.js b/tests/unit/api/objectDeleteTagging.js index 7117e2dd81..5cee29a169 100644 --- a/tests/unit/api/objectDeleteTagging.js +++ b/tests/unit/api/objectDeleteTagging.js @@ -46,7 +46,7 @@ describe('deleteObjectTagging API', () => { afterEach(() => cleanup()); - it('should delete tag set', done => { + it('should delete tag set and update originOp', done => { const taggingUtil = new TaggingConfigTester(); const testObjectPutTaggingRequest = taggingUtil .createObjectTaggingRequest('PUT', bucketName, objectName); @@ -62,6 +62,7 @@ describe('deleteObjectTagging API', () => { ], (err, objectMD) => { const uploadedTags = objectMD.tags; assert.deepStrictEqual(uploadedTags, {}); + assert.strictEqual(objectMD.originOp, 's3:ObjectTagging:Delete'); return done(); }); }); diff --git a/tests/unit/api/objectPutTagging.js b/tests/unit/api/objectPutTagging.js index b5294d8910..67125aecea 100644 --- a/tests/unit/api/objectPutTagging.js +++ b/tests/unit/api/objectPutTagging.js @@ -68,7 +68,7 @@ describe('putObjectTagging API', () => { afterEach(cleanup); - it('should update an object\'s metadata with tags resource', done => { + it('should update an object\'s metadata with tags resource and update originOp', done => { const taggingUtil = new TaggingConfigTester(); const testObjectPutTaggingRequest = taggingUtil .createObjectTaggingRequest('PUT', bucketName, objectName); @@ -85,6 +85,7 @@ describe('putObjectTagging API', () => { } const uploadedTags = objectMD.tags; assert.deepStrictEqual(uploadedTags, taggingUtil.getTags()); + assert.strictEqual(objectMD.originOp, 's3:ObjectTagging:Put'); return done(); }); });