Skip to content

Commit de1bc51

Browse files
Support AbortIncompleteMultipartUpload bucket lifecycle rule
Signed-off-by: Utkarsh Srivastava <srivastavautkarsh8097@gmail.com> fully functional noncurrent_expiry Signed-off-by: Utkarsh Srivastava <srivastavautkarsh8097@gmail.com> fully functional ExpiredDeleteMarker Signed-off-by: Utkarsh Srivastava <srivastavautkarsh8097@gmail.com> add support for filters in AbortMultipartUpload Signed-off-by: Utkarsh Srivastava <srivastavautkarsh8097@gmail.com> minor optimization submit LIKE only when prefix is provided Signed-off-by: Utkarsh Srivastava <srivastavautkarsh8097@gmail.com> add basic tests and improve reliability of the version queries by relying on version_seq for ordering instead of time Co-authored-by: Utkarsh Srivastava <srivastavautkarsh8097@gmail.com> Co-authored-by: Ben <belimele@redhat.com> Signed-off-by: Utkarsh Srivastava <srivastavautkarsh8097@gmail.com>
1 parent 8bca078 commit de1bc51

File tree

10 files changed

+754
-96
lines changed

10 files changed

+754
-96
lines changed

src/api/object_api.js

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1410,6 +1410,136 @@ module.exports = {
14101410
auth: { system: ['admin', 'user'] }
14111411
},
14121412

1413+
delete_incomplete_multiparts: {
1414+
method: 'DELETE',
1415+
params: {
1416+
type: 'object',
1417+
required: [
1418+
'bucket',
1419+
'days_after_initiation',
1420+
],
1421+
properties: {
1422+
bucket: { $ref: 'common_api#/definitions/bucket_name' },
1423+
days_after_initiation: {
1424+
type: 'integer',
1425+
},
1426+
prefix: {
1427+
type: 'string',
1428+
},
1429+
size_less: {
1430+
type: 'integer'
1431+
},
1432+
size_greater: {
1433+
type: 'integer'
1434+
},
1435+
tags: {
1436+
$ref: 'common_api#/definitions/tagging'
1437+
},
1438+
limit: {
1439+
type: 'integer'
1440+
},
1441+
reply_objects: {
1442+
type: 'boolean'
1443+
}
1444+
},
1445+
},
1446+
reply: {
1447+
type: 'object',
1448+
properties: {
1449+
num_objects_deleted: {
1450+
type: 'integer'
1451+
}
1452+
}
1453+
},
1454+
auth: { system: ['admin', 'user'] }
1455+
},
1456+
1457+
delete_noncurrent_versions: {
1458+
method: 'DELETE',
1459+
params: {
1460+
type: 'object',
1461+
required: [
1462+
'bucket',
1463+
'noncurrent_days'
1464+
],
1465+
properties: {
1466+
bucket: { $ref: 'common_api#/definitions/bucket_name' },
1467+
noncurrent_days: {
1468+
type: 'integer',
1469+
},
1470+
newer_noncurrent_versions: {
1471+
type: 'integer',
1472+
},
1473+
prefix: {
1474+
type: 'string',
1475+
},
1476+
size_less: {
1477+
type: 'integer'
1478+
},
1479+
size_greater: {
1480+
type: 'integer'
1481+
},
1482+
tags: {
1483+
$ref: 'common_api#/definitions/tagging'
1484+
},
1485+
limit: {
1486+
type: 'integer'
1487+
},
1488+
reply_objects: {
1489+
type: 'boolean'
1490+
}
1491+
},
1492+
},
1493+
reply: {
1494+
type: 'object',
1495+
properties: {
1496+
num_objects_deleted: {
1497+
type: 'integer'
1498+
}
1499+
}
1500+
},
1501+
auth: { system: ['admin', 'user'] }
1502+
},
1503+
1504+
delete_expired_delete_markers: {
1505+
method: 'DELETE',
1506+
params: {
1507+
type: 'object',
1508+
required: [
1509+
'bucket',
1510+
],
1511+
properties: {
1512+
bucket: { $ref: 'common_api#/definitions/bucket_name' },
1513+
prefix: {
1514+
type: 'string',
1515+
},
1516+
size_less: {
1517+
type: 'integer'
1518+
},
1519+
size_greater: {
1520+
type: 'integer'
1521+
},
1522+
tags: {
1523+
$ref: 'common_api#/definitions/tagging'
1524+
},
1525+
limit: {
1526+
type: 'integer'
1527+
},
1528+
reply_objects: {
1529+
type: 'boolean'
1530+
}
1531+
},
1532+
},
1533+
reply: {
1534+
type: 'object',
1535+
properties: {
1536+
num_objects_deleted: {
1537+
type: 'integer'
1538+
}
1539+
}
1540+
},
1541+
auth: { system: ['admin', 'user'] }
1542+
},
14131543
},
14141544

14151545
definitions: {

src/deploy/NVA_build/standalone_deploy.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ function main() {
7373
mkdir -p storage/backingstores/drive1
7474
execute "npm -- run backingstore storage/backingstores/drive1 --port 9991" backingstore1.log
7575
sleep 30
76+
77+
# Wait if stdin is attached
78+
if [ -t 0 ]; then wait; fi
7679
}
7780

7881
main

src/sdk/nb.d.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -737,6 +737,11 @@ interface DBSequence {
737737
nextsequence(): Promise<number>;
738738
}
739739

740+
interface sqlResult<T> {
741+
rows: T[],
742+
rowCount: number | null,
743+
}
744+
740745
interface DBCollection {
741746
find(query?: object, options?: object): Promise<DBDoc[]>;
742747
findOne(query?: object, options?: object): Promise<DBDoc>;
@@ -761,6 +766,9 @@ interface DBCollection {
761766
stats(): Promise<mongodb.CollStats>;
762767

763768
validate(doc: object, warn?: 'warn'): object;
769+
770+
executeSQL<T>(query: string, params: Array<any>, options?: { query_name?: string }): Promise<sqlResult<T>>;
771+
name: any;
764772
}
765773

766774
type DBDoc = any;

0 commit comments

Comments
 (0)