[PR #4421/bbe231e2 backport][stable-3] Bugfix: zypper issue with specified package versions #4445
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.
This is a backport of PR #4421 as merged into main (bbe231e).
zypper.py was doing nothing on state=present, when ALL requestet/checked packages had a specific version stated. This was caused by get_installed_state() being called with an empty package list, which in this case returns information about all ALL installed packages. This lead to an exessive filter list prerun_state, essentially removing all packages that are installed in ANY version on the target system from the request list.
SUMMARY
I added an empty check to prevent get_installed_state() being called with an empty package list.
Fixes ##4371
ISSUE TYPE
COMPONENT NAME
zypper
ADDITIONAL INFORMATION
The following task ALWAYS reported [ok] if ANY version of a-very-important-package was already installed on the target system.
As soon as at least ONE other package WITHOUT a version specification was requestet, everything worked as expected.
after my fix, that workaroud is not necessary and both of the above work as expected