Skip to content

Commit 85baa02

Browse files
committed
Backbeat functional test adaptation due to aws-sdk migration
Issue: CLDSRV-724
1 parent cd35cca commit 85baa02

File tree

2 files changed

+169
-89
lines changed

2 files changed

+169
-89
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
"scripts": {
9090
"cloudserver": "S3METADATA=mongodb npm-run-all --parallel start_dataserver start_s3server",
9191
"dev": "nodemon --exec \"yarn run start\"",
92-
"ft_awssdk": "cd tests/functional/aws-node-sdk && mocha --reporter mocha-multi-reporters --reporter-options configFile=$INIT_CWD/tests/reporter-config.json test/ --exit",
92+
"ft_awssdk": "cd tests/functional/aws-node-sdk && mocha --reporter mocha-multi-reporters --reporter-options configFile=$INIT_CWD/tests/reporter-config.json test --exit",
9393
"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",
9494
"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",
9595
"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/backbeat/listLifecycleCurrents.js

Lines changed: 168 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
const assert = require('assert');
22
const async = require('async');
3+
const {
4+
CreateBucketCommand,
5+
PutObjectCommand,
6+
PutBucketVersioningCommand,
7+
DeleteObjectCommand,
8+
DeleteBucketCommand,
9+
} = require('@aws-sdk/client-s3');
310
const BucketUtility = require('../aws-node-sdk/lib/utility/bucket-util');
411
const { removeAllVersions } = require('../aws-node-sdk/lib/utility/versioning-util');
512
const { makeBackbeatRequest } = require('./utils');
@@ -50,58 +57,81 @@ function checkContents(contents, expectedKeyVersions) {
5057
let date;
5158
const expectedKeyVersions = {};
5259

53-
before(done => async.series([
54-
next => s3.createBucket({ Bucket: testBucket }, next),
55-
next => s3.createBucket({ Bucket: emptyBucket }, next),
60+
before(done => {
61+
bucketUtil = new BucketUtility('account1', { signatureVersion: 'v4' });
62+
s3 = bucketUtil.s3;
63+
64+
return async.series([
65+
next => s3.send(new CreateBucketCommand({ Bucket: testBucket }))
66+
.then(() => next())
67+
.catch(next),
68+
next => s3.send(new CreateBucketCommand({ Bucket: emptyBucket }))
69+
.then(() => next())
70+
.catch(next),
5671
next => {
5772
if (versioning !== 'Enabled') {
5873
return process.nextTick(next);
5974
}
60-
return s3.putBucketVersioning({
75+
return s3.send(new PutBucketVersioningCommand({
6176
Bucket: testBucket,
6277
VersioningConfiguration: { Status: 'Enabled' },
63-
}, next);
78+
}))
79+
.then(() => next())
80+
.catch(next);
6481
},
6582
next => {
6683
if (versioning !== 'Enabled') {
6784
return process.nextTick(next);
6885
}
69-
return s3.putBucketVersioning({
86+
return s3.send(new PutBucketVersioningCommand({
7087
Bucket: emptyBucket,
7188
VersioningConfiguration: { Status: 'Enabled' },
72-
}, next);
89+
}))
90+
.then(() => next())
91+
.catch(next);
7392
},
7493
next => async.times(3, (n, cb) => {
7594
const keyName = `oldkey${n}`;
76-
s3.putObject({ Bucket: testBucket, Key: keyName, Body: '123', Tagging: 'mykey=myvalue' },
77-
(err, data) => {
78-
if (err) {
79-
cb(err);
80-
}
81-
expectedKeyVersions[keyName] = data.VersionId;
82-
return cb();
83-
});
95+
s3.send(new PutObjectCommand({
96+
Bucket: testBucket,
97+
Key: keyName,
98+
Body: '123',
99+
Tagging: 'mykey=myvalue',
100+
}))
101+
.then(data => {
102+
expectedKeyVersions[keyName] = data.VersionId;
103+
cb();
104+
})
105+
.catch(cb);
84106
}, next),
85107
next => {
86108
date = new Date(Date.now()).toISOString();
87109
return async.times(5, (n, cb) => {
88110
const keyName = `key${n}`;
89-
s3.putObject({ Bucket: testBucket, Key: keyName, Body: '123', Tagging: 'mykey=myvalue' },
90-
(err, data) => {
91-
if (err) {
92-
cb(err);
93-
}
94-
expectedKeyVersions[keyName] = data.VersionId;
95-
return cb();
96-
});
111+
s3.send(new PutObjectCommand({
112+
Bucket: testBucket,
113+
Key: keyName,
114+
Body: '123',
115+
Tagging: 'mykey=myvalue',
116+
}))
117+
.then(data => {
118+
expectedKeyVersions[keyName] = data.VersionId;
119+
cb();
120+
})
121+
.catch(cb);
97122
}, next);
98123
},
99-
], done));
124+
], done);
125+
});
100126

101127
after(done => async.series([
102128
next => removeAllVersions({ Bucket: testBucket }, next),
103-
next => s3.deleteBucket({ Bucket: testBucket }, next),
104-
next => s3.deleteBucket({ Bucket: emptyBucket }, next),
129+
next => s3.send(new DeleteBucketCommand({ Bucket: testBucket }))
130+
.then(() => next())
131+
.catch(next),
132+
next => s3.send(new DeleteBucketCommand({ Bucket: emptyBucket }))
133+
.then(() => next())
134+
.catch(next),
105135
], done));
106136

107137
it('should return empty list of current versions if bucket is empty', done => {
@@ -410,50 +440,70 @@ describe('listLifecycleCurrents with bucket versioning enabled and maxKeys', ()
410440
const testBucket = 'bucket-for-list-lifecycle-current-tests-truncated';
411441
const expectedKeyVersions = {};
412442

413-
before(done => async.series([
414-
next => s3.createBucket({ Bucket: testBucket }, next),
415-
next => s3.putBucketVersioning({
443+
before(done => {
444+
bucketUtil = new BucketUtility('account1', { signatureVersion: 'v4' });
445+
s3 = bucketUtil.s3;
446+
447+
return async.series([
448+
next => s3.send(new CreateBucketCommand({ Bucket: testBucket }))
449+
.then(() => next())
450+
.catch(next),
451+
next => s3.send(new PutBucketVersioningCommand({
416452
Bucket: testBucket,
417453
VersioningConfiguration: { Status: 'Enabled' },
418-
}, next),
454+
}))
455+
.then(() => next())
456+
.catch(next),
419457
next => async.times(3, (n, cb) => {
420458
const keyName = 'key0';
421-
s3.putObject({ Bucket: testBucket, Key: keyName, Body: '123', Tagging: 'mykey=myvalue' },
422-
(err, data) => {
423-
if (err) {
424-
cb(err);
425-
}
426-
expectedKeyVersions[keyName] = data.VersionId;
427-
return cb();
428-
});
459+
s3.send(new PutObjectCommand({
460+
Bucket: testBucket,
461+
Key: keyName,
462+
Body: '123',
463+
Tagging: 'mykey=myvalue',
464+
}))
465+
.then(data => {
466+
expectedKeyVersions[keyName] = data.VersionId;
467+
cb();
468+
})
469+
.catch(err => cb(err));
429470
}, next),
430471
next => async.times(5, (n, cb) => {
431472
const keyName = 'key1';
432-
s3.putObject({ Bucket: testBucket, Key: keyName, Body: '123', Tagging: 'mykey=myvalue' },
433-
(err, data) => {
434-
if (err) {
435-
cb(err);
436-
}
437-
expectedKeyVersions[keyName] = data.VersionId;
438-
return cb();
439-
});
473+
s3.send(new PutObjectCommand({
474+
Bucket: testBucket,
475+
Key: keyName,
476+
Body: '123',
477+
Tagging: 'mykey=myvalue',
478+
}))
479+
.then(data => {
480+
expectedKeyVersions[keyName] = data.VersionId;
481+
cb();
482+
})
483+
.catch(err => cb(err));
440484
}, next),
441485
next => async.times(3, (n, cb) => {
442486
const keyName = 'key2';
443-
s3.putObject({ Bucket: testBucket, Key: keyName, Body: '123', Tagging: 'mykey=myvalue' },
444-
(err, data) => {
445-
if (err) {
446-
cb(err);
447-
}
448-
expectedKeyVersions[keyName] = data.VersionId;
449-
return cb();
450-
});
487+
s3.send(new PutObjectCommand({
488+
Bucket: testBucket,
489+
Key: keyName,
490+
Body: '123',
491+
Tagging: 'mykey=myvalue',
492+
}))
493+
.then(data => {
494+
expectedKeyVersions[keyName] = data.VersionId;
495+
cb();
496+
})
497+
.catch(err => cb(err));
451498
}, next),
452-
], done));
499+
], done)
500+
});
453501

454502
after(done => async.series([
455503
next => removeAllVersions({ Bucket: testBucket }, next),
456-
next => s3.deleteBucket({ Bucket: testBucket }, next),
504+
next => s3.send(new DeleteBucketCommand({ Bucket: testBucket }))
505+
.then(() => next())
506+
.catch(next),
457507
], done));
458508

459509
it('should return truncated lists - part 1', done => {
@@ -542,52 +592,82 @@ describe('listLifecycleCurrents with bucket versioning enabled and maxKeys', ()
542592
});
543593
});
544594

545-
546595
describe('listLifecycleCurrents with bucket versioning enabled and delete object', () => {
547596
const testBucket = 'bucket-for-list-lifecycle-current-tests-truncated';
548597
const keyName0 = 'key0';
549598
const keyName1 = 'key1';
550599
const keyName2 = 'key2';
551600
const expectedKeyVersions = {};
552601

553-
before(done => async.series([
554-
next => s3.createBucket({ Bucket: testBucket }, next),
555-
next => s3.putBucketVersioning({
602+
before(done => {
603+
bucketUtil = new BucketUtility('account1', { signatureVersion: 'v4' });
604+
s3 = bucketUtil.s3;
605+
606+
return async.series([
607+
next => s3.send(new CreateBucketCommand({ Bucket: testBucket }))
608+
.then(() => next())
609+
.catch(next),
610+
next => s3.send(new PutBucketVersioningCommand({
556611
Bucket: testBucket,
557612
VersioningConfiguration: { Status: 'Enabled' },
558-
}, next),
559-
next => {
560-
s3.putObject({ Bucket: testBucket, Key: keyName0, Body: '123', Tagging: 'mykey=myvalue' },
561-
(err, data) => {
562-
if (err) {
563-
next(err);
564-
}
613+
}))
614+
.then(() => next())
615+
.catch(next),
616+
next => s3.send(new PutObjectCommand({
617+
Bucket: testBucket,
618+
Key: keyName0,
619+
Body: '123',
620+
Tagging: 'mykey=myvalue',
621+
}))
622+
.then(data => {
565623
expectedKeyVersions[keyName0] = data.VersionId;
566-
return next();
567-
});
568-
},
569-
next => s3.putObject({ Bucket: testBucket, Key: keyName1, Body: '123', Tagging: 'mykey=myvalue' }, next),
570-
next => s3.deleteObject({ Bucket: testBucket, Key: keyName1 }, next),
571-
next => s3.putObject({ Bucket: testBucket, Key: keyName2, Body: '123', Tagging: 'mykey=myvalue' },
572-
(err, data) => {
573-
if (err) {
574-
next(err);
575-
}
624+
next();
625+
})
626+
.catch(next),
627+
next => s3.send(new PutObjectCommand({
628+
Bucket: testBucket,
629+
Key: keyName1,
630+
Body: '123',
631+
Tagging: 'mykey=myvalue',
632+
}))
633+
.then(() => next())
634+
.catch(next),
635+
next => s3.send(new DeleteObjectCommand({ Bucket: testBucket, Key: keyName1 }))
636+
.then(() => next())
637+
.catch(next),
638+
next => s3.send(new PutObjectCommand({
639+
Bucket: testBucket,
640+
Key: keyName2,
641+
Body: '123',
642+
Tagging: 'mykey=myvalue',
643+
}))
644+
.then(data => {
576645
expectedKeyVersions[keyName2] = data.VersionId;
577-
return next();
578-
}),
579-
next => s3.putObject({ Bucket: testBucket, Key: keyName2, Body: '123', Tagging: 'mykey=myvalue' },
580-
(err, data) => {
581-
if (err) {
582-
return next(err);
583-
}
584-
return s3.deleteObject({ Bucket: testBucket, Key: keyName2, VersionId: data.VersionId }, next);
585-
}),
586-
], done));
646+
next();
647+
})
648+
.catch(next),
649+
next => s3.send(new PutObjectCommand({
650+
Bucket: testBucket,
651+
Key: keyName2,
652+
Body: '123',
653+
Tagging: 'mykey=myvalue',
654+
}))
655+
.then(data => s3.send(new DeleteObjectCommand({
656+
Bucket: testBucket,
657+
Key: keyName2,
658+
VersionId: data.VersionId,
659+
}))
660+
.then(() => next())
661+
.catch(next))
662+
.catch(next),
663+
], done);
664+
});
587665

588666
after(done => async.series([
589667
next => removeAllVersions({ Bucket: testBucket }, next),
590-
next => s3.deleteBucket({ Bucket: testBucket }, next),
668+
next => s3.send(new DeleteBucketCommand({ Bucket: testBucket }))
669+
.then(() => next())
670+
.catch(next),
591671
], done));
592672

593673
it('should return truncated lists - part 1', done => {

0 commit comments

Comments
 (0)