This repository has been archived by the owner on Aug 28, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Base implementation with fetch/push functionality #6
Conversation
This file contains 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
Takes the same version as from the remote-apis repository.
Just send back UNIMPLEMENTED errors at the moment. Uses the CAS BlobAccessCreator for the storage. In future it might be neat to implement a BlobAccessCreator proper, and add CompletenessChecking and so on.
Takes the same version as from the remote-apis repository.
Allows easier use of the AssetReference in the servers.
Adds a thin wrapper around BlobAccess in order to allow direct usage of the AssetReference. Makes the API nicer.
At the moment we only store the Digest of the asset, but in future we may want to store the timestamp/qualifiers too. Additionally renames ReferenceStore -> AssetStore to simplify naming conventions.
This adds an implementation for downloading HTTP blobs and placing them into the CAS.
This involves adding internal buffering of downloaded blobs inside of DownloadBlob, this is not ideal but is required for hashing of response body contents until a non consuming method is found.
This brings us in line with the spec.
Vital to allow us to use a custom proto in the blobaccess storage, and also to avoid automatic checksumming with the CAS blob access
Prevents non allowed instances from fetching blobs and pushing them to the CAS.
This fetcher validates the requests for FetchBlob and FetchDirectory to ensure they meet common validity criteria.
This fetcher is a blank fetcher which simply returns NotFound to all requests, this can be wrapped by CachingFetcher to configure an instance which does not perform any server side fetching.
This adds some handling of timestamps to make sure that we obey the expire_at and oldest_content_accepted parts of the spec.
Replaces NotFound and Unimplemented Fetchers.
Also fixes a bug in which we were trying to cache failed responses.
Adds Github Actions from bb-storage. Additionally appeases all of the various linters and tools used in the pipeline.
We should remove the branch CI at some point, but I think that can wait until this is merged. |
tomcoldrick-ct
approved these changes
Aug 11, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One nit we might want to address is tidying up the go imports, I think the other bb-* repos split local imports into a separate block.
Agreed.
Agreed. We can address this in a follow up PR. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Functionality:
Tested with buildstream (remote-asset) / bazel (3.3.1)
Related issues: #1, #2, #3