Skip to content

Commit 015d071

Browse files
cleanup test 2
1 parent 3ab547a commit 015d071

File tree

13 files changed

+34
-103
lines changed

13 files changed

+34
-103
lines changed

extensions/replication/replicationStatusProcessor/ReplicationStatusProcessor.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -382,9 +382,7 @@ class ReplicationStatusProcessor {
382382
done => {
383383
this._mProducer = new MetricsProducer(this.kafkaConfig,
384384
this.mConfig);
385-
this._mProducer.setupProducer(err => {
386-
done(err);
387-
});
385+
this._mProducer.setupProducer(done);
388386
},
389387
done => {
390388
let consumerReady = false;
@@ -402,7 +400,7 @@ class ReplicationStatusProcessor {
402400
queueProcessor: this.processKafkaEntry.bind(this),
403401
bootstrap: (options && options.bootstrap) || false,
404402
});
405-
this._consumer.on('error', (err) => {
403+
this._consumer.on('error', () => {
406404
if (!consumerReady) {
407405
this.logger.fatal('error starting a backbeat consumer');
408406
process.exit(1);
@@ -416,9 +414,7 @@ class ReplicationStatusProcessor {
416414
done();
417415
});
418416
},
419-
], err => {
420-
cb(err);
421-
});
417+
], cb);
422418
}
423419

424420
/**

extensions/replication/tasks/CopyLocationTask.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ class CopyLocationTask extends BackbeatTask {
8282
[transport === 'https' ? 'httpsAgent' : 'httpAgent']: this.sourceHTTPAgent,
8383
requestTimeout: TIMEOUT_MS,
8484
};
85-
8685
this.backbeatClient = new CloudserverClient({
8786
endpoint: `${transport}://${s3.host}:${s3.port}`,
8887
credentials: s3Credentials.getCredentialsProvider(),
@@ -256,8 +255,6 @@ class CopyLocationTask extends BackbeatTask {
256255
peer: this.sourceConfig.s3,
257256
error: err.message,
258257
httpStatus: err.$metadata?.httpStatusCode,
259-
retryable: err.retryable,
260-
$retryable: err.$retryable,
261258
}, actionEntry.getLogInfo()));
262259
return doneOnce(err);
263260
});
@@ -317,8 +314,6 @@ class CopyLocationTask extends BackbeatTask {
317314
method: 'CopyLocationTask._sendMultipleBackendPutObject',
318315
error: err.message,
319316
httpStatus: err.$metadata?.httpStatusCode,
320-
retryable: err.retryable,
321-
$retryable: err.$retryable,
322317
}, actionEntry.getLogInfo()));
323318
return cb(err);
324319
});

extensions/replication/tasks/ReplicateObject.js

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ class ReplicateObject extends BackbeatTask {
9999
// Rely on AWS SDK notion of retryable error to decide if
100100
// we should set the entry replication status to FAILED
101101
// (non retryable) or retry later.
102-
// SDK v3: check both err.retryable (v2) and httpStatusCode >= 500 (v3)
103102
shouldRetryFunc: err => err.retryable || err.$metadata?.httpStatusCode >= 500,
104103
log,
105104
}, cb);
@@ -145,7 +144,6 @@ class ReplicateObject extends BackbeatTask {
145144
logFields: { entry: sourceEntry.getLogInfo(), part },
146145
actionFunc: done => this._getAndPutPartOnce(
147146
sourceEntry, destEntry, part, partLogger, done),
148-
// SDK v3: check both err.retryable (v2) and httpStatusCode >= 500 (v3)
149147
shouldRetryFunc: err => err.retryable || err.$metadata?.httpStatusCode >= 500,
150148
onRetryFunc: err => {
151149
if (err.origin === 'target') {
@@ -163,7 +161,6 @@ class ReplicateObject extends BackbeatTask {
163161
logFields: { entry: entry.getLogInfo() },
164162
actionFunc: done => this._putMetadataOnce(entry, mdOnly,
165163
log, done),
166-
// SDK v3: check both err.retryable (v2) and httpStatusCode >= 500 (v3)
167164
shouldRetryFunc: err => err.retryable || err.$metadata?.httpStatusCode >= 500,
168165
onRetryFunc: err => {
169166
if (err.origin === 'target') {
@@ -719,7 +716,6 @@ class ReplicateObject extends BackbeatTask {
719716
requestTimeout: TIMEOUT_MS,
720717
connectionTimeout: TIMEOUT_MS,
721718
};
722-
723719
this.backbeatSource = new CloudserverClient({
724720
endpoint: `${this.sourceConfig.transport}://` +
725721
`${sourceS3.host}:${sourceS3.port}`,
@@ -764,12 +760,11 @@ class ReplicateObject extends BackbeatTask {
764760
this.s3destCredentials =
765761
this._createCredentials('target', this.destConfig.auth,
766762
targetRole, log);
767-
763+
768764
const requestHandler = {
769765
[this.destConfig.transport === 'https' ? 'httpsAgent' : 'httpAgent']: this.destHTTPAgent,
770766
requestTimeout: TIMEOUT_MS,
771767
};
772-
773768
this.backbeatDest = new CloudserverClient({
774769
endpoint: `${this.destConfig.transport}://` +
775770
`${this.destBackbeatHost.host}:${this.destBackbeatHost.port}`,
@@ -861,9 +856,7 @@ class ReplicateObject extends BackbeatTask {
861856
{ entry: sourceEntry.getLogInfo() });
862857

863858
return async.waterfall([
864-
next => {
865-
this._getAndPutData(sourceEntry, destEntry, log, next);
866-
},
859+
next => this._getAndPutData(sourceEntry, destEntry, log, next),
867860
// update location, replication status and put metadata in
868861
// target bucket
869862
(location, next) => {

lib/BackbeatMetadataProxy.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,6 @@ class BackbeatMetadataProxy extends BackbeatTask {
344344
connectionTimeout: TIMEOUT_MS
345345
};
346346
const creds = this._createCredentials(log);
347-
348347
this.backbeatSource = new CloudserverClient({
349348
endpoint: this._s3Endpoint,
350349
credentials: creds.getCredentialsProvider(),

lib/clients/ClientManager.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,6 @@ class ClientManager {
153153
[this._transport === 'https' ? 'httpsAgent' : 'httpAgent']: this.s3Agent,
154154
requestTimeout: TIMEOUT_MS,
155155
};
156-
157156
this.backbeatClients[accountId] = new CloudserverClient({
158157
endpoint: `${this._transport}://${this._s3Config.host}:${this._s3Config.port}`,
159158
credentials: credentials.getCredentialsProvider(),

lib/clients/utils.js

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,26 +22,23 @@ function attachReqUids(s3req, log) {
2222
/**
2323
* Determines if an AWS SDK error is retryable.
2424
* Checks both legacy and new SDK v3 retryable flags, as well as HTTP status codes
25-
* that indicate transient/retryable errors according to AWS SDK v3 documentation.
25+
* that indicate transient/retryable errors according to AWS SDK v3 documentation :
26+
* https://docs.aws.amazon.com/sdkref/latest/guide/feature-retry-behavior.html
2627
*
2728
* @param {Error} err - The error object from AWS SDK
2829
* @returns {boolean} - True if the error is retryable
2930
*/
3031
function isSdkErrorRetryable(err) {
31-
// Check SDK v3 retryable flags (both legacy and new)
3232
if (err.retryable || err.$retryable) {
3333
return true;
3434
}
3535

36-
// For streaming operations, SDK v3 doesn't always set retryable flags
37-
// So we check HTTP status codes for retryable errors
3836
const httpStatus = err.$metadata?.httpStatusCode;
39-
4037
if (!httpStatus) {
41-
// Connection errors (no HTTP response received) are not retryable
4238
return false;
4339
}
4440

41+
// TODO : review this
4542
// Special case: 403 is only retryable for throttling errors, not permission errors
4643
if (httpStatus === 403) {
4744
const errorCode = err.Code || err.name || err.code;
@@ -50,13 +47,8 @@ function isSdkErrorRetryable(err) {
5047
return throttlingCodes.includes(errorCode);
5148
}
5249

53-
// Transient errors: 400, 408, 500, 502, 503, 504
5450
const transientErrors = [400, 408, 500, 502, 503, 504];
55-
56-
// Throttling errors: 400, 429, 502, 503, 509
5751
const throttlingErrors = [400, 429, 502, 503, 509];
58-
59-
// Combine both sets (using Set to avoid duplicates)
6052
const retryableStatusCodes = new Set([...transientErrors, ...throttlingErrors]);
6153

6254
return retryableStatusCodes.has(httpStatus);

lib/credentials/AccountCredentials.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ class AccountCredentials {
4040
* @return {Function} Async function that returns credentials
4141
*/
4242
getCredentialsProvider() {
43-
// Return a simple async function for SDK v3
4443
return async () => ({
4544
accessKeyId: this._accessKeyId,
4645
secretAccessKey: this._secretAccessKey,

lib/credentials/CredentialsManager.js

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -87,27 +87,6 @@ class TemporaryCredentials {
8787
});
8888
}
8989

90-
/**
91-
* Async credential provider for v3 SDK
92-
* @returns {Promise<Object>} credential object
93-
*/
94-
// todo : check if needed now
95-
async call() {
96-
return new Promise((resolve, reject) => {
97-
this.get(err => {
98-
if (err) {
99-
reject(err);
100-
return;
101-
}
102-
resolve({
103-
accessKeyId: this.accessKeyId,
104-
secretAccessKey: this.secretAccessKey,
105-
sessionToken: this.sessionToken,
106-
});
107-
});
108-
});
109-
}
110-
11190
/**
11291
* Get credentials provider function for AWS SDK v3
11392
* @return {Function} Async function that returns credentials

tests/functional/lib/BackbeatConsumer.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,8 @@ describe('BackbeatConsumer main tests', () => {
6262
], done);
6363
});
6464
afterEach(() => {
65-
// Stop the Kafka consumer from fetching messages
6665
consumer._consumer.unsubscribe();
67-
// Clear the consumed messages array for next test
6866
consumedMessages = [];
69-
// Remove event handlers to prevent cross-test pollution
7067
consumer.removeAllListeners('consumed');
7168
});
7269
after(function after(done) {

tests/functional/lifecycle/LifecycleTask.js

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1578,15 +1578,13 @@ describe('lifecycle task functional tests', function dF() {
15781578
(data, next) => {
15791579
if (item.isDeleteMarker) {
15801580
return async.series([
1581-
cb => {
1582-
s3Client.deleteObject({ Bucket, Key },
1583-
err => {
1584-
if (err) {
1585-
return cb(err);
1586-
}
1587-
return cb();
1588-
});
1589-
},
1581+
cb => s3Client.deleteObject({ Bucket, Key },
1582+
err => {
1583+
if (err) {
1584+
return cb(err);
1585+
}
1586+
return cb();
1587+
}),
15901588
cb => {
15911589
if (!item.hasNonCurrentVersions) {
15921590
return s3Client.deleteObject({
@@ -1603,18 +1601,16 @@ describe('lifecycle task functional tests', function dF() {
16031601
}
16041602
return next(null, null);
16051603
},
1606-
(data, next) => {
1607-
s3Helper.setBucketVersioning(item.versionStatus, next);
1608-
},
1604+
(data, next) => s3Helper.setBucketVersioning(
1605+
item.versionStatus, next),
16091606
(data, next) => {
16101607
s3Helper.setBucketLifecycleConfigurations([
16111608
new LifecycleRule().addID('task-1')
16121609
.addExpiration('Date', PAST).build(),
16131610
], next);
16141611
},
1615-
(data, next) => {
1616-
s3Client.getBucketLifecycleConfiguration({ Bucket }, next);
1617-
},
1612+
(data, next) => s3Client.getBucketLifecycleConfiguration(
1613+
{ Bucket }, next),
16181614
(data, next) => {
16191615
wrapProcessBucketEntry(data.Rules, bucketEntry, s3Client,
16201616
params, (err, data) => {

0 commit comments

Comments
 (0)