Project

Profile

Help

Issue #9583

Updated by ttereshc about 1 year ago

Currently [Pulp requires](https://github.com/pulp/pulp_rpm/blob/master/pulp_rpm/app/models/distribution.py#L133) the combination of the following fields to be unique: 
 ~~~ 
         unique_together = ( 
             "header_version", 
             "release_name", 
             "release_short", 
             "release_version", 
             "arch", 
             "build_timestamp", 
         ) 
 ~~~ 

 In some cases, it doesn't seem enough. 
 For some reason multiple repositories might have all those fields exactly the same and they differ in variants definition    only. Such are not proper distribution trees, the majority do not have any images associated. 

 Examples brought by always helpful @gdve from https://pulp.plan.io/issues/8566#note-33: 

 ~~~ 
 CentOS/8-stream/AppStream/x86_64/os/.treeinfo:build_timestamp = 1625615144 
 CentOS/8-stream/BaseOS/x86_64/os/.treeinfo:build_timestamp = 1625615155 
 CentOS/8-stream/HighAvailability/x86_64/os/.treeinfo:build_timestamp = 1625026406 
 CentOS/8-stream/PowerTools/x86_64/os/.treeinfo:build_timestamp = 1625026406 
 CentOS/8-stream/RT/x86_64/os/.treeinfo:build_timestamp = 1625026406 
 ~~~ 

 ~~~ 
 AlmaLinux/8.4/AppStream/x86_64/kickstart/.treeinfo:build_timestamp = 1622014553 
 AlmaLinux/8.4/AppStream/x86_64/os/.treeinfo:build_timestamp = 1622014553 
 AlmaLinux/8.4/BaseOS/x86_64/kickstart/.treeinfo:build_timestamp = 1622014553 
 AlmaLinux/8.4/BaseOS/x86_64/os/.treeinfo:build_timestamp = 1622014553 
 AlmaLinux/8.4/HighAvailability/x86_64/kickstart/.treeinfo:build_timestamp = 1622014558 
 AlmaLinux/8.4/HighAvailability/x86_64/os/.treeinfo:build_timestamp = 1622014558 
 AlmaLinux/8.4/PowerTools/x86_64/kickstart/.treeinfo:build_timestamp = 1622014558 
 AlmaLinux/8.4/PowerTools/x86_64/os/.treeinfo:build_timestamp = 1622014558 
 AlmaLinux/8.4/extras/x86_64/kickstart/.treeinfo:build_timestamp = 1622014558 
 AlmaLinux/8.4/extras/x86_64/os/.treeinfo:build_timestamp = 1622014558 
 ~~~ 

 Pulp 2to3 migration fails with `No declared artifact with relative path ".treeinfo" for content "<DistributionTree: pk=64f44866-0207-4005-9c06-0f45e52cbdd1>"`. 
 I would expect sync to behave the similarly, needs testing though.

Back