Skip to content

Commit e031412

Browse files
committed
additionnal fixups
1 parent 1b8a4c3 commit e031412

File tree

4 files changed

+93
-64
lines changed

4 files changed

+93
-64
lines changed

tests/functional/aws-node-sdk/lib/utility/versioning-util.js

Lines changed: 40 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
const async = require('async');
22
const assert = require('assert');
3-
const { S3 } = require('aws-sdk');
3+
const { S3Client,
4+
ListObjectVersionsCommand,
5+
GetObjectCommand,
6+
DeleteObjectsCommand,
7+
PutBucketVersioningCommand,
8+
PutObjectCommand,
9+
DeleteObjectCommand } = require('@aws-sdk/client-s3');
410

511
const getConfig = require('../../test/support/config');
6-
const config = getConfig('default', { signatureVersion: 'v4' });
7-
const s3 = new S3(config);
12+
const config = getConfig('default');
13+
const s3Client = new S3Client(config);
814

915
const versioningEnabled = { Status: 'Enabled' };
1016
const versioningSuspended = { Status: 'Suspended' };
@@ -19,28 +25,25 @@ function _deleteVersionList(versionList, bucket, callback) {
1925
Key: version.Key, VersionId: version.VersionId });
2026
});
2127

22-
return s3.deleteObjects(params, callback);
28+
return s3Client.send(new DeleteObjectsCommand(params)).then(() => callback()).catch(err => callback(err));
2329
}
2430

2531
function checkOneVersion(s3, bucket, versionId, callback) {
26-
return s3.listObjectVersions({ Bucket: bucket },
27-
(err, data) => {
28-
if (err) {
29-
callback(err);
30-
}
32+
return s3Client.send(new ListObjectVersionsCommand({ Bucket: bucket })).then(data => {
3133
assert.strictEqual(data.Versions.length, 1);
3234
if (versionId) {
3335
assert.strictEqual(data.Versions[0].VersionId, versionId);
3436
}
3537
assert.strictEqual(data.DeleteMarkers.length, 0);
3638
callback();
37-
});
39+
}).catch(err => callback(err));
3840
}
3941

4042
function removeAllVersions(params, callback) {
4143
const bucket = params.Bucket;
4244
async.waterfall([
43-
cb => s3.listObjectVersions(params, cb),
45+
cb => s3Client.send(new ListObjectVersionsCommand(params)).then(data =>
46+
cb(null, data)).catch(err => cb(err)),
4447
(data, cb) => _deleteVersionList(data.DeleteMarkers, bucket,
4548
err => cb(err, data)),
4649
(data, cb) => _deleteVersionList(data.Versions, bucket,
@@ -60,25 +63,26 @@ function removeAllVersions(params, callback) {
6063
}
6164

6265
function suspendVersioning(bucket, callback) {
63-
s3.putBucketVersioning({
66+
s3Client.send(new PutBucketVersioningCommand({
6467
Bucket: bucket,
6568
VersioningConfiguration: versioningSuspended,
66-
}, callback);
69+
})).then(() => callback()).catch(err => callback(err));
6770
}
6871

6972
function enableVersioning(bucket, callback) {
70-
s3.putBucketVersioning({
73+
s3Client.send(new PutBucketVersioningCommand({
7174
Bucket: bucket,
7275
VersioningConfiguration: versioningEnabled,
73-
}, callback);
76+
})).then(() => callback()).catch(err => callback(err));
7477
}
7578

7679
function enableVersioningThenPutObject(bucket, object, callback) {
7780
enableVersioning(bucket, err => {
7881
if (err) {
7982
callback(err);
8083
}
81-
s3.putObject({ Bucket: bucket, Key: object }, callback);
84+
s3Client.send(new PutObjectCommand({ Bucket: bucket, Key: object })).then(() =>
85+
callback()).catch(err => callback(err));
8286
});
8387
}
8488

@@ -102,33 +106,35 @@ function enableVersioningThenPutObject(bucket, object, callback) {
102106
function createDualNullVersion(s3, bucketName, keyName, cb) {
103107
async.waterfall([
104108
// put null version
105-
next => s3.putObject({ Bucket: bucketName, Key: keyName },
106-
err => next(err)),
109+
next => s3Client.send(new PutObjectCommand({ Bucket: bucketName, Key: keyName, Body: null })).then(() =>
110+
next()).catch(err => next(err)),
107111
next => enableVersioning(bucketName, err => next(err)),
108112
// should store null version as separate version before
109113
// putting new version
110-
next => s3.putObject({ Bucket: bucketName, Key: keyName },
111-
(err, data) => {
112-
assert.strictEqual(err, null,
113-
'Unexpected err putting new version');
114-
assert(data.VersionId);
115-
next(null, data.VersionId);
116-
}),
114+
next => s3Client.send(new PutObjectCommand({ Bucket: bucketName, Key: keyName })).then(data => {
115+
assert(data.VersionId);
116+
next(null, data.VersionId);
117+
}).catch(err => {
118+
assert.strictEqual(err, null,
119+
'Unexpected err putting new version');
120+
next(err);
121+
}),
117122
// delete version we just created, master version should be updated
118123
// with value of next most recent version: null version previously put
119-
(versionId, next) => s3.deleteObject({
124+
(versionId, next) => s3Client.send(new DeleteObjectCommand({
120125
Bucket: bucketName,
121126
Key: keyName,
122127
VersionId: versionId,
123-
}, err => next(err)),
128+
})).then(() => next()).catch(err => next(err)),
124129
// getting object should return null version now
125-
next => s3.getObject({ Bucket: bucketName, Key: keyName },
126-
(err, data) => {
127-
assert.strictEqual(err, null,
128-
'Unexpected err getting latest version');
129-
assert.strictEqual(data.VersionId, 'null');
130-
next();
131-
}),
130+
next => s3Client.send(new GetObjectCommand({ Bucket: bucketName, Key: keyName })).then(data => {
131+
assert.strictEqual(data.VersionId, 'null');
132+
next();
133+
}).catch(err => {
134+
assert.strictEqual(err, null,
135+
'Unexpected err getting latest version');
136+
next(err);
137+
}),
132138
], err => cb(err));
133139
}
134140

tests/functional/aws-node-sdk/test/multipleBackend/mpuComplete/mpuAwsVersioning.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,14 @@ function testSuite() {
112112
LocationConstraint: awsLocation,
113113
},
114114
})).then(() => done()).catch(err => done(err)));
115-
afterEach(async () => {
116-
await removeAllVersions({ Bucket: bucket });
117-
await s3.send(new DeleteBucketCommand({ Bucket: bucket }));
115+
afterEach(done => {
116+
removeAllVersions({ Bucket: bucket }, err => {
117+
if (err) {
118+
return done(err);
119+
}
120+
return s3.send(new DeleteBucketCommand({ Bucket: bucket }))
121+
.then(() => done()).catch(done);
122+
});
118123
});
119124

120125
it('versioning not configured: should not return version id ' +

tests/functional/aws-node-sdk/test/multipleBackend/objectTagging/taggingAwsVersioning-delete.js

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ const {
1515
tagging,
1616
genUniqID,
1717
} = require('../utils');
18+
const { PutObjectCommand,
19+
DeleteObjectCommand,
20+
CreateBucketCommand,
21+
DeleteBucketCommand,
22+
} = require('@aws-sdk/client-s3');
1823
const { putTaggingAndAssert, delTaggingAndAssert, awsGetAssertTags } = tagging;
1924

2025
const bucket = `awsversioningtagdel${genUniqID()}`;
@@ -28,26 +33,28 @@ function testSuite() {
2833
withV4(sigCfg => {
2934
const bucketUtil = new BucketUtility('default', sigCfg);
3035
const s3 = bucketUtil.s3;
31-
beforeEach(done => s3.createBucket({
36+
beforeEach(done => s3.send(new CreateBucketCommand({
3237
Bucket: bucket,
3338
CreateBucketConfiguration: {
3439
LocationConstraint: awsLocation,
3540
},
36-
}, done));
41+
})).then(() => done()).catch(err => done(err)));
3742
afterEach(done => {
3843
removeAllVersions({ Bucket: bucket }, err => {
3944
if (err) {
4045
return done(err);
4146
}
42-
return s3.deleteBucket({ Bucket: bucket }, done);
47+
return s3.send(new DeleteBucketCommand({ Bucket: bucket }))
48+
.then(() => done()).catch(done);
4349
});
4450
});
4551

4652
it('versioning not configured: should delete a tag set on the ' +
4753
'latest version if no version is specified', done => {
4854
const key = `somekey-${genUniqID()}`;
4955
async.waterfall([
50-
next => s3.putObject({ Bucket: bucket, Key: key }, next),
56+
next => s3.send(new PutObjectCommand({ Bucket: bucket, Key: key })).then(data =>
57+
next(null, data)).catch(err => next(err)),
5158
(putData, next) => putTaggingAndAssert(s3, { bucket, key, tags,
5259
expectedVersionId: false }, next),
5360
(versionId, next) => delTaggingAndAssert(s3, { bucket, key,
@@ -60,7 +67,8 @@ function testSuite() {
6067
'version if specified (null)', done => {
6168
const key = `somekey-${genUniqID()}`;
6269
async.waterfall([
63-
next => s3.putObject({ Bucket: bucket, Key: key }, next),
70+
next => s3.send(new PutObjectCommand({ Bucket: bucket, Key: key })).then(data =>
71+
next(null, data)).catch(err => next(err)),
6472
(putData, next) => putTaggingAndAssert(s3, { bucket, key, tags,
6573
versionId: 'null', expectedVersionId: false }, next),
6674
(versionId, next) => delTaggingAndAssert(s3, { bucket, key,
@@ -103,7 +111,8 @@ function testSuite() {
103111
const key = `somekey-${genUniqID()}`;
104112
async.waterfall([
105113
next => enableVersioning(s3, bucket, next),
106-
next => s3.putObject({ Bucket: bucket, Key: key }, next),
114+
next => s3.send(new PutObjectCommand({ Bucket: bucket, Key: key })).then(data =>
115+
next(null, data)).catch(err => next(err)),
107116
(putData, next) => awsGetLatestVerId(key, '',
108117
(err, awsVid) => next(err, putData.VersionId, awsVid)),
109118
(s3Vid, awsVid, next) => putNullVersionsToAws(s3, bucket, key,
@@ -124,7 +133,8 @@ function testSuite() {
124133
const key = `somekey-${genUniqID()}`;
125134
async.waterfall([
126135
next => enableVersioning(s3, bucket, next),
127-
next => s3.putObject({ Bucket: bucket, Key: key }, next),
136+
next => s3.send(new PutObjectCommand({ Bucket: bucket, Key: key })).then(putData =>
137+
next(null, putData)).catch(err => next(err)),
128138
(putData, next) => putTaggingAndAssert(s3, { bucket, key, tags,
129139
expectedVersionId: putData.VersionId }, next),
130140
(versionId, next) => delTaggingAndAssert(s3, { bucket, key,
@@ -138,7 +148,8 @@ function testSuite() {
138148
const key = `somekey-${genUniqID()}`;
139149
async.waterfall([
140150
next => enableVersioning(s3, bucket, next),
141-
next => s3.putObject({ Bucket: bucket, Key: key }, next),
151+
next => s3.send(new PutObjectCommand({ Bucket: bucket, Key: key })).then(putData =>
152+
next(null, putData)).catch(err => next(err)),
142153
(putData, next) => putTaggingAndAssert(s3, { bucket, key, tags,
143154
versionId: putData.VersionId,
144155
expectedVersionId: putData.VersionId }, next),
@@ -153,13 +164,14 @@ function testSuite() {
153164
const key = `somekey-${genUniqID()}`;
154165
async.waterfall([
155166
next => enableVersioning(s3, bucket, next),
156-
next => s3.putObject({ Bucket: bucket, Key: key }, next),
167+
next => s3.send(new PutObjectCommand({ Bucket: bucket, Key: key })).then(putData =>
168+
next(null, putData)).catch(err => next(err)),
157169
(putData, next) => awsGetLatestVerId(key, '',
158170
(err, awsVid) => next(err, putData.VersionId, awsVid)),
159171
// put another version
160-
(s3Vid, awsVid, next) => s3.putObject({ Bucket: bucket,
161-
Key: key, Body: someBody },
162-
err => next(err, s3Vid, awsVid)),
172+
(s3Vid, awsVid, next) => s3.send(new PutObjectCommand({ Bucket: bucket,
173+
Key: key, Body: someBody })).then(() =>
174+
next(null, s3Vid, awsVid)).catch(err => next(err, s3Vid, awsVid)),
163175
(s3Vid, awsVid, next) => putTaggingAndAssert(s3, { bucket, key,
164176
tags, versionId: s3Vid, expectedVersionId: s3Vid }, err =>
165177
next(err, s3Vid, awsVid)),
@@ -196,10 +208,11 @@ function testSuite() {
196208
done => {
197209
const key = `somekey-${genUniqID()}`;
198210
async.waterfall([
199-
next => s3.putObject({ Bucket: bucket, Key: key }, next),
211+
next => s3.send(new PutObjectCommand({ Bucket: bucket, Key: key })).then(putData =>
212+
next(null, putData)).catch(err => next(err)),
200213
(putData, next) => awsGetLatestVerId(key, '', next),
201-
(awsVid, next) => awsS3.deleteObject({ Bucket: awsBucket,
202-
Key: key, VersionId: awsVid }, next),
214+
(awsVid, next) => awsS3.send(new DeleteObjectCommand({ Bucket: awsBucket,
215+
Key: key, VersionId: awsVid })).then(delData => next(null, delData)).catch(err => next(err)),
203216
(delData, next) => delTaggingAndAssert(s3, { bucket, key,
204217
expectedError: 'ServiceUnavailable' }, next),
205218
], done);
@@ -210,15 +223,15 @@ function testSuite() {
210223
done => {
211224
const key = `somekey-${genUniqID()}`;
212225
async.waterfall([
213-
next => s3.putObject({ Bucket: bucket, Key: key }, next),
214-
(putData, next) => awsGetLatestVerId(key, '',
215-
(err, awsVid) => next(err, putData.VersionId, awsVid)),
216-
(s3Vid, awsVid, next) => awsS3.deleteObject({ Bucket: awsBucket,
217-
Key: key, VersionId: awsVid }, err => next(err, s3Vid)),
218-
(s3Vid, next) => delTaggingAndAssert(s3, { bucket, key,
219-
versionId: s3Vid, expectedError: 'ServiceUnavailable' },
220-
next),
226+
next => s3.send(new PutObjectCommand({ Bucket: bucket, Key: key })).then(putData =>
227+
next(null, putData)).catch(err => next(err)),
228+
(putData, next) => awsGetLatestVerId(key, '', next),
229+
(awsVid, next) => awsS3.send(new DeleteObjectCommand({ Bucket: awsBucket,
230+
Key: key, VersionId: awsVid })).then(delData => next(null, delData)).catch(err => next(err)),
231+
(delData, next) => delTaggingAndAssert(s3, { bucket, key,
232+
expectedError: 'ServiceUnavailable' }, next),
221233
], done);
222234
});
235+
223236
});
224237
});

tests/functional/aws-node-sdk/test/multipleBackend/objectTagging/taggingAwsVersioning-putget.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,15 @@ function testSuite() {
4848
.then(() => done())
4949
.catch(err => done(err));
5050
});
51-
52-
afterEach(async () => {
53-
await removeAllVersions({ Bucket: bucket });
54-
await s3.send(new DeleteBucketCommand({ Bucket: bucket }));
51+
52+
afterEach(done => {
53+
removeAllVersions({ Bucket: bucket }, err => {
54+
if (err) {
55+
return done(err);
56+
}
57+
return s3.send(new DeleteBucketCommand({ Bucket: bucket }))
58+
.then(() => done()).catch(done);
59+
});
5560
});
5661

5762
it('versioning not configured: should put/get a tag set on the ' +

0 commit comments

Comments
 (0)