Compare commits
2 Commits
developmen
...
improvemen
Author | SHA1 | Date |
---|---|---|
Rahul Padigela | 71055d87ed | |
Rahul Padigela | 83687de542 |
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"$": {
|
||||
"xmlns": "http://s3.amazonaws.com/doc/2006-03-01/"
|
||||
},
|
||||
"Part": [
|
||||
{
|
||||
"ETag": [
|
||||
"\"d41d8cd98f00b204e9800998ecf8427e\""
|
||||
],
|
||||
"PartNumber": [
|
||||
"1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"ETag": [
|
||||
"\"d41d8cd98f00b204e9800998ecf8427e\""
|
||||
],
|
||||
"PartNumber": [
|
||||
"2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"ETag": [
|
||||
"\"d41d8cd98f00b204e9800998ecf8427e\""
|
||||
],
|
||||
"PartNumber": [
|
||||
"3"
|
||||
]
|
||||
},
|
||||
{
|
||||
"ETag": [
|
||||
"\"d41d8cd98f00b204e9800998ecf8427e\""
|
||||
],
|
||||
"PartNumber": [
|
||||
"4"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
[
|
||||
{
|
||||
"key": "7dffb33c7a734b0f89ed09f74b0b8d74..|..00001",
|
||||
"value": {
|
||||
"Size": 6000000,
|
||||
"ETag": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"LastModified": "2019-04-30T20:53:23.620Z",
|
||||
"Owner": {},
|
||||
"partLocations": [
|
||||
{
|
||||
"key": "1a1ff57af576995bdf229471fcc34ecd939175f0",
|
||||
"dataStoreName": "file"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "7dffb33c7a734b0f89ed09f74b0b8d74..|..00002",
|
||||
"value": {
|
||||
"Size": 6000000,
|
||||
"ETag": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"LastModified": "2019-04-30T20:53:26.719Z",
|
||||
"Owner": {},
|
||||
"partLocations": [
|
||||
{
|
||||
"key": "8bfef6c626c922948ded4be63dd7c4a0f1c8ba2a",
|
||||
"dataStoreName": "file"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "7dffb33c7a734b0f89ed09f74b0b8d74..|..00003",
|
||||
"value": {
|
||||
"Size": 6000000,
|
||||
"ETag": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"LastModified": "2019-04-30T20:53:29.303Z",
|
||||
"Owner": {},
|
||||
"partLocations": [
|
||||
{
|
||||
"key": "a431c768950aa5cccbd2d8a0b914bf6160ab3cd0",
|
||||
"dataStoreName": "file"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"key": "7dffb33c7a734b0f89ed09f74b0b8d74..|..00004",
|
||||
"value": {
|
||||
"Size": 6000000,
|
||||
"ETag": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"LastModified": "2019-04-30T20:53:31.182Z",
|
||||
"Owner": {},
|
||||
"partLocations": [
|
||||
{
|
||||
"key": "43b8c90e4af62333f246843b15ca263a179d86cb",
|
||||
"dataStoreName": "file"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
|
@ -1,7 +1,9 @@
|
|||
const assert = require('assert');
|
||||
const crypto = require('crypto');
|
||||
const { Logger } = require('werelogs');
|
||||
const log = new Logger('S3').newRequestLogger();
|
||||
|
||||
const { createAggregateETag } =
|
||||
const { createAggregateETag, validateAndFilterMpuParts } =
|
||||
require('../../../lib/s3middleware/processMpuParts');
|
||||
|
||||
describe('createAggregateETag', () => {
|
||||
|
@ -54,3 +56,44 @@ describe('createAggregateETag', () => {
|
|||
aggregateETag, 'bff290751e485f06dcc0203c77ed2fd9-10000');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
let storedParts;
|
||||
let jsonList;
|
||||
|
||||
// r - number of parts to remove
|
||||
function _buildExpectedResult(r) {
|
||||
const result = [];
|
||||
for (let i = 0; i < r; i++) {
|
||||
jsonList.Part.shift();
|
||||
result.push(...storedParts[i].value.partLocations);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
describe('processMpuParts::validateAndFilterMpuParts', () => {
|
||||
let mpuOverviewKey;
|
||||
let splitter;
|
||||
beforeEach(() => {
|
||||
mpuOverviewKey =
|
||||
'"overview..|..fred..|..8e51eecb51ca4caa96dc4ebd51514f2a"';
|
||||
splitter = '..|..';
|
||||
storedParts = require('./helpers/storedParts');
|
||||
jsonList = require('./helpers/jsonList');
|
||||
});
|
||||
afterEach(() => {
|
||||
mpuOverviewKey = null;
|
||||
splitter = null;
|
||||
});
|
||||
|
||||
[0, 2, 4].forEach(n => {
|
||||
it(`should filter ${n} parts that are not used in complete mpu`,
|
||||
() => {
|
||||
const expected = _buildExpectedResult(n);
|
||||
|
||||
const result = validateAndFilterMpuParts(storedParts, jsonList,
|
||||
mpuOverviewKey, splitter, log);
|
||||
assert.deepStrictEqual(expected, result.extraPartLocations);
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue