Story #5179

Updated by almost 5 years ago

 h3. Workflow 

 Removal of docker content unit would allow removal of the content unit in question if no content unit on a higher level references it. If it can be removed, all (otherwise unused) content units on lower levels are removed deleted recursively. 

  * When a docker image manifest is removed, all its blobs( not referenced by other image manifests) are removed as well. If docker manifest is referenced by tags, or by manifest lists, removal is not possible. possible unless force flag is specified. 

  * When a docker manifest list is removed, all its manifests( not referenced by other manifests lists and not tagged) are removed as well. Furthermore, same story with the blobs. If docker manifest list is referenced by tags,    removal is not possible unless force flag is specified. 

  * (Behavior change from pulp 2) When a tag is removed, all unreferenced content removed , only tag is also removed.    If a tagged removed if manifest/manifest_list it references has other tags or other references, only the tag otherwise manifest/manifest list is removed.  

 removed as well along with unreferenced blobs. 

 * Removal of blobs will not be possible unless it has no references. 


 POST v3/docker/recursive-remove content_hrefs=[] repo/repo_version=X 

 When removal is not possible because of higher level references, a list of _hrefs of those references will be returned along with the user friendly message.