MCPcopy
hub / github.com/scality/cloudserver / bucketDelete

Function bucketDelete

lib/api/bucketDelete.js:19–66  ·  view source on GitHub ↗

* bucketDelete - DELETE bucket (currently supports only non-versioned buckets) * @param {AuthInfo} authInfo - Instance of AuthInfo class with requester's info * @param {object} request - request object given by router * including normalized headers * @param {function} l

(authInfo, request, log, cb)

Source from the content-addressed store, hash-verified

17 * @return {undefined}
18 */
19function bucketDelete(authInfo, request, log, cb) {
20 log.debug('processing request', { method: 'bucketDelete' });
21
22 if (authInfo.isRequesterPublicUser()) {
23 log.debug('operation not available for public user');
24 monitoring.promMetrics(
25 'DELETE', request.bucketName, 403, 'deleteBucket');
26 return cb(errors.AccessDenied);
27 }
28 const bucketName = request.bucketName;
29
30 const metadataValParams = {
31 authInfo,
32 bucketName,
33 requestType: 'bucketDelete',
34 request,
35 };
36
37 return standardMetadataValidateBucket(metadataValParams, request.actionImplicitDenies, log,
38 (err, bucketMD) => {
39 const corsHeaders = collectCorsHeaders(request.headers.origin,
40 request.method, bucketMD);
41 if (err) {
42 log.debug('error processing request',
43 { method: 'metadataValidateBucket', error: err });
44 monitoring.promMetrics(
45 'DELETE', bucketName, err.code, 'deleteBucket');
46 return cb(err, corsHeaders);
47 }
48 log.trace('passed checks',
49 { method: 'metadataValidateBucket' });
50 return deleteBucket(authInfo, bucketMD, bucketName,
51 authInfo.getCanonicalID(), request, log, err => {
52 if (err) {
53 monitoring.promMetrics(
54 'DELETE', bucketName, err.code, 'deleteBucket');
55 return cb(err, corsHeaders);
56 }
57 pushMetric('deleteBucket', log, {
58 authInfo,
59 bucket: bucketName,
60 });
61 monitoring.promMetrics(
62 'DELETE', bucketName, '204', 'deleteBucket');
63 return cb(null, corsHeaders);
64 });
65 });
66}
67
68module.exports = bucketDelete;

Callers 5

routeBackbeat.jsFile · 0.85
createMPUFunction · 0.85
bucketDelete.jsFile · 0.85
transientBucket.jsFile · 0.85

Calls 6

collectCorsHeadersFunction · 0.85
pushMetricFunction · 0.85
debugMethod · 0.80
traceMethod · 0.80
deleteBucketFunction · 0.50

Tested by

no test coverage detected