summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/remote
AgeCommit message (Collapse)Author
2024-08-27CasClient: Fall back to single blob upload, if batch uploading made no progressKlaus Aehlig
We already accept short writes in batch uploads, but when no progress is made, we cannot simply retry, as this might lead to an infinite loop. Instead, we give up on batching and upload each blob one by one.
2024-08-23CasClient: Retry batch update for missing responseOliver Reiche
The remote execution protocol is a bit unclear about how to deal with blob updates for which we got no response. While some clients consider a blob update failed only if a failed response is received, we are going extra defensive here and also consider missing responses to be a failed blob update. Issue a retry for the missing blobs.
2024-08-22Remote-execution properties: restore the latest-wins semanticsKlaus Aehlig
... that was accidentially replaced by a first-wins semantics in 62d204ff4cc94c12c1635f189255710901682825 which fortunately did not make it to any release.
2024-08-07Extend BazelNetworkReader to avoid redundant conversionsMaksim Denisov
2024-08-07Avoid deep copies of containers in responses.Maksim Denisov
2024-08-07Remove code duplication in Populate method in responses.Maksim Denisov
2024-08-07Replace classic C boolean operators with keywordsMaksim Denisov
! => not; && => and, || => or
2024-08-01Execution API: support cwdKlaus Aehlig
... following the remote-execution standard that all output paths (but none of the input paths) are relative to the working directory. Therefore, the executor has to do the path translation. For our implementation of the API interface - the local API now handles cwd correctly, - the remote API forwards cwd correctly, and - the git API continues to report actions as not implemented.
2024-07-30Add extensible structure for remote execution-related entitiesPaul Cristian Sarbu
2024-07-22Rename HashFunction methods and enumsMaksim Denisov
2024-07-22Pass HashFunction to BazelApiMaksim Denisov
2024-07-22Pass HashFunction to CreateActionDigestFromCommandLineMaksim Denisov
2024-07-22Pass HashFunction to BazelNetworkMaksim Denisov
2024-07-22Create HashFunction in BazelCasClient based on compatibilityMaksim Denisov
2024-07-22Pass HashFunction to ArtifactDigest::CreateMaksim Denisov
2024-07-22Use HashFunction functionality via Instance()Maksim Denisov
...to track changes during refactoring easier.
2024-07-19Pass RetryConfig instance to BazelApiPaul Cristian Sarbu
2024-07-19Pass RetryConfig instance to BazelNetwork and bazel clientsPaul Cristian Sarbu
2024-07-19Pass RetryConfig instance to WithRetryPaul Cristian Sarbu
2024-07-16Remove the RemoteExecutionConfig singletonPaul Cristian Sarbu
...and replace it with passed instances created early via a builder pattern. Tests are also updated accordingly.
2024-07-16Add useful aliases for platform properties and dispatch endpointPaul Cristian Sarbu
2024-07-16LocalAction, BazelAction: Extend constness in fields and methodsPaul Cristian Sarbu
2024-07-12Capture in TreeReaders by pointer to avoid temporariesMaksim Denisov
2024-07-12Return std::nullopt if creation of an action digest failsMaksim Denisov
...instead of dereferencing nullptr.
2024-07-12Pack arguments of CreateActionDigestFromCommandLine to a structMaksim Denisov
2024-07-10ParallelRetrieveToCas: process prerequisites in parallelKlaus Aehlig
2024-07-10ParallelRetrieveToCas: avoid duplicated requestsKlaus Aehlig
While no additional blob will be transferred, doing a request for missing blobs is still a request and, in particular, an unnecessary round trip. Therefore avoid this, by remembering what we synchronized already.
2024-07-05Move functionality from StorageConfig to related classes.Maksim Denisov
2024-07-04Replace the Auth and Auth::TLS singletonsPaul Cristian Sarbu
Use a builder pattern for creation and validation, in a manner that allows also other authentication methods to be added in the future besides the current TLS/SSL. The main Auth instances are built early and then passed by not_null const pointers, to avoid passing temporaries, replacing the previous Auth::TLS instances passed by simple nullable const pointers. Where needed, these passed Auth instances are also stored, by const ref. Tests also build Auth instances as needed, either with the default 'no certification' or from the test environment arguments.
2024-07-04Pass Auth::TLS instance to serve and execute clientsPaul Cristian Sarbu
2024-07-04Pass Auth::TLS instance to BazelApi and ServeApiPaul Cristian Sarbu
2024-07-04Mark more constructors 'explicit'Paul Cristian Sarbu
Since c++17 the 'explicit' keyword has use also for constructors with more than one argument and it is recommended to use it by default whereever implicit conversions are not expected bahaviour.
2024-06-28Use (un)expected for parsing dispatch infoOliver Reiche
2024-06-27Use a raw pointer for passing optional IExecutionApiMaksim Denisov
...instead of std::optional<gsl::not_null<IExecutionApi const*>>
2024-06-25Introduce a type allias for an optional ptr to IExecutionApiMaksim Denisov
...and replace verbose constructions.
2024-06-25Pass IExecutionApi to IExecutionApi by referenceMaksim Denisov
...instead of not_null const ptr.
2024-06-25Mark IExecutionApi's methods constantMaksim Denisov
2024-06-07Move reading functionality to BazelNetworkReaderMaksim Denisov
...to enable validation of received blobs.
2024-06-07Validate all blobs received over the network.Maksim Denisov
2024-06-07Use BaselCasClient in BazelNetworkReaderMaksim Denisov
...bypassing BazelNetwork layer.
2024-06-07Mark methods constant in BazelCasClient.Maksim Denisov
2024-06-04blob containers: Store and upload taking into account content sizePaul Cristian Sarbu
Update logic populating containers to use the new method which is aware of the maximum transfer limit.
2024-06-04bazel_network: Change UploadBlobs to also accept an rvaluePaul Cristian Sarbu
This unifies the signature of all uploader functions consuming a BlobContainer type.
2024-05-28Use shared_ptr for data in ContentBlobMaksim Denisov
...to reduce the "price" of copying.
2024-05-28Use ArtifactBlobContainer in IExecutionApiMaksim Denisov
...instead of BazelBlobContainer to not bring bazel_re::Digest to IExecutionApi.
2024-05-28Move blob_tree to the common stage since it is used only there.Maksim Denisov
2024-05-28Rename BlobContainer to BazelBlobContainerMaksim Denisov
2024-05-28Convert BlobContainer to a templateMaksim Denisov
...where the template parameter is the type of a digest.
2024-05-28Use TransformedRange in BlobContainerMaksim Denisov
...instead of various iterators.
2024-05-28Move CreateBlobFromPath since it is only used in tests.Maksim Denisov