[config reload] Skip swss readiness check when swss is not present#4606
Open
william8545 wants to merge 1 commit into
Open
[config reload] Skip swss readiness check when swss is not present#4606william8545 wants to merge 1 commit into
william8545 wants to merge 1 commit into
Conversation
config reload's pre-flight gate calls _swss_ready(), which fails on platforms that do not ship the swss container (e.g. BMC): swss.service reads LoadState=not-found, so the gate blocks reload unless -f is passed. Treat a swss service whose LoadState is not-found or masked as "nothing to wait for" in _per_namespace_swss_ready(), so config reload proceeds without -f. No behavior change on platforms that ship swss, where swss.service is loaded and the existing active/settle checks still apply. Add unit tests for the not-found/masked (ready) paths and regression guards for the loaded/inactive and active/settle behavior. Signed-off-by: William Tsai <willtsai@nvidia.com>
Collaborator
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What I did
config reload(without-f) fails on platforms that do not ship the swss container (e.g. BMC) withswss container is not ready. Retry later or use -f to avoid system checks. The readiness gate waits on aswss.servicethat does not exist on such images, so reload can never proceed without-f. This makes the gate skip the wait when swss is not present.How I did it
In
_per_namespace_swss_ready(), check the service's systemdLoadStatefirst. If it isnot-found(service not built into the image) ormasked, return ready — there is no swss to wait for. Platforms that ship swss readLoadState=loaded, so the existing active/120s-settle checks are unchanged. Added unit tests for the not-found/masked paths and regression guards for the loaded/inactive and active/settle behavior.How to verify it
pytest tests/config_test.py::TestSwssReadyswss.serviceisnot-found):config reload -yproceeds instead of aborting.Previous command output (if the output of a command-line utility has changed)
New command output (if the output of a command-line utility has changed)