Skip to content

Commit 36d910f

Browse files
committed
CLDSRV-224: switch back to callback mode
1 parent f5781c3 commit 36d910f

File tree

1 file changed

+31
-36
lines changed

1 file changed

+31
-36
lines changed

lib/api/bucketGetTagging.js

Lines changed: 31 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
const { metadataValidateBucket } = require('../metadata/metadataUtils');
2-
const util = require('node:util');
32
const collectCorsHeaders = require('../utilities/collectCorsHeaders');
43
const { checkExpectedBucketOwner } = require('./apiUtils/authorization/bucketOwner');
54
const { pushMetric } = require('../utapi/utilities');
65
const monitoring = require('../utilities/monitoringHandler');
76
const { errors, s3middleware } = require('arsenal');
7+
const { waterfall } = require('async');
88
const escapeForXml = s3middleware.escapeForXml;
99

1010
// Sample XML response:
@@ -60,43 +60,39 @@ function tagsToXml(tags) {
6060
* with either error code or xml response body
6161
* @return {undefined}
6262
*/
63-
async function bucketGetTagging(authInfo, request, log, callback) {
63+
function bucketGetTagging(authInfo, request, log, callback) {
6464
log.debug('processing request', { method: 'bucketGetTagging' });
6565

6666
const { bucketName, headers } = request;
67-
const metadataValidateBucketPromise = util.promisify(metadataValidateBucket);
68-
const checkExpectedBucketOwnerPromise = util.promisify(checkExpectedBucketOwner);
69-
7067
const metadataValParams = {
7168
authInfo,
7269
bucketName,
7370
requestType: 'bucketGetTagging',
7471
request,
7572
};
76-
77-
let bucket;
73+
let bucket = null;
7874
let xml = null;
75+
let tags = null;
7976

80-
try {
81-
bucket = await metadataValidateBucketPromise(metadataValParams, log);
82-
// eslint-disable-next-line no-unused-expressions
83-
await checkExpectedBucketOwnerPromise(headers, bucket, log);
84-
const tags = bucket.getTags();
85-
if (!tags || !tags.length) {
86-
log.debug('bucket TagSet does not exist', {
87-
method: 'bucketGetTagging',
88-
});
89-
throw errors.NoSuchTagSet;
77+
return waterfall([
78+
next => metadataValidateBucket(metadataValParams, log,
79+
(err, b) => {
80+
bucket = b;
81+
return next(err);
82+
}),
83+
next => checkExpectedBucketOwner(headers, bucket, log, next),
84+
next => {
85+
tags = bucket.getTags();
86+
if (!tags || !tags.length) {
87+
log.debug('bucket TagSet does not exist', {
88+
method: 'bucketGetTagging',
89+
});
90+
return next(errors.NoSuchTagSet);
91+
}
92+
xml = tagsToXml(tags);
93+
return next();
9094
}
91-
xml = tagsToXml(tags);
92-
pushMetric('getBucketTagging', log, {
93-
authInfo,
94-
bucket: bucketName,
95-
});
96-
const corsHeaders = collectCorsHeaders(request.headers.origin,
97-
request.method, bucket);
98-
return callback(null, xml, corsHeaders);
99-
} catch (err) {
95+
], err => {
10096
const corsHeaders = collectCorsHeaders(request.headers.origin,
10197
request.method, bucket);
10298
if (err) {
@@ -106,17 +102,16 @@ async function bucketGetTagging(authInfo, request, log, callback) {
106102
});
107103
monitoring.promMetrics('GET', bucketName, err.code,
108104
'getBucketTagging');
109-
} else {
110-
monitoring.promMetrics(
111-
'GET', bucketName, '200', 'getBucketTagging');
112-
pushMetric('getBucketTagging', log, {
113-
authInfo,
114-
bucket: bucketName,
115-
});
105+
return callback(err, corsHeaders);
116106
}
117-
118-
return callback(err, corsHeaders);
119-
}
107+
monitoring.promMetrics(
108+
'GET', bucketName, '200', 'getBucketTagging');
109+
pushMetric('getBucketTagging', log, {
110+
authInfo,
111+
bucket: bucketName,
112+
});
113+
return callback(null, xml, corsHeaders);
114+
});
120115
}
121116

122117
module.exports = bucketGetTagging;

0 commit comments

Comments
 (0)