Retarget hard links pointing to deleted files by emitting the deleted file contents under the first hard link instance. This fixes a breakage in the squashed TAR where we were pointing hard links to missing data.

Fixes https://jira.coreos.com/browse/QUAY-885
This commit is contained in:
Joseph Schorr 2018-03-21 16:05:27 -04:00
parent 041a7fcd36
commit 110366f656
8 changed files with 337 additions and 252 deletions

View file

@ -29,7 +29,7 @@ class SquashedDockerImageFormatter(TarImageFormatter):
SIZE_MULTIPLIER = 1.2
def stream_generator(self, repo_image, tag, synthetic_image_id, get_image_iterator,
get_layer_iterator):
tar_stream_getter_iterator):
image_mtime = 0
created = next(get_image_iterator()).v1_metadata.created
if created is not None:
@ -42,7 +42,7 @@ class SquashedDockerImageFormatter(TarImageFormatter):
# json - The layer JSON
# layer.tar - The tarballed contents of the layer
# VERSION - The docker import version: '1.0'
layer_merger = StreamLayerMerger(get_layer_iterator)
layer_merger = StreamLayerMerger(tar_stream_getter_iterator)
# Yield the repositories file:
synthetic_layer_info = {}