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 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 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. 

  * When a tag is removed , only tag is removed if manifest/manifest_list it references has other tags or other references, otherwise manifest/manifest list is removed as well along with unreferenced blobs. 

 * Removal of blobs will not be possible unless it has noreferences 

 POST Endpoint : 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.