@@ -376,7 +376,7 @@ class NCLifecycle {
376376 */
377377 async get_candidates ( bucket_json , lifecycle_rule , object_sdk ) {
378378 const candidates = { abort_mpu_candidates : [ ] , delete_candidates : [ ] } ;
379- const versions_list = undefined ;
379+ const params = { versions_list : undefined } ;
380380 if ( lifecycle_rule . expiration ) {
381381 candidates . delete_candidates = await this . get_candidates_by_expiration_rule ( lifecycle_rule , bucket_json ,
382382 object_sdk ) ;
@@ -385,7 +385,7 @@ class NCLifecycle {
385385 lifecycle_rule ,
386386 bucket_json ,
387387 object_sdk ,
388- { versions_list }
388+ params
389389 ) ;
390390 candidates . delete_candidates = candidates . delete_candidates . concat ( dm_candidates ) ;
391391 }
@@ -395,7 +395,7 @@ class NCLifecycle {
395395 lifecycle_rule ,
396396 bucket_json ,
397397 object_sdk ,
398- { versions_list }
398+ params
399399 ) ;
400400 candidates . delete_candidates = candidates . delete_candidates . concat ( non_current_candidates ) ;
401401 }
@@ -528,12 +528,13 @@ class NCLifecycle {
528528 * @param {Object } bucket_json
529529 * @returns {Promise<Object[]> }
530530 */
531- async get_candidates_by_expiration_delete_marker_rule ( lifecycle_rule , bucket_json , object_sdk , { versions_list } ) {
531+ async get_candidates_by_expiration_delete_marker_rule ( lifecycle_rule , bucket_json , object_sdk , params ) {
532532 const rule_state = this . _get_rule_state ( bucket_json , lifecycle_rule ) . noncurrent ;
533- if ( rule_state . is_finished ) return [ ] ;
534- if ( ! versions_list ) {
535- versions_list = await this . load_versions_list ( object_sdk , lifecycle_rule , bucket_json , rule_state ) ;
533+ if ( ! params . versions_list ) {
534+ if ( rule_state . is_finished ) return [ ] ;
535+ params . versions_list = await this . load_versions_list ( object_sdk , lifecycle_rule , bucket_json , rule_state ) ;
536536 }
537+ const versions_list = params . versions_list ;
537538 const candidates = [ ] ;
538539 const expiration = lifecycle_rule . expiration ?. days ? this . _get_expiration_time ( lifecycle_rule . expiration ) : 0 ;
539540 const filter_func = this . _build_lifecycle_filter ( { filter : lifecycle_rule . filter , expiration} ) ;
@@ -630,13 +631,14 @@ class NCLifecycle {
630631 * @param {Object } bucket_json
631632 * @returns {Promise<Object[]> }
632633 */
633- async get_candidates_by_noncurrent_version_expiration_rule ( lifecycle_rule , bucket_json , object_sdk , { versions_list } ) {
634+ async get_candidates_by_noncurrent_version_expiration_rule ( lifecycle_rule , bucket_json , object_sdk , params ) {
634635 const rule_state = this . _get_rule_state ( bucket_json , lifecycle_rule ) . noncurrent ;
635- if ( rule_state . is_finished ) return [ ] ;
636636
637- if ( ! versions_list ) {
638- versions_list = await this . load_versions_list ( object_sdk , lifecycle_rule , bucket_json , rule_state ) ;
637+ if ( ! params . versions_list ) {
638+ if ( rule_state . is_finished ) return [ ] ;
639+ params . versions_list = await this . load_versions_list ( object_sdk , lifecycle_rule , bucket_json , rule_state ) ;
639640 }
641+ const versions_list = params . versions_list ;
640642
641643 const filter_func = this . _build_lifecycle_filter ( { filter : lifecycle_rule . filter , expiration : 0 } ) ;
642644 const num_newer_versions = lifecycle_rule . noncurrent_version_expiration . newer_noncurrent_versions ;
@@ -652,7 +654,6 @@ class NCLifecycle {
652654 }
653655 }
654656 }
655-
656657 return delete_candidates ;
657658 }
658659 ////////////////////////////////////
@@ -756,8 +757,12 @@ class NCLifecycle {
756757 const expiration_date = new Date ( expiration_rule . date ) . getTime ( ) ;
757758 if ( Date . now ( ) < expiration_date ) return - 1 ;
758759 return 0 ;
760+ } else if ( expiration_rule . days ) {
761+ return expiration_rule . days ;
762+ } else {
763+ //expiration delete marker rule
764+ return - 1 ;
759765 }
760- return expiration_rule . days ;
761766 }
762767
763768 ////////////////////////////////
0 commit comments