MCPcopy Index your code
hub / github.com/scality/cloudserver / _createAndAbortMpu

Function _createAndAbortMpu

tests/unit/api/multipartDelete.js:39–95  ·  view source on GitHub ↗
(usEastSetting, fakeUploadID, locationConstraint,
    callback)

Source from the content-addressed store, hash-verified

37const westLocation = 'scality-internal-file';
38
39function _createAndAbortMpu(usEastSetting, fakeUploadID, locationConstraint,
40 callback) {
41 config.locationConstraints['us-east-1'].legacyAwsBehavior =
42 usEastSetting;
43 const post = '<?xml version="1.0" encoding="UTF-8"?>' +
44 '<CreateBucketConfiguration ' +
45 'xmlns="http://s3.amazonaws.com/doc/2006-03-01/">' +
46 `<LocationConstraint>${locationConstraint}</LocationConstraint>` +
47 '</CreateBucketConfiguration>';
48 const testBucketPutRequest = Object.assign({ post }, bucketPutRequest);
49 async.waterfall([
50 next => bucketPut(authInfo, testBucketPutRequest, log, next),
51 (corsHeaders, next) =>
52 initiateMultipartUpload(authInfo, initiateRequest, log, next),
53 (result, corsHeaders, next) => parseString(result, next),
54 (json, next) => {
55 // use uploadId parsed from initiateMpu request to construct
56 // uploadPart and deleteMpu requests
57 const uploadId =
58 json.InitiateMultipartUploadResult.UploadId[0];
59 const partBody = Buffer.from('I am a part\n', 'utf8');
60 const partRequest = new DummyRequest({
61 bucketName,
62 namespace,
63 objectKey,
64 headers: { host: `${bucketName}.s3.amazonaws.com` },
65 url: `/${objectKey}?partNumber=1&uploadId=${uploadId}`,
66 query: {
67 partNumber: '1',
68 uploadId,
69 },
70 actionImplicitDenies: false,
71 }, partBody);
72 const testUploadId = fakeUploadID ? 'nonexistinguploadid' :
73 uploadId;
74 const deleteMpuRequest = {
75 bucketName,
76 namespace,
77 objectKey,
78 headers: { host: `${bucketName}.s3.amazonaws.com` },
79 url: `/${objectKey}?uploadId=${testUploadId}`,
80 query: { uploadId: testUploadId },
81 actionImplicitDenies: false,
82 };
83 next(null, partRequest, deleteMpuRequest);
84 },
85 (partRequest, deleteMpuRequest, next) =>
86 objectPutPart(authInfo, partRequest, undefined, log, err => {
87 if (err) {
88 return next(err);
89 }
90 return next(null, deleteMpuRequest);
91 }),
92 (deleteMpuRequest, next) =>
93 multipartDelete(authInfo, deleteMpuRequest, log, next),
94 ], callback);
95}
96

Callers 1

multipartDelete.jsFile · 0.85

Calls 4

bucketPutFunction · 0.85
objectPutPartFunction · 0.85
multipartDeleteFunction · 0.85
initiateMultipartUploadFunction · 0.50

Tested by

no test coverage detected