Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
In some situations, we use a retry strategy, but in case of complete
failure have another way of attempting that task. In this case, we
should not emmit an error message right away. Add support for this.
|
|
... instead of relying on those dependencies being pulled in
indirectly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... as those typically are of transient nature as well.
|
|
...and replace it with instances created early via a builder
pattern.
|
|
|
|
Now also requires guarding for bootstrapping to not bring in grpc.
|
|
The retry_parameters.hpp header-only library defining the Retry
class now is the retry_config.hpp header-only library defining the
RetryConfig class.
|
|
|
|
|
|
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.
|
|
|
|
...to more easily keep track of changes during refactoring.
|
|
|
|
The Emit method of the Logger class, when called with a string as
second argument, expects it to be a format string. It should be
considered a programming error to pass a string variable as that
argument without knowing for certain that it does not contain any
format escape character ('{', '}'); instead, one should be
conservative and use the blind format string "{}" as second
argument and pass the unknown string variable as third argument.
|
|
|
|
Main culprits:
- std::size_t, std::nullptr_t, and NULL require <cstddef>
- std::move and std::forward require <utility>
- unordered maps and sets require respective includes
- std::for_each and std::all_of require <algorithm>
|
|
Some of the more specific issues addressed:
- missing log_level target/include
- header-only libs wrongly marking deps as private
- missing/misplaced gsl includes
|
|
|
|
|
|
...the provided function until either the function succeeds, maximum
number of attempts is reached or the function returns an error
indicating that we cannot simply retry.
It is meant to be used with rpc calls, but the logic can be applied to
other scenarios.
|
|
|
|
The ToJson method of RemoteAddress was wrongly creating a list
instead of a simple string, thus a wrongly formatted backend
description was being used to shard the target cache. This however
does not affect the correctness of the build.
Changelog also updated accordingly.
|
|
|
|
This was causing the remote serve address to overwrite the one set
for remote execution.
Also, to keep things clean, some common remote server-related
methods and definitions were moved into their own library.
|
|
|
|
|