Project

Profile

Help

Story #3408

Updated by bizhang about 6 years ago

A ManifestList object should subclass ContentUnit and contain the following additional fields: 

 * digest: CharField(255) 
 * mediaType: application/vnd.docker.distribution.manifest.list.v2+json 
 * manifests: ManyToManyField('Manifest', through='ManifestListManifest') 
 * amd64_digest: CharField(255) 
 * amd64_schema_version: IntegerField() 

 I'm not sure what the purpose of amd64_digest and amd64_schema_version are on the pulp2 model, so I've left it out of this for now. 

 ManifestListManifest is the thru table for ManifestList to Manifest relationship. Some fields on this model appears to be redundant to the fields found on the Manifest Model, but they are necessary because the provided json for a Manfiest List is not guaranteed to match the reality of a manifest. relationship 

 * ForeignKey to Manifest 
 * ForeignKey to ManifestList 
 * mediaType: ChoiceField() (application/vnd.docker.distribution.manifest.v1+json, application/vnd.docker.distribution.manifest.v2+json) 
 * size: IntegerField() 
 * digest: CharField(255) 
 * platform: ForeignKey to Platform 


 Platform (does not subclass ContentUnit): 

 * architecture: CharField(255) 
 * os: CharField(255) 
 * os.version: charField(255) 
 * os.features: ListField(CharField()) 
 * variant: CharField(255) 
 * features: ListField(CharField())  

Back