Skip to content

Commit 47c019d

Browse files
test transitions
1 parent 54f8c30 commit 47c019d

File tree

2 files changed

+52
-12
lines changed

2 files changed

+52
-12
lines changed

tests/zenko_tests/node_tests/backbeat/LifecycleUtility.js

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ class LifecycleUtility extends ReplicationUtility {
233233
}
234234

235235
putBucketLifecycleConfiguration(transitionDate, cb) {
236-
this.s3.send(new PutBucketLifecycleConfigurationCommand({
236+
const lifecycleConfig = {
237237
Bucket: this.bucket,
238238
LifecycleConfiguration: {
239239
Rules: [{
@@ -247,9 +247,19 @@ class LifecycleUtility extends ReplicationUtility {
247247
],
248248
}],
249249
},
250-
}))
251-
.then(data => cb(null, data))
252-
.catch(err => cb(err));
250+
};
251+
252+
console.log(`[DEBUG] putBucketLifecycleConfiguration: Setting lifecycle for bucket ${this.bucket} with destination ${this.destinationLocation} and date ${transitionDate}`);
253+
254+
this.s3.send(new PutBucketLifecycleConfigurationCommand(lifecycleConfig))
255+
.then(data => {
256+
console.log(`[DEBUG] putBucketLifecycleConfiguration: Successfully set lifecycle configuration`);
257+
cb(null, data);
258+
})
259+
.catch(err => {
260+
console.log(`[DEBUG] putBucketLifecycleConfiguration error:`, err.message);
261+
cb(err);
262+
});
253263
}
254264

255265
/**
@@ -300,6 +310,7 @@ class LifecycleUtility extends ReplicationUtility {
300310
return async.doWhilst(
301311
next => this.s3.send(new HeadObjectCommand(params))
302312
.then(data => {
313+
console.log(`AAAAA 21 ${data.StorageClass}, ${this.destinationLocation}`)
303314
shouldContinue = data.StorageClass !== this.destinationLocation;
304315
if (shouldContinue) {
305316
return setTimeout(next, 5000);
@@ -449,7 +460,10 @@ class LifecycleUtility extends ReplicationUtility {
449460
}
450461
this.s3.send(new RestoreObjectCommand(params))
451462
.then(data => cb(null, data))
452-
.catch(err => cb(err));
463+
.catch(err => {
464+
console.log(`[DEBUG] putRestoreObject error:`, err.message);
465+
cb(err);
466+
});
453467
}
454468

455469
/**
@@ -478,7 +492,10 @@ class LifecycleUtility extends ReplicationUtility {
478492
}
479493
return next();
480494
})
481-
.catch(err => next(err)),
495+
.catch(err => {
496+
console.log(`[DEBUG] AAAA 31 waitUntilRestored error:`, err.message);
497+
next(err);
498+
}),
482499
() => shouldContinue,
483500
cb,
484501
);

tests/zenko_tests/node_tests/backbeat/tests/lifecycle/transition.js

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,40 @@ function compareTransitionedData(sourceClient, destinationClient, versionId, cb)
2929

3030
function compareTransitionedColdData(sourceClient, versionId, cb) {
3131
console.log("AAAA 3")
32+
console.log(`[DEBUG] compareTransitionedColdData: Starting transition for versionId=${versionId}`);
3233
return series([
3334
next => sourceClient.getObject(versionId, next),
34-
next => sourceClient.putBucketLifecycleConfiguration(new Date(new Date().setUTCHours(0, 0, 0, 0)), next),
35-
next => sourceClient.waitUntilTransitioned(versionId, next),
36-
], cb);
35+
next => {
36+
console.log(`[DEBUG] compareTransitionedColdData: Setting lifecycle configuration`);
37+
sourceClient.putBucketLifecycleConfiguration(new Date(new Date().setUTCHours(0, 0, 0, 0)), next);
38+
},
39+
next => {
40+
console.log(`[DEBUG] compareTransitionedColdData: Waiting for transition`);
41+
sourceClient.waitUntilTransitioned(versionId, next);
42+
},
43+
], (err) => {
44+
if (err) {
45+
console.log(`[DEBUG] compareTransitionedColdData error:`, err.message);
46+
} else {
47+
console.log(`[DEBUG] compareTransitionedColdData: Successfully completed`);
48+
}
49+
cb(err);
50+
});
3751
}
3852

3953
function checkRestoration(destination, sourceClient, versionId, cb) {
40-
console.log("AAAA 4")
54+
console.log("AAAA 4", destination.supportsRestore)
4155
if (!destination.supportsRestore) {
4256
return process.nextTick(cb);
4357
}
4458
return series([
4559
next => sourceClient.getObject(versionId, err => {
46-
assert.strictEqual(err.code, 'InvalidObjectState');
47-
assert.strictEqual(err.statusCode, 403);
60+
console.log("AAAA 22", err, err.Code, err.$metadata?.httpStatusCode)
61+
// AWS SDK v3 uses different error property names
62+
const errorCode = err.Code || err.code;
63+
const statusCode = err.$metadata?.httpStatusCode || err.statusCode;
64+
assert.strictEqual(errorCode, 'InvalidObjectState');
65+
assert.strictEqual(statusCode, 403);
4866
return next();
4967
}),
5068
next => sourceClient.putRestoreObject(versionId, next),
@@ -118,6 +136,11 @@ testsToRun.forEach(test => {
118136

119137
before(() => {
120138
console.log("AAAA 8")
139+
console.log(`[DEBUG] Setting up test: from=${test.from} to=${test.to}`);
140+
console.log(`[DEBUG] Source location: ${fromLoc.name}`);
141+
console.log(`[DEBUG] Destination location: ${toLoc.name}`);
142+
console.log(`[DEBUG] Environment COLD_BACKEND_DESTINATION_LOCATION: ${process.env.COLD_BACKEND_DESTINATION_LOCATION}`);
143+
121144
cloudServer.setSourceLocation(fromLoc.name);
122145
cloudServer.setDestinationLocation(toLoc.name);
123146
if (!toLoc.isCold) {

0 commit comments

Comments
 (0)