Skip to content

Commit e99920d

Browse files
fixup after merge all
1 parent 7622457 commit e99920d

File tree

9 files changed

+265
-267
lines changed

9 files changed

+265
-267
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"@aws-sdk/client-iam": "^3.930.0",
2323
"@aws-sdk/client-s3": "^3.908.0",
2424
"@aws-sdk/client-sts": "^3.930.0",
25+
"aws-sdk": "^2.1692.0",
2526
"@aws-sdk/credential-providers": "^3.864.0",
2627
"@aws-sdk/middleware-retry": "^3.374.0",
2728
"@aws-sdk/protocol-http": "^3.374.0",
@@ -30,7 +31,7 @@
3031
"@azure/storage-blob": "^12.28.0",
3132
"@hapi/joi": "^17.1.1",
3233
"@smithy/node-http-handler": "^3.0.0",
33-
"arsenal": "git+https://github.com/scality/Arsenal#d1de8c4ac819ee7363323fa8ab14fcdba37a5e65",
34+
"arsenal": "git+https://github.com/scality/Arsenal#5bb6a3128b9d416023fc32c88a17a8822bc1c6d3",
3435
"async": "2.6.4",
3536
"bucketclient": "scality/bucketclient#8.2.7",
3637
"bufferutil": "^4.0.8",

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

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,13 @@ function _deleteVersionList(versionList, bucket, callback) {
2828
return s3Client.send(new DeleteObjectsCommand(params)).then(() => callback()).catch(err => callback(err));
2929
}
3030

31-
function checkOneVersion(s3, bucket, versionId, callback) {
32-
return s3Client.send(new ListObjectVersionsCommand({ Bucket: bucket })).then(data => {
33-
assert.strictEqual(data.Versions.length, 1);
34-
if (versionId) {
35-
assert.strictEqual(data.Versions[0].VersionId, versionId);
36-
}
37-
assert.strictEqual(data.DeleteMarkers.length, 0);
38-
callback();
39-
}).catch(err => callback(err));
31+
async function checkOneVersion(s3, bucket, versionId) {
32+
const data = await s3.send(new ListObjectVersionsCommand({ Bucket: bucket }));
33+
assert.strictEqual(data.Versions.length, 1);
34+
if (versionId) {
35+
assert.strictEqual(data.Versions[0].VersionId, versionId);
36+
}
37+
assert.strictEqual((data.DeleteMarkers || []).length, 0);
4038
}
4139

4240
function removeAllVersions(params, callback) {
@@ -106,7 +104,11 @@ function enableVersioningThenPutObject(bucket, object, callback) {
106104
function createDualNullVersion(s3, bucketName, keyName, cb) {
107105
async.waterfall([
108106
// put null version
109-
next => s3Client.send(new PutObjectCommand({ Bucket: bucketName, Key: keyName, Body: null })).then(() =>
107+
next => s3Client.send(new PutObjectCommand({
108+
Bucket: bucketName,
109+
Key: keyName,
110+
Body: Buffer.from(''),
111+
})).then(() =>
110112
next()).catch(err => next(err)),
111113
next => enableVersioning(bucketName, err => next(err)),
112114
// should store null version as separate version before

tests/functional/aws-node-sdk/test/bucket/getBucketLogging.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ const validLoggingConfig = {
2121
function cleanUp(bucketUtil, cb) {
2222
Promise.all([
2323
bucketUtil.deleteOne(bucketName).catch(err => {
24-
if (err && err.code !== 'NoSuchBucket') {
24+
if (err && err.name !== 'NoSuchBucket') {
2525
throw err;
2626
}
2727
}),
2828
bucketUtil.deleteOne(targetBucket).catch(err => {
29-
if (err && err.code !== 'NoSuchBucket') {
29+
if (err && err.name !== 'NoSuchBucket') {
3030
throw err;
3131
}
3232
}),

tests/functional/aws-node-sdk/test/bucket/putBucketLogging.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@ const itSkipIfAWS = process.env.AWS_ON_AIR ? it.skip : it;
4646
function cleanUp(bucketUtil, cb) {
4747
Promise.all([
4848
bucketUtil.deleteOne(bucketName).catch(err => {
49-
if (err && err.code !== 'NoSuchBucket') {
49+
if (err && err.name !== 'NoSuchBucket') {
5050
throw err;
5151
}
5252
}),
5353
bucketUtil.deleteOne(targetBucket).catch(err => {
54-
if (err && err.code !== 'NoSuchBucket') {
54+
if (err && err.name !== 'NoSuchBucket') {
5555
throw err;
5656
}
5757
}),

tests/functional/aws-node-sdk/test/object/bigMpu.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -103,15 +103,12 @@ describe('large mpu', function tester() {
103103
})
104104
.catch(err => next(err));
105105
},
106-
next => {
107-
return timesLimit(partCount, 20, (n, cb) =>
108-
uploadPart(n, uploadId, s3, cb), err => {
109-
if (err) {
110-
process.stdout.write(`Error in timesLimit: ${err}\n`);
111-
}
112-
return next(err);
113-
});
114-
},
106+
next => timesLimit(partCount, 20, (n, cb) => uploadPart(n, uploadId, s3, cb), err => {
107+
if (err) {
108+
process.stdout.write(`Error in timesLimit: ${err}\n`);
109+
}
110+
return next(err);
111+
}),
115112
next => {
116113
const parts = [];
117114
for (let i = 0; i < partCount; i++) {

tests/functional/aws-node-sdk/test/serverAccessLogs/testServerAccessLogFile.js

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ const assert = require('assert');
22
const fs = require('fs');
33
const path = require('path');
44
const tv4 = require('tv4');
5+
const { S3 } = require('aws-sdk');
56

67
const withV4 = require('../support/withV4');
7-
const BucketUtility = require('../../lib/utility/bucket-util');
8+
const { getCredentials } = require('../support/credentials');
89
const { config, serverAccessLogsModes } = require('../../../../../lib/Config');
910

1011
const TEST_CONFIG = {
@@ -67,6 +68,37 @@ function sleep(ms) {
6768
return new Promise(resolve => setTimeout(resolve, ms));
6869
}
6970

71+
async function emptyBucket(s3, bucketName, BypassGovernanceRetention = false) {
72+
const data = await s3.listObjectVersions({ Bucket: bucketName }).promise();
73+
const versions = data.Versions || [];
74+
const deleteMarkers = data.DeleteMarkers || [];
75+
76+
for (const obj of versions.filter(o => !o.Key.endsWith('/'))) {
77+
await s3.deleteObject({
78+
Bucket: bucketName,
79+
Key: obj.Key,
80+
VersionId: obj.VersionId,
81+
...(BypassGovernanceRetention && { BypassGovernanceRetention }),
82+
}).promise();
83+
}
84+
for (const obj of versions.filter(o => o.Key.endsWith('/'))) {
85+
await s3.deleteObject({
86+
Bucket: bucketName,
87+
Key: obj.Key,
88+
VersionId: obj.VersionId,
89+
...(BypassGovernanceRetention && { BypassGovernanceRetention }),
90+
}).promise();
91+
}
92+
for (const obj of deleteMarkers) {
93+
await s3.deleteObject({
94+
Bucket: bucketName,
95+
Key: obj.Key,
96+
VersionId: obj.VersionId,
97+
...(BypassGovernanceRetention && { BypassGovernanceRetention }),
98+
}).promise();
99+
}
100+
}
101+
70102
async function cleanupBuckets(s3) {
71103
let lastAction = 'ListBuckets';
72104
const bucketsResponse = await s3.listBuckets().promise();
@@ -82,15 +114,13 @@ async function cleanupBuckets(s3) {
82114
));
83115
}
84116

85-
await bu.empty(bucket.Name, true);
117+
await emptyBucket(s3, bucket.Name, true);
86118
await s3.deleteBucket({ Bucket: bucket.Name }).promise();
87119
lastAction = 'DeleteBucket';
88120
}
89121
return lastAction;
90122
}
91123

92-
var bu;
93-
94124
// TODO:
95125
// - [ ] We skip websiteGet and websiteHead because they need to be tested with HTTP requests to the website endpoint.
96126
// Cannot delete the locked objects in the bucket, so we cannot delete the bucket.
@@ -99,9 +129,13 @@ var bu;
99129
// - We skip objectRestore because it is not supported in CloudServer.
100130
describe('Server Access Logs - File Output', async () => {
101131
withV4(async sigCfg => {
102-
const bucketUtil = new BucketUtility('default', sigCfg);
103-
bu = bucketUtil;
104-
const s3 = bucketUtil.s3;
132+
const s3 = new S3({
133+
endpoint: 'http://127.0.0.1:8000',
134+
s3ForcePathStyle: true,
135+
credentials: getCredentials('default', sigCfg),
136+
region: 'us-east-1',
137+
maxRetries: 0,
138+
});
105139
const logFilePath = config.serverAccessLogs.outputFile;
106140
const bucketName = 'test-server-access-log-bucket';
107141
const objectKey = 'test-object-key';

0 commit comments

Comments
 (0)