-
Notifications
You must be signed in to change notification settings - Fork 53
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
Fix deploy function of NNCP #2267
Conversation
If the the deploy func fails, clean_up func of resource is called at the except section. But the args this call using wrong name. This has to be fixed, because otherwise the NNCP resource doesn't get cleaned_up upon failure. Signed-off-by: Harel Meir <hmeir@redhat.com>
WalkthroughThe pull request involves a modification to the Changes
Finishing Touches
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
Documentation and Community
|
Report bugs in Issues The following are automatically added:
Available user actions:
Supported /retest check runs
Supported labels
|
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
🔭 Outside diff range comments (1)
ocp_resources/node_network_configuration_policy.py (1)
Add test coverage for NodeNetworkConfigurationPolicy deploy method
The verification confirms there are no tests covering the NNCP deploy method's error handling. Critical scenarios that need test coverage:
- Exception handling during wait_for_status_success()
- Proper cleanup sequence execution
- Parent class exit invocation
- Error logging verification
🔗 Analysis chain
Line range hint
299-307
: Add test coverage for error handling scenarios.The deploy method contains critical error handling and cleanup logic. Please add test cases to verify:
- The cleanup is triggered correctly when errors occur
- The error is properly logged and re-raised
- The parent's exit is called as expected
Let's check for existing test coverage:
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check for test files covering the deploy method # Look for test files related to NNCP fd -e py test_.*node_network_configuration_policy # Search for deploy method tests rg -l "test.*deploy" -g "test_*node_network_configuration_policy*.py"Length of output: 274
Script:
#!/bin/bash # Cast a wider net to find test files and deploy-related tests # Find all test files in the codebase fd -t f -e py "test_.*\.py$" # Search for any deploy-related test patterns in Python files rg -l "def test.*deploy" -t py # Search for NNCP class usage in test files rg -l "NodeNetworkConfigurationPolicy" -t py # Look for error handling test patterns rg "def test.*error|def test.*exception" -t pyLength of output: 806
🧹 Nitpick comments (1)
ocp_resources/node_network_configuration_policy.py (1)
Line range hint
299-307
: Consider enhancing the error handling.While the current implementation is functional, consider these improvements:
- Be more specific about which exceptions to catch instead of using a broad
Exception
- Add more context to the error message about what failed
- Add a docstring explaining the cleanup sequence
Example enhancement:
def deploy(self, wait=False): + """Deploy the network configuration policy. + + Args: + wait (bool): Whether to wait for the creation to complete + + Raises: + NNCPConfigurationFailed: If the configuration fails + TimeoutExpiredError: If waiting for success status times out + """ self.ipv4_ports_backup() self.ipv6_ports_backup() self.create(wait=wait) try: self.wait_for_status_success() return self - except Exception as exp: - self.logger.error(exp) + except (NNCPConfigurationFailed, TimeoutExpiredError) as exp: + self.logger.error(f"Failed to deploy {self.name}: {exp}") super().__exit__() raise
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
ocp_resources/node_network_configuration_policy.py
(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: tox
- GitHub Check: python-module-install
🔇 Additional comments (1)
ocp_resources/node_network_configuration_policy.py (1)
304-304
: LGTM! Clean up the error handling.The simplified
super().__exit__()
call is correct and achieves the same result as the previous explicit parameter version. This change makes the code more concise without affecting the functionality.
/verified |
/cherry-pick v4.17 v4.16 |
If the the deploy func fails, clean_up func of resource is called at the except section. But the args this call using wrong name. This has to be fixed, because otherwise the NNCP resource doesn't get cleaned_up upon failure. Signed-off-by: Harel Meir <hmeir@redhat.com>
Cherry-picked PR Fix deploy function of NNCP into v4.16 |
If the the deploy func fails, clean_up func of resource is called at the except section. But the args this call using wrong name. This has to be fixed, because otherwise the NNCP resource doesn't get cleaned_up upon failure. Signed-off-by: Harel Meir <hmeir@redhat.com>
Cherry-picked PR Fix deploy function of NNCP into v4.17 |
If the the deploy func fails, clean_up func of resource is called at the except section. But the args this call using wrong name. This has to be fixed, because otherwise the NNCP resource doesn't get cleaned_up upon failure. Signed-off-by: Harel Meir <hmeir@redhat.com> Co-authored-by: Harel Meir <hmeir@redhat.com>
If the the deploy func fails, clean_up func of resource is called at the except section. But the args this call using wrong name. This has to be fixed, because otherwise the NNCP resource doesn't get cleaned_up upon failure. Signed-off-by: Harel Meir <hmeir@redhat.com> Co-authored-by: Harel Meir <hmeir@redhat.com>
Short description:
If the the deploy func fails, clean_up func of resource is called at the except section. But the args this call using wrong name.
More details:
This has to be fixed, because otherwise the NNCP resource doesn't get cleaned up upon failure.
Which issue(s) this PR fixes:
automation bug fix.
Bug:
automation bug fix.
Summary by CodeRabbit