net: STD for dual-stream RHCOS 9/10 node migration network tests#4569
net: STD for dual-stream RHCOS 9/10 node migration network tests#4569azhivovk wants to merge 1 commit intoRedHatQE:mainfrom
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughFour new pytest modules are added to define connectivity regression test skeletons for live migration scenarios between RHCOS 9 and RHCOS 10 worker nodes across four network types (L2 bridge, localnet, primary network, and User Defined Network). Each module contains two Polarion-marked test functions with descriptive docstrings but no executable test logic. ChangesNetwork Connectivity Regression Test Skeletons
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Reasoning: Four nearly identical modules with high pattern repetition. Review involves verifying Polarion marker IDs are distinct and correct, confirming docstrings accurately describe each network type's migration scenario, checking 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Review rate limit: 0/1 reviews remaining, refill in 60 minutes.Comment |
|
Report bugs in Issues Welcome! 🎉This pull request will be automatically processed with the following features: 🔄 Automatic Actions
📋 Available CommandsPR Status Management
Review & Approval
Testing & Validation
Container Operations
Cherry-pick Operations
Label Management
✅ Merge RequirementsThis PR will be automatically approved when the following conditions are met:
📊 Review ProcessApprovers and ReviewersApprovers:
Reviewers:
Available Labels
AI Features
💡 Tips
For more information, please refer to the project documentation or contact the maintainers. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@tests/network/l2_bridge/mixed_nodes/test_primary_network_connectivity_mixed_nodes.py`:
- Around line 19-45: The Polarion marker value is duplicated (CNV-0) in the test
function
test_connectivity_over_primary_network_preserved_during_source_migration (and
across other mixed_nodes test modules), causing ambiguous test attribution;
update the pytest.mark.polarion decorator on this function to a unique
placeholder ID (e.g., CNV-0A) and ensure the other mixed_nodes modules
(functions with the same decorator such as in
test_l2_bridge_connectivity_mixed_nodes.py,
test_localnet_connectivity_mixed_nodes.py, test_udn_connectivity_mixed_nodes.py)
each get distinct placeholders (CNV-0B/C/D) or their final real Polarion IDs so
each test function has a unique polarion marker.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 695c7508-c3b6-4e04-aa6d-4fd9fd030b7e
📒 Files selected for processing (7)
tests/network/l2_bridge/mixed_nodes/__init__.pytests/network/l2_bridge/mixed_nodes/test_l2_bridge_connectivity_mixed_nodes.pytests/network/l2_bridge/mixed_nodes/test_primary_network_connectivity_mixed_nodes.pytests/network/localnet/mixed_nodes/__init__.pytests/network/localnet/mixed_nodes/test_localnet_connectivity_mixed_nodes.pytests/network/user_defined_network/mixed_nodes/__init__.pytests/network/user_defined_network/mixed_nodes/test_udn_connectivity_mixed_nodes.py
|
D/S test |
|
Change: remove client migration scenarios |
|
Change: Add polarion IDs |
|
|
Change: rename tests without mentioning node OS |
|
Change: apply bot's suggestion - primary interface test |
|
Change: rename modules |
nirdothan
left a comment
There was a problem hiding this comment.
IMHO it would have been beneficial to indicate that migration between OSs would be accomplished using node selectors targeting the os label, as is not exactly a standard procedure.
I guess it can be inferred from the preconditions "... VM connected to a Linux bridge network, running on an RHCOS 9 worker node via node selector".
Thus if anyone asks why the implementation did not use an anti-affinity rule you can reference the decision to here.
|
/verified |
Test execution plan request detailsCRITICAL: You MUST post an inline review comment on the first changed line of the first file. As an expert software testing engineer, analyze all modified files in this PR and create a targeted test execution plan. Analysis Requirements:
Your deliverable: Test Execution Plan
Guidelines:
Hardware-Related Checks (SR-IOV, GPU, DPDK): When PR modifies fixtures for hardware-specific resources:
CRITICAL WORKFLOW COMPLETION RULES: When responding to this test execution plan request, you MUST follow these rules EXACTLY:
ABSOLUTE PROHIBITIONS (violating these creates empty/meaningless reviews):
Remember: The pull request review is visible to users. Additional comments are redundant noise. CRITICAL: Before setting "Run smoke tests: True", you MUST use shell scripts to: |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: Length of output: 1785 🏁 Script executed: Length of output: 517 🏁 Script executed: Length of output: 138 🏁 Script executed: Length of output: 110 🏁 Script executed: Length of output: 1735 🧠 Learnings used |
EdDev
left a comment
There was a problem hiding this comment.
I commented only on the first test, but it relates to all the others.
| between RHCOS 9 and RHCOS 10 nodes. | ||
|
|
||
| Preconditions: | ||
| - Linux bridge Network Attachment Definition created |
There was a problem hiding this comment.
Why is this a direct precondition for the test? Do you intend to use it to perform a step or check some expectation?
If it is an indirect requirement, that should be a dependency of the VMs (and therefore, not specified here).
Another indirect dependency is the NNCP, through which the bridge itself isconfigure.
|
|
||
|
|
||
| @pytest.mark.polarion("CNV-15949") | ||
| def test_connectivity_preserved_during_server_migration(): |
There was a problem hiding this comment.
I do not understand if it is the primary or secondary checked here.
Please add details about the binding used.
There was a problem hiding this comment.
I was asked not to mention the setup twice if we can understand it from the package name.
Binding is implied by the test package - l2_bridge, and in primary network tests - primary_network.
If I add Linux bridge/primary, the name becomes too long #4569 (comment)
I edited it but I get conflicting reviews regarding the name.
There was a problem hiding this comment.
it lives under l2_bridge, how it can be primary?
|
|
||
| Steps: | ||
| 1. Live migrate the server VM to the RHCOS 10 node | ||
| 2. Live migrate the server VM back to the RHCOS 9 node |
There was a problem hiding this comment.
It looks to me like two different tests. Why these two steps are considered in the same test?
It would have made sense to me if the scenario (from a user perspective) would also fit. I mean, one scenario per test is fine. But I do not think it is the case.
There was a problem hiding this comment.
We do the migration trip rhcos9 -> 10 -> 9 in one test
Do you want me to split it to 2 tests: rchos9 (created) -> rhcos10 (migrated), rhcos10 (created)-> rhcos9 (migrated)?
I thought we can reuse the migrated vm to rhcos10 as if it was created on it and then we migrate to rhcos9 on the same test
There was a problem hiding this comment.
- I think a test should represent a user scenario. IMO a migration trip is not a user scenario.
- You should use the same VM and this is what has been done so far in other features as well. Please review the stuntime and/or the IP specification cases.
There was a problem hiding this comment.
"mixed nodes" does not sound expressive enough to me. It sounds like node slad to me :)
Maybe rhel9_rhel10_cluster.
STD for network connectivity tests on clusters with mixed RHCOS 9 and RHCOS 10 worker nodes. Tests cover four network types (Linux bridge, localnet, primary UDN, primary network) verifying connectivity is preserved during live migration of the server VM. Server VM migration is considered the more impactful scenario as it tests connectivity preservation from the endpoint holding the listening socket. Both migration directions are covered within other existing tests. Each network type has its own module with shared setup (NNCP, NAD) in the module-level preconditions. Signed-off-by: Asia Khromov <azhivovk@redhat.com> Assisted-by: Claude Sonnet 4.6
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@tests/network/user_defined_network/rhel9_rhel10_cluster/test_connectivity.py`:
- Around line 17-51: Rename the two test functions that collide with
primary-network tests to include UDN context: change
test_primary_connectivity_preserved_after_server_migration_to_rhcos10 and
test_primary_connectivity_preserved_after_server_migration_to_rhcos9 to unique
names such as
test_udn_primary_connectivity_preserved_after_server_migration_to_rhcos10 and
test_udn_primary_connectivity_preserved_after_server_migration_to_rhcos9 (or
similar including "udn" or "user_defined_network") in this file so pytest -k
filtering and reports no longer collide with the primary-network variants;
update any local references or markers (e.g., the `@pytest.mark.polarion`
decorators) accordingly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: e65123af-e2bb-41b9-a9e7-3df92d1abe20
📒 Files selected for processing (9)
tests/network/l2_bridge/rhel9_rhel10_cluster/__init__.pytests/network/l2_bridge/rhel9_rhel10_cluster/test_connectivity.pytests/network/localnet/rhel9_rhel10_cluster/__init__.pytests/network/localnet/rhel9_rhel10_cluster/test_connectivity.pytests/network/primary_network/__init__.pytests/network/primary_network/rhel9_rhel10_cluster/__init__.pytests/network/primary_network/rhel9_rhel10_cluster/test_connectivity.pytests/network/user_defined_network/rhel9_rhel10_cluster/__init__.pytests/network/user_defined_network/rhel9_rhel10_cluster/test_connectivity.py
STD for network connectivity tests on clusters with mixed RHCOS 9 and RHCOS 10 worker nodes.
Tests cover four network types (Linux bridge, localnet, primary UDN, primary network) verifying connectivity is preserved during live migration of the server VM.
Server VM migration is considered the more impactful scenario as it tests connectivity preservation from the endpoint holding the listening socket.
Both migration directions are covered within other existing tests.
Each network type has its own module with shared setup (NNCP, NAD) in the module-level preconditions.
jira-ticket: https://redhat.atlassian.net/browse/CNV-81981
Summary by CodeRabbit