Skip to content

Commit d6bfd4b

Browse files
committed
fixups post pre review
1 parent 4cc2689 commit d6bfd4b

File tree

7 files changed

+117
-85
lines changed

7 files changed

+117
-85
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/delete/delete.js

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,21 @@ describeSkipIfNotMultiple('Multiple backend delete', () => {
7070
Metadata: { 'scal-location-constraint': awsLocation }
7171
}));
7272

73-
process.stdout.write('Putting big object to AWS\n');
73+
process.stdout.write('Putting large object to AWS\n');
7474
await s3.send(new PutObjectCommand({
7575
Bucket: bucket,
7676
Key: bigObject,
7777
Body: bigBody,
7878
Metadata: { 'scal-location-constraint': awsLocation }
7979
}));
80+
81+
process.stdout.write('Putting object to AWS\n');
82+
await s3.send(new PutObjectCommand({
83+
Bucket: bucket,
84+
Key: mismatchObject,
85+
Body: body,
86+
Metadata: { 'scal-location-constraint': awsLocationMismatch }
87+
}));
8088
});
8189

8290
after(async () => {
@@ -91,7 +99,7 @@ describeSkipIfNotMultiple('Multiple backend delete', () => {
9199

92100
try {
93101
await s3.send(new GetObjectCommand({ Bucket: bucket, Key: memObject }));
94-
throw new Error('Expected NoSuchKey error but got success');
102+
assert.fail('Expected NoSuchKey error but got success');
95103
} catch (err) {
96104
assert.strictEqual(err.code, 'NoSuchKey');
97105
}
@@ -102,7 +110,7 @@ describeSkipIfNotMultiple('Multiple backend delete', () => {
102110

103111
try {
104112
await s3.send(new GetObjectCommand({ Bucket: bucket, Key: fileObject }));
105-
throw new Error('Expected NoSuchKey error but got success');
113+
assert.fail('Expected NoSuchKey error but got success');
106114
} catch (err) {
107115
assert.strictEqual(err.code, 'NoSuchKey');
108116
}
@@ -113,7 +121,7 @@ describeSkipIfNotMultiple('Multiple backend delete', () => {
113121

114122
try {
115123
await s3.send(new GetObjectCommand({ Bucket: bucket, Key: awsObject }));
116-
throw new Error('Expected NoSuchKey error but got success');
124+
assert.fail('Expected NoSuchKey error but got success');
117125
} catch (err) {
118126
assert.strictEqual(err.code, 'NoSuchKey');
119127
}
@@ -124,7 +132,7 @@ describeSkipIfNotMultiple('Multiple backend delete', () => {
124132

125133
try {
126134
await s3.send(new GetObjectCommand({ Bucket: bucket, Key: emptyObject }));
127-
throw new Error('Expected NoSuchKey error but got success');
135+
assert.fail('Expected NoSuchKey error but got success');
128136
} catch (err) {
129137
assert.strictEqual(err.code, 'NoSuchKey');
130138
}
@@ -135,24 +143,23 @@ describeSkipIfNotMultiple('Multiple backend delete', () => {
135143

136144
try {
137145
await s3.send(new GetObjectCommand({ Bucket: bucket, Key: bigObject }));
138-
throw new Error('Expected NoSuchKey error but got success');
146+
assert.fail('Expected NoSuchKey error but got success');
139147
} catch (err) {
140148
assert.strictEqual(err.code, 'NoSuchKey');
141149
}
142150
});
143151

144-
it('should return an InvalidLocationConstraint ' +
145-
'error for mismatch location', async () => {
152+
it('should delete object from AWS location with bucketMatch set to ' +
153+
'false', async () => {
146154
try {
147-
await s3.send(new PutObjectCommand({
155+
await s3.send(new DeleteObjectCommand({ Bucket: bucket, Key: mismatchObject }));
156+
await s3.send(new GetObjectCommand({
148157
Bucket: bucket,
149-
Key: mismatchObject,
150-
Body: body,
151-
Metadata: { 'scal-location-constraint': awsLocationMismatch }
158+
Key: mismatchObject
152159
}));
153-
throw new Error('Expected InvalidLocationConstraint error but got success');
160+
assert.fail('Expected NoSuchKey error but got success');
154161
} catch (err) {
155-
assert.strictEqual(err.code, 'InvalidLocationConstraint');
162+
assert.strictEqual(err.code, 'NoSuchKey');
156163
}
157164
});
158165
});

tests/functional/aws-node-sdk/test/multipleBackend/get/get.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,7 @@ describe('Multiple backend get object', function testSuite() {
7171
done => {
7272
const command = new GetObjectCommand({ Bucket: '', Key: 'somekey' });
7373
s3.send(command)
74-
.then(() => {
75-
done(new Error('Expected failure but got success'));
76-
})
74+
.then(() => done(new Error('Expected failure but got success')))
7775
.catch(err => {
7876
assert.notEqual(err, null,
7977
'Expected failure but got success');
@@ -85,9 +83,7 @@ describe('Multiple backend get object', function testSuite() {
8583
done => {
8684
const command = new GetObjectCommand({ Bucket: bucket, Key: 'nope' });
8785
s3.send(command)
88-
.then(() => {
89-
done(new Error('Expected failure but got success'));
90-
})
86+
.then(() => done(new Error('Expected failure but got success')))
9187
.catch(err => {
9288
assert.notEqual(err, null,
9389
'Expected failure but got success');

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 ' +

0 commit comments

Comments
 (0)