Bug 1622791
Summary: | [RFE] rewrite beaker-repo-update to not use yum/urlgrabber, improve it | ||
---|---|---|---|
Product: | [Retired] Beaker | Reporter: | Dan Callaghan <dcallagh> |
Component: | general | Assignee: | Renan Rodrigo Barbosa <rebarbos> |
Status: | CLOSED NEXTRELEASE | QA Contact: | tools-bugs <tools-bugs> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 25 | CC: | bpeck, tklohna |
Target Milestone: | 27.0 | Keywords: | FutureFeature, Patch, Triaged |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Enhancement | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2019-11-27 15:32:56 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Dan Callaghan
2018-08-28 03:46:22 UTC
Another improvement to the list: * don't use any cached repodata, or only use cached repodata after first checking repomd.xml and ensuring that the repodata we are reusing matches the checksum of the current repodata. In bug 1619969 I noticed that in certain error conditions, Yum falls back to using a local cache of the repodata left behind in /var/tmp/yum-* but that is never what we want. I've implemented some of the above improvements within the existing Yum-based command for bug 1619969, but it would still be nicer if we can clean it up and simplify it by avoiding the Yum APIs which are very difficult to use correctly. There is another issue I noticed while working on this. I don't think we have ever hit it so it is purely theoretical, but it would be good to fix it up in this new implementation. If you interrupt beaker-repo-update while it's running createrepo, or if the createrepo fails for some reason, and then you re-run beaker-repo-update to do it again -- it won't actually do it. That's because, as an optimsation, it avoids running createrepo if it hasn't downloaded any new packages in a repo. I am not sure what the best way to keep that optimisation while avoiding this problem if createrepo fails. But some ideas come to mind like, checking modtime on the repodata directory, or using a .dirty marker file whenever a new package is downloaded and then only removing the marker file after createrepo has been successfully executed. |