Skip to content

Conversation

likewu
Copy link
Contributor

@likewu likewu commented Aug 28, 2025

upgrade ilm feature.

Type of Change

  • New Feature
  • Bug Fix
  • Documentation
  • Performance Improvement
  • Test/CI
  • Refactor
  • Other:

likewu added 30 commits July 5, 2025 18:15
…up/ilm

# Conflicts:
#	crates/ecstore/src/client/api_get_object_acl.rs
#	crates/ecstore/src/client/api_get_object_attributes.rs
#	crates/ecstore/src/client/api_restore.rs
#	crates/ecstore/src/client/api_stat.rs
#	rustfs/src/storage/ecfs.rs
…up/ilm

# Conflicts:
#	rustfs/src/admin/handlers/tier.rs
…up/ilm

# Conflicts:
#	Cargo.lock
#	Cargo.toml
Copy link

github-actions bot commented Aug 28, 2025

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@houseme houseme requested review from Copilot and weisd August 30, 2025 11:05
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR upgrades the ILM (Information Lifecycle Management) feature to enhance object lifecycle management capabilities, particularly around version handling and transitioning objects between storage tiers.

  • Added support for noncurrent version expiration limit handling with proper Arc pattern for the Lifecycle trait
  • Implemented comprehensive integration tests for lifecycle expiry, delete markers, and transition scenarios
  • Enhanced the scanner to properly handle version-aware lifecycle processing with file info validation

Reviewed Changes

Copilot reviewed 8 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
crates/filemeta/src/filemeta.rs Enhanced version management logic with update_version control flow and transition status handling
crates/ecstore/src/bucket/lifecycle/lifecycle.rs Updated Lifecycle trait method signature and environment variable naming for ILM configuration
crates/ecstore/src/bucket/lifecycle/bucket_lifecycle_ops.rs Updated environment variable names and added debug tracing capabilities
crates/ahm/tests/lifecycle_integration_test.rs Added comprehensive integration tests for lifecycle operations including delete markers and transitions
crates/ahm/src/scanner/lifecycle.rs Major refactoring to support version-aware lifecycle processing with proper object info handling
crates/ahm/src/scanner/data_scanner.rs Enhanced data scanner to integrate with new lifecycle processing capabilities
crates/ahm/Cargo.toml Added time dependency for temporal operations
.vscode/launch.json Added debug configuration for lifecycle integration tests

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment on lines +544 to +547
/*if fi.version_purge_status().is_empty()
{
update_version = fi.mark_deleted;
}*/
Copy link
Preview

Copilot AI Aug 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commented-out code should be removed rather than left in place. If this logic might be needed in the future, consider documenting the reasoning in a separate comment.

Suggested change
/*if fi.version_purge_status().is_empty()
{
update_version = fi.mark_deleted;
}*/

Copilot uses AI. Check for mistakes.

Comment on lines 327 to 328
if let Some(days) = expiration.days {
let expected_expiry = expected_expiry_time(obj.mod_time.expect("err!"), days /*, date*/);
Copy link
Preview

Copilot AI Aug 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The commented-out parameter , date in the function call should be removed for cleaner code.

Suggested change
if let Some(days) = expiration.days {
let expected_expiry = expected_expiry_time(obj.mod_time.expect("err!"), days /*, date*/);
let expected_expiry = expected_expiry_time(obj.mod_time.expect("err!"), days);

Copilot uses AI. Check for mistakes.

</Rule>
<Rule>
<ID>test-rule2</ID>
<Status>Desabled</Status>
Copy link
Preview

Copilot AI Aug 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo in the XML status value. 'Desabled' should be 'Disabled'.

Suggested change
<Status>Desabled</Status>
<Status>Disabled</Status>

Copilot uses AI. Check for mistakes.

async fn test_lifecycle_transition_basic() {
let (_disk_paths, ecstore) = setup_test_env().await;

//create_test_tier().await;
Copy link
Preview

Copilot AI Aug 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commented-out function call should be removed if not needed, or uncommented if it's required for the test.

Suggested change
//create_test_tier().await;

Copilot uses AI. Check for mistakes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants