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

Function bucketDeleteLifecycle

lib/api/bucketDeleteLifecycle.js:15–62  ·  view source on GitHub ↗

* bucketDeleteLifecycle - Delete the bucket Lifecycle configuration * @param {AuthInfo} authInfo - Instance of AuthInfo class with requester's info * @param {object} request - http request object * @param {object} log - Werelogs logger * @param {function} callback - callback to server * @return

(authInfo, request, log, callback)

Source from the content-addressed store, hash-verified

13 * @return {undefined}
14 */
15function bucketDeleteLifecycle(authInfo, request, log, callback) {
16 log.debug('processing request', { method: 'bucketDeleteLifecycle' });
17 const { bucketName, headers, method } = request;
18 const metadataValParams = {
19 authInfo,
20 bucketName,
21 requestType: request.apiMethods || 'bucketDeleteLifecycle',
22 request,
23 };
24 return standardMetadataValidateBucket(metadataValParams, request.actionImplicitDenies, log, (err, bucket) => {
25 const corsHeaders = collectCorsHeaders(headers.origin, method, bucket);
26 if (err) {
27 log.debug('error processing request', {
28 error: err,
29 method: 'bucketDeleteLifecycle',
30 });
31 monitoring.promMetrics(
32 'DELETE', bucketName, err.code, 'deleteBucketLifecycle');
33 return callback(err, corsHeaders);
34 }
35 if (!bucket.getLifecycleConfiguration()) {
36 log.trace('no existing Lifecycle configuration', {
37 method: 'bucketDeleteLifecycle',
38 });
39 pushMetric('deleteBucketLifecycle', log, {
40 authInfo,
41 bucket: bucketName,
42 });
43 return callback(null, corsHeaders);
44 }
45 log.trace('deleting Lifecycle configuration in metadata');
46 bucket.setLifecycleConfiguration(null);
47 return metadata.updateBucket(bucketName, bucket, log, err => {
48 if (err) {
49 monitoring.promMetrics(
50 'DELETE', bucketName, err.code, 'deleteBucketLifecycle');
51 return callback(err, corsHeaders);
52 }
53 pushMetric('deleteBucketLifecycle', log, {
54 authInfo,
55 bucket: bucketName,
56 });
57 monitoring.promMetrics(
58 'DELETE', bucketName, '200', 'deleteBucketLifecycle');
59 return callback(null, corsHeaders);
60 });
61 });
62}
63
64module.exports = bucketDeleteLifecycle;

Callers 1

Calls 5

collectCorsHeadersFunction · 0.85
pushMetricFunction · 0.85
debugMethod · 0.80
traceMethod · 0.80

Tested by

no test coverage detected