Story #1684
closedRetain Old Repodata on Re-publish
0%
Description
When publishing, Pulp doesn't keep old repodata files, when metadata is changed, Pulp generates additive or completely new content of “repodata” directory. In both cases with checksums enabled, any change to the metadata contents results in a completely new filename since the checksum is the first portion of the filename.
Yum as a client caches the repomd.xml for some period of time, which names these files in the repodata directory which have checksums on them. Upon republish, older publish metadata should be left in tact so they can be found by a cached repomd.xml file. Old repodata files are kept up to 6 hours by default on Yum, so Pulp should clean up old metadata files older than 6 hours. Yum has this configuration in yum.conf as the metadata_expire
which is the time (in seconds) after which the metadata will expire.
This will be a new option on the Yum Distributor named metadata_retention_hours
specifying how long metadata should be retained in hours. This value may also be set to 0 which causes old repo metadata to be removed immediately on publish. This feature should default to 6 hours to align with the yum default.
Note that old metadata cannot be modified because its checksum would likely change which defeats the point of this feature. It should be left alone. Because of this, no attempt shall be made to update old metadata if packages are not found. In that case the yum client will receive a 404 which it can handle.
Related issues