ECR: implement layer upload APIs - #10195
Open
JonnasFigueiredo wants to merge 1 commit into
Open
Conversation
Implements the ECR image-layer push flow that previously raised NotImplementedError: - initiate_layer_upload - upload_layer_part - complete_layer_upload - batch_check_layer_availability InitiateLayerUpload returns an uploadId and part size; parts are accumulated per upload and CompleteLayerUpload derives the layer digest from the uploaded bytes (sha256) and stores the layer on the repository. BatchCheckLayerAvailability reports AVAILABLE layers and returns MissingLayerDigest/InvalidLayerDigest failures otherwise. Adds an UploadNotFoundException for unknown upload ids and acceptance tests covering the full flow and error cases.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the ECR image-layer push flow, which previously raised
NotImplementedError:InitiateLayerUploadUploadLayerPartCompleteLayerUploadBatchCheckLayerAvailabilityBehavior
uploadIdand an advisorypartSize.layerPartBlobper upload and returnslastByteReceived.sha256:...), stores the layer on the repository, and returnslayerDigest. An unknownuploadIdraises the newUploadNotFoundException.AVAILABLE(withlayerSize/mediaType) and reportsMissingLayerDigest/InvalidLayerDigestfailures otherwise.This makes it possible to exercise image-push style workflows (initiate → upload part(s) → complete → check availability) against mocked ECR.
Tests
tests/test_ecr/test_ecr_layers.pycovers the full single-part and multi-part push flow, availability checks (present / missing / invalid digest), and the unknown-upload error cases. The completetests/test_ecrsuite passes, andmypy,ruff, andblackare clean on the changed files.