-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test(integration): test_rwx.py support v2 volume #2201
Conversation
WalkthroughThe pull request modifies the Changes
Poem
Tip CodeRabbit's docstrings feature is now available as part of our Early Access Program! Simply use the command Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
- test_rwx.py longhorn/longhorn-9760 Signed-off-by: Chris Chien <[email protected]>
06d4134
to
7868406
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
manager/integration/tests/test_rwx.py (3)
Line range hint
34-39
: Consider enhancing error handling in the utility functionThe write_data_into_pod function could benefit from try-except blocks to handle potential I/O errors during writing.
def write_data_into_pod(pod_name_and_data_path): pod_info = pod_name_and_data_path.split(':') - core_api = get_core_api_client() # NOQA - write_pod_volume_random_data(core_api, pod_info[0], pod_info[1], - DATA_SIZE_IN_MB_3) + try: + core_api = get_core_api_client() + write_pod_volume_random_data(core_api, pod_info[0], pod_info[1], + DATA_SIZE_IN_MB_3) + except Exception as e: + print(f"Error writing data to pod {pod_info[0]}: {str(e)}") + raise
592-598
: Consider extracting common setup codeMultiple test functions share similar setup code for creating storage class, PVC, and deployment. Consider extracting this into a fixture or helper function.
def setup_rwx_test_environment(core_api, pvc, storage_class, name_prefix, size=1*Gi): """Helper function to setup RWX test environment""" create_storage_class(storage_class) pvc_name = f'pvc-{name_prefix}' pvc['metadata']['name'] = pvc_name pvc['spec']['storageClassName'] = storage_class['metadata']['name'] pvc['spec']['accessModes'] = ['ReadWriteMany'] pvc['spec']['resources']['requests']['storage'] = str(size) core_api.create_namespaced_persistent_volume_claim( body=pvc, namespace='default') return pvc_name
Line range hint
547-562
: TODO: Implement online expansion testThe skipped test case for online expansion should be implemented to ensure complete test coverage.
Would you like me to help implement the online expansion test case or create a GitHub issue to track this task?
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
manager/integration/tests/test_rwx.py
(23 hunks)
🔇 Additional comments (3)
manager/integration/tests/test_rwx.py (3)
27-27
: LGTM: Import changes look good
The addition of DATA_ENGINE import supports the v2 volume testing functionality.
Also applies to: 28-28
Line range hint 701-755
: LGTM: Well-implemented mount options test
The test_rwx_volume_mount_options function thoroughly verifies custom NFS mount options and includes proper cleanup.
508-508
: Verify DATA_ENGINE compatibility
The addition of dataEngine parameter needs verification to ensure compatibility with both v1 and v2 volumes.
Also applies to: 509-509
✅ Verification successful
Let me gather more context about the volume creation usage to ensure a thorough verification.
Let me check for the DATA_ENGINE constant definition to complete the verification.
dataEngine parameter is correctly implemented for both v1 and v2 volumes
The codebase shows proper handling of dataEngine parameter:
- Default implementation in volume_keywords.py supports both v1 and v2 engines
- DATA_ENGINE constant is properly defined and used across test files
- Test functions are appropriately marked with @pytest.mark.v2_volume_test
- Conditional logic exists to handle different behaviors for v1 and v2 engines
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for other volume creation instances to ensure consistent usage of dataEngine
rg "create_volume.*dataEngine" --type py
Length of output: 299
Script:
#!/bin/bash
# Search for create_volume calls to see how dataEngine parameter is used
rg "create_volume\(" -A 3 --type py
# Also check for any v2 volume related test configurations
rg "v2_volume_test" --type py
Length of output: 61734
Script:
#!/bin/bash
# Search for DATA_ENGINE constant definition
rg "DATA_ENGINE\s*=" --type py
Length of output: 660
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Which issue(s) this PR fixes:
longhorn/longhorn#9760
What this PR does / why we need it:
test_rwx.py support v2 volume
Special notes for your reviewer:
N/A
Additional documentation or context
N/A
Summary by CodeRabbit
Bug Fixes
Tests
storage_class
parameter and updated method signatures accordingly.