Issue #4518
closedModules are not copied during recursive copy of modular errata
Description
Concern¶
The behavior in 2.18.1 is incorrect for modular errata copy which could affect Katello.
The correct behavior is now seen, recently, in 2-master.
Verified incorrect behavior with Tanya.
Chronology¶
A regression in test_modular_copy.py [0] was noted in nightly [1] once libsolv [2] was resolved by pcreech (thanks!) on 3/3/2019 in #4405.
Upon looking through the newly delivered modular documentation [3], it appears that that current behavior in 2-master is correct and the behavior test_modular_copy.py and resulting behavior in 2.18.1-stable is incorrect (and has been since Sept 2018 [0]).
The test was originally written and approved without the understanding of the modulemd copies needed as part of the errata.
Please note the CLI examples below for comparisons between 2.18.1 and latest 2-master for all permutations of --recursive and --recursive-conservative through the CLI.
Test Update¶
The test with the correct modular errata copy behavior check [4] is already submitted and awaiting development designation of problem scope before implementing into test repositories.
Until then, we have a known, failing test in nightly.
2.18.1 Behaviors (since Sept 21 2018 - 2.18.1-GA) [incorrect]¶
--recursive¶
[root@rhel76-218 ~]# pulp-admin rpm repo copy errata --str-eq="errata_id=RHEA-2012:0059" --from-repo-id=test --to-repo-id=new --recursive
This command may be exited via ctrl+c without affecting the request.
[\]
Running...
Copied:
erratum:
RHEA-2012:0059
rpm:
duck-0.7-1-noarch
kangaroo-0.3-1-noarch
--recursive-conservative¶
[root@rhel76-218 ~]# pulp-admin rpm repo copy errata --str-eq="errata_id=RHEA-2012:0059" --from-repo-id=test --to-repo-id=new --recursive-conservative
This command may be exited via ctrl+c without affecting the request.
[\]
Running...
Copied:
erratum:
RHEA-2012:0059
rpm:
duck-0.7-1-noarch
kangaroo-0.3-1-noarch
Both¶
[root@rhel76-218 ~]# pulp-admin rpm repo copy errata --str-eq="errata_id=RHEA-2012:0059" --from-repo-id=test --to-repo-id=new --recursive-conservative --recursive
This command may be exited via ctrl+c without affecting the request.
[\]
Running...
Copied:
erratum:
RHEA-2012:0059
rpm:
duck-0.7-1-noarch
kangaroo-0.3-1-noarch
2.19 Behaviors (testable since libsolv issues were resolved on ~3/1) [correct]¶
--recursive¶
[root@rhel76-219 ~]# pulp-admin rpm repo copy errata --str-eq="errata_id=RHEA-2012:0059" --from-repo-id=test --to-repo-id=new --recursive
This command may be exited via ctrl+c without affecting the request.
[\]
Running...
Copied:
erratum:
RHEA-2012:0059
modulemd:
duck-0-20180730233102-deadbeef-noarch
kangaroo-0-20180730223407-deadbeef-noarch
rpm:
duck-0.7-1-noarch
kangaroo-0.3-1-noarch
--recursive-conservative¶
[root@rhel76-219 ~]# pulp-admin rpm repo copy errata --str-eq="errata_id=RHEA-2012:0059" --from-repo-id=test --to-repo-id=new --recursive-conservative
This command may be exited via ctrl+c without affecting the request.
[\]
Running...
Copied:
erratum:
RHEA-2012:0059
modulemd:
duck-0-20180730233102-deadbeef-noarch
kangaroo-0-20180730223407-deadbeef-noarch
rpm:
duck-0.7-1-noarch
kangaroo-0.3-1-noarch
Both¶
[root@rhel76-219 ~]# pulp-admin rpm repo copy errata --str-eq="errata_id=RHEA-2012:0059" --from-repo-id=test --to-repo-id=new --recursive-conservative --recursive
This command may be exited via ctrl+c without affecting the request.
[\]
Running...
Copied:
erratum:
RHEA-2012:0059
modulemd:
duck-0-20180730233102-deadbeef-noarch
kangaroo-0-20180730223407-deadbeef-noarch
rpm:
duck-0.7-1-noarch
kangaroo-0.3-1-noarch
Related issues
Introduce modular deps processing
Modulemd and modulemd_defaults are now exposed to the libsolv solver. This allows for the (inter-)modular dependencies to be processed when copying a unit. Bot the relaxed and conservative dependency processing algorithms work with the functionality this patch introduces.
Fixes #3740 https://pulp.plan.io/issues/3740