Fix verbs in manifestlist
All registry_tests now pass
This commit is contained in:
parent
783c9e7a73
commit
3c8b87e086
18 changed files with 517 additions and 247 deletions
|
@ -28,10 +28,10 @@ class SquashedDockerImageFormatter(TarImageFormatter):
|
|||
# daemon dies when trying to load the entire tar into memory.
|
||||
SIZE_MULTIPLIER = 1.2
|
||||
|
||||
def stream_generator(self, namespace, repository, tag, synthetic_image_id,
|
||||
layer_json, get_image_iterator, get_layer_iterator, get_image_json):
|
||||
def stream_generator(self, namespace, repository, tag, repo_image, synthetic_image_id,
|
||||
get_image_iterator, get_layer_iterator):
|
||||
image_mtime = 0
|
||||
created = next(get_image_iterator()).created
|
||||
created = next(get_image_iterator()).v1_metadata.created
|
||||
if created is not None:
|
||||
image_mtime = calendar.timegm(created.utctimetuple())
|
||||
|
||||
|
@ -58,7 +58,7 @@ class SquashedDockerImageFormatter(TarImageFormatter):
|
|||
yield self.tar_folder(synthetic_image_id, mtime=image_mtime)
|
||||
|
||||
# Yield the JSON layer data.
|
||||
layer_json = SquashedDockerImageFormatter._build_layer_json(layer_json, synthetic_image_id)
|
||||
layer_json = SquashedDockerImageFormatter._build_layer_json(repo_image, synthetic_image_id)
|
||||
yield self.tar_file(synthetic_image_id + '/json', json.dumps(layer_json), mtime=image_mtime)
|
||||
|
||||
# Yield the VERSION file.
|
||||
|
@ -70,10 +70,10 @@ class SquashedDockerImageFormatter(TarImageFormatter):
|
|||
# In V1 we have the actual uncompressed size, which is needed for back compat with
|
||||
# older versions of Docker.
|
||||
# In V2, we use the size given in the image JSON.
|
||||
if image.storage.uncompressed_size:
|
||||
estimated_file_size += image.storage.uncompressed_size
|
||||
if image.blob.uncompressed_size:
|
||||
estimated_file_size += image.blob.uncompressed_size
|
||||
else:
|
||||
image_json = get_image_json(image)
|
||||
image_json = image.compat_metadata
|
||||
estimated_file_size += image_json.get('Size', 0) * SquashedDockerImageFormatter.SIZE_MULTIPLIER
|
||||
|
||||
# Make sure the estimated file size is an integer number of bytes.
|
||||
|
@ -112,7 +112,8 @@ class SquashedDockerImageFormatter(TarImageFormatter):
|
|||
|
||||
|
||||
@staticmethod
|
||||
def _build_layer_json(layer_json, synthetic_image_id):
|
||||
def _build_layer_json(repo_image, synthetic_image_id):
|
||||
layer_json = repo_image.compat_metadata
|
||||
updated_json = copy.deepcopy(layer_json)
|
||||
updated_json['id'] = synthetic_image_id
|
||||
|
||||
|
|
Reference in a new issue