Skip to content

Commit ca39250

Browse files
committed
object related functional tests adaptation due to aws-sdk migration
1 parent 01b15f9 commit ca39250

51 files changed

Lines changed: 5630 additions & 4381 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

fix_s3_callbacks.py

Whitespace-only changes.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222
"@aws-sdk/client-s3": "^3.705.0",
2323
"@aws-sdk/credential-providers": "^3.864.0",
2424
"@aws-sdk/middleware-retry": "^3.374.0",
25+
"@aws-sdk/s3-request-presigner": "^3.901.0",
2526
"@azure/storage-blob": "^12.28.0",
2627
"@hapi/joi": "^17.1.1",
28+
"@smithy/node-http-handler": "^3.0.0",
2729
"arsenal": "git+https://github.com/scality/Arsenal#8.2.32",
2830
"async": "2.6.4",
2931
"aws-sdk": "^2.1692.0",
@@ -86,7 +88,7 @@
8688
"scripts": {
8789
"cloudserver": "S3METADATA=mongodb npm-run-all --parallel start_dataserver start_s3server",
8890
"dev": "nodemon --exec \"yarn run start\"",
89-
"ft_awssdk": "cd tests/functional/aws-node-sdk && mocha --reporter mocha-multi-reporters --reporter-options configFile=$INIT_CWD/tests/reporter-config.json test/ --exit",
91+
"ft_awssdk": "cd tests/functional/aws-node-sdk && mocha --reporter mocha-multi-reporters --reporter-options configFile=$INIT_CWD/tests/reporter-config.json test/object --exit",
9092
"ft_awssdk_aws": "cd tests/functional/aws-node-sdk && AWS_ON_AIR=true mocha --reporter mocha-multi-reporters --reporter-options configFile=$INIT_CWD/tests/reporter-config.json test/ --exit",
9193
"ft_awssdk_buckets": "cd tests/functional/aws-node-sdk && mocha --reporter mocha-multi-reporters --reporter-options configFile=$INIT_CWD/tests/reporter-config.json test/bucket --exit",
9294
"ft_awssdk_objects_misc": "cd tests/functional/aws-node-sdk && mocha --reporter mocha-multi-reporters --reporter-options configFile=$INIT_CWD/tests/reporter-config.json test/legacy test/object test/service test/support --exit",

tests/functional/aws-node-sdk/lib/utility/checkError.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ const assert = require('assert');
22

33
function checkError(err, code, statusCode) {
44
assert(err, 'Expected error but found none');
5-
assert.strictEqual(err.code, code);
6-
assert.strictEqual(err.statusCode, statusCode);
5+
assert.strictEqual(err.name, code);
6+
assert.strictEqual(err.$metadata.httpStatusCode, statusCode);
77
}
88

99
module.exports = checkError;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ function _deleteVersionList(versionList, bucket, callback) {
3131
function checkOneVersion(s3, bucket, versionId, callback) {
3232
return s3Client.send(new ListObjectVersionsCommand({ Bucket: bucket })).then(data => {
3333
assert.strictEqual(data.Versions.length, 1);
34+
3435
if (versionId) {
3536
assert.strictEqual(data.Versions[0].VersionId, versionId);
3637
}

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

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ const async = require('async');
33
const fs = require('fs');
44
const path = require('path');
55
const url = require('url');
6+
const { CreateBucketCommand,
7+
DeleteBucketCommand,
8+
PutBucketWebsiteCommand,
9+
DeleteObjectCommand,
10+
PutObjectCommand } = require('@aws-sdk/client-s3');
611

712
const { makeRequest } = require('../../../raw-node/utils/makeRequest');
813

@@ -352,41 +357,31 @@ class WebsiteConfigTester {
352357
}
353358

354359
static createPutBucketWebsite(s3, bucket, bucketACL, objects, done) {
355-
s3.createBucket({ Bucket: bucket, ACL: bucketACL },
356-
err => {
357-
if (err) {
358-
return done(err);
359-
}
360+
s3.send(new CreateBucketCommand({ Bucket: bucket, ACL: bucketACL })).then(() => {
360361
const webConfig = new WebsiteConfigTester('index.html',
361362
'error.html');
362-
return s3.putBucketWebsite({ Bucket: bucket,
363-
WebsiteConfiguration: webConfig }, err => {
364-
if (err) {
365-
return done(err);
366-
}
367-
return async.forEachOf(objects,
363+
return s3.send(new PutBucketWebsiteCommand({ Bucket: bucket,
364+
WebsiteConfiguration: webConfig })).then(() => async.forEachOf(objects,
368365
(acl, object, next) => {
369-
s3.putObject({ Bucket: bucket,
366+
s3.send(new PutObjectCommand({ Bucket: bucket,
370367
Key: `${object}.html`,
371368
ACL: acl,
372369
Body: fs.readFileSync(path.join(__dirname,
373370
`/../../test/object/websiteFiles/${object}.html`)),
374-
},
375-
next);
376-
}, done);
377-
});
378-
});
371+
})).then(() => next()).catch(next);
372+
}, done));
373+
}).catch(err => done(err));
379374
}
380375

381376
static deleteObjectsThenBucket(s3, bucket, objects, done) {
382377
async.forEachOf(objects, (acl, object, next) => {
383-
s3.deleteObject({ Bucket: bucket,
384-
Key: `${object}.html` }, next);
378+
s3.send(new DeleteObjectCommand({ Bucket: bucket,
379+
Key: `${object}.html` })).then(() => next()).catch(next);
385380
}, err => {
386381
if (err) {
387382
return done(err);
388383
}
389-
return s3.deleteBucket({ Bucket: bucket }, done);
384+
return s3.send(new DeleteBucketCommand({ Bucket: bucket })).then(() => done()).catch(done);
390385
});
391386
}
392387
}

tests/functional/aws-node-sdk/test/object/100-continue.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ const assert = require('assert');
22
const http = require('http');
33
const https = require('https');
44
const url = require('url');
5+
const { CreateBucketCommand, PutObjectCommand } = require('@aws-sdk/client-s3');
6+
const { getSignedUrl } = require('@aws-sdk/s3-request-presigner');
57

68
const withV4 = require('../support/withV4');
79
const BucketUtility = require('../../lib/utility/bucket-util');
@@ -121,17 +123,19 @@ describeSkipIfE2E('PUT public object with 100-continue header', () => {
121123
let continueRequest;
122124
const invalidSignedURL = `/${bucket}/${key}`;
123125

124-
beforeEach(() => {
126+
beforeEach(async () => {
125127
bucketUtil = new BucketUtility('default', sigCfg);
126128
s3 = bucketUtil.s3;
127129
const params = {
128130
Bucket: bucket,
129131
Key: key,
132+
'Content-Length': 0,
130133
};
131-
const signedUrl = s3.getSignedUrl('putObject', params);
134+
const command = new PutObjectCommand(params);
135+
const signedUrl = await getSignedUrl(s3, command);
132136
const { path } = url.parse(signedUrl);
133137
continueRequest = new ContinueRequestHandler(path);
134-
return s3.createBucket({ Bucket: bucket }).promise();
138+
await s3.send(new CreateBucketCommand({ Bucket: bucket }));
135139
});
136140

137141
afterEach(() =>

0 commit comments

Comments
 (0)