This is the approach used in easyproto
52d3ac4744/writer.go (L203)
It allows to occupy slightly less space for negative numbers.
The format is still protobuf, although, technically, this is a breaking
change for our stable marshaling format.
However, we don't use int32 at all and all enums have positive values,
so nothing is broken.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
Test the generated code, do not write yet another marshaling routine in
tests.
Before:
```
ok git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto 0.003s coverage: 55.6% of statements
```
After:
```
ok git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto 0.003s coverage: 80.0% of statements
```
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
gRPC client load-balancing API is ugly as f:
1. It is configured by pre-registering a balancer and the providing JSON
configuration.
2. It doesn't allow different credentials for different endpoints
(consider using "insecure" localhost and external endpoint).
3. To support frostfs usecase we also need to implement a resolver,
which has its own difficulties.
4. https://github.com/grpc/grpc-go/issues/239#issuecomment-264548415
Using interface in place of grpc.ClientConn allows us to provide custom
implentation for it (load-balancing, circuit breaker etc.).
Refs TrueCloudLab/frostfs-node#1268
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
```
WARN [config_reader] The configuration option `run.skip-files` is deprecated, please use `issues.exclude-files`.
WARN [config_reader] The configuration option `output.format` is deprecated, please use `output.formats`
```
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
* Regenerate protobufs as APE specific type are defined
as separate package;
* Move `ape` package related utils methods from `apemanager`.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
* Regenerate protobufs as frostfs-api introduced `parent_split_id` and
`parent_split_index` fields.
* Fix marshaller and converter for EC header.
* Extend v2 type `ECHeader` with `ParentSplitID` and `ParentSplitIndex` fields.
* Fix message_test for `Object`. Also generate EC headers and check it.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
This will make the transition to a new codegen more seamless.
1. Setter should be named as the field itself.
2. Setter should accept 1 parameter.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
* Since EC field tags are renumerated, it is required
to regenerate netmap grpc.
* Add a generator with EC replica to check it with
unit-test.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
* Regenerate protobufs for object and container service to
use a new frostfs-api status CONTAINER_ACCESS_DENIED.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
Found by vulncheck:
Vulnerability #1: GO-2024-2611
Infinite loop in JSON unmarshaling in google.golang.org/protobuf
More info: https://pkg.go.dev/vuln/GO-2024-2611
Module: google.golang.org/protobuf
Found in: google.golang.org/protobuf@v1.32.0
Fixed in: google.golang.org/protobuf@v1.33.0
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>