Commit Graph

1110 Commits (v0.39.0)

Author SHA1 Message Date
Airat Arifullin 952d13cd2b [#1124] cli: Improve APE rule parsing
Vulncheck / Vulncheck (pull_request) Successful in 1m25s Details
DCO action / DCO (pull_request) Successful in 1m59s Details
Build / Build Components (1.21) (pull_request) Successful in 2m27s Details
Build / Build Components (1.22) (pull_request) Successful in 4m25s Details
Pre-commit hooks / Pre-commit (pull_request) Successful in 4m57s Details
Tests and linters / Staticcheck (pull_request) Successful in 5m38s Details
Tests and linters / gopls check (pull_request) Successful in 5m57s Details
Tests and linters / Lint (pull_request) Successful in 6m26s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 9m5s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 9m11s Details
Tests and linters / Tests with -race (pull_request) Successful in 9m4s Details
* Make APE rule parser to read condition's kind in unambiguous using lexemes
`ResourceCondition`, `RequestCondition` instead confusing `Object.Request`, `Object.Resource`.
* Fix unit-tests.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-14 12:23:26 +03:00
Dmitrii Stepanov 0144117cc9 [#1125] objectSvc: Add EC header APE check
Build / Build Components (1.21) (pull_request) Successful in 6m27s Details
DCO action / DCO (pull_request) Successful in 6m38s Details
Build / Build Components (1.22) (pull_request) Successful in 8m54s Details
Vulncheck / Vulncheck (pull_request) Successful in 8m37s Details
Tests and linters / gopls check (pull_request) Successful in 10m32s Details
Tests and linters / Staticcheck (pull_request) Successful in 11m3s Details
Tests and linters / Lint (pull_request) Successful in 11m27s Details
Pre-commit hooks / Pre-commit (pull_request) Successful in 14m16s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 14m26s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 15m14s Details
Tests and linters / Tests with -race (pull_request) Successful in 15m45s Details
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-05-08 16:25:55 +03:00
Dmitrii Stepanov ada1b9f737 [#1120] objectSvc: Fix EC put placement
Use parent object ID to compute placement.
Fix too many copies saving.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-05-08 15:23:57 +03:00
Anton Nikiforov fe2c1c926f [#1112] node: Fix race warning for `GetObjectAndWritePayload`
DCO action / DCO (pull_request) Successful in 2m10s Details
Vulncheck / Vulncheck (pull_request) Successful in 2m2s Details
Build / Build Components (1.22) (pull_request) Successful in 3m44s Details
Build / Build Components (1.21) (pull_request) Successful in 3m52s Details
Pre-commit hooks / Pre-commit (pull_request) Successful in 5m40s Details
Tests and linters / Staticcheck (pull_request) Successful in 6m40s Details
Tests and linters / Lint (pull_request) Successful in 7m11s Details
Tests and linters / gopls check (pull_request) Successful in 9m16s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 10m58s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 11m2s Details
Tests and linters / Tests with -race (pull_request) Successful in 11m35s Details
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-05-07 14:47:21 +03:00
Anton Nikiforov 3e782527b8 [#1112] node: Add test for `Range` request for EC object
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-05-07 14:47:21 +03:00
Anton Nikiforov 21a490da8f [#1112] Fix issue from `gofumpt`
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-05-07 14:47:21 +03:00
Evgenii Stratonikov 93c0ccad4f [#1077] objectsvc: Fix possible panic in GetRange()
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-05-07 14:47:21 +03:00
Anton Nikiforov 00b2b77b26 [#1112] node: Implement `Range\RangeHash` requests for EC object
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-05-07 14:47:21 +03:00
Airat Arifullin b60a51b862 [#1117] ape: Introduce `FormFrostfsIDRequestProperties` method
* `FormFrostfsIDRequestProperties` gets user claim tags and group id and sets them
  as ape request properties.
* Make tree, container and object service use the method.
* Fix unit-tests.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-07 10:01:21 +00:00
Airat Arifullin 6c76c9b457 [#1117] core: Introduce SubjectProvider interface for FrostfsID
* Make tree, object and container services use SubjectProvider interface.
* Fix unit-tests.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-07 10:01:21 +00:00
Ekaterina Lebedeva e07869a8cf [#1100] Remove unused fields
DCO action / DCO (pull_request) Successful in 2m47s Details
Build / Build Components (1.21) (pull_request) Successful in 3m21s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m33s Details
Build / Build Components (1.22) (pull_request) Successful in 5m25s Details
Tests and linters / gopls check (pull_request) Successful in 5m13s Details
Tests and linters / Staticcheck (pull_request) Successful in 6m13s Details
Tests and linters / Lint (pull_request) Successful in 7m2s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 10m2s Details
Tests and linters / Tests with -race (pull_request) Successful in 9m55s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 10m11s Details
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-05-06 10:14:36 +03:00
Evgenii Stratonikov 71789676d5 [#1114] aclsvc: Add tests for request ownership
DCO action / DCO (pull_request) Successful in 5m13s Details
Build / Build Components (1.21) (pull_request) Successful in 9m51s Details
Build / Build Components (1.22) (pull_request) Successful in 10m21s Details
Vulncheck / Vulncheck (pull_request) Successful in 12m9s Details
Tests and linters / Lint (pull_request) Successful in 16m50s Details
Tests and linters / gopls check (pull_request) Successful in 18m8s Details
Tests and linters / Staticcheck (pull_request) Successful in 19m1s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 19m59s Details
Tests and linters / Tests with -race (pull_request) Successful in 20m5s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 2m52s Details
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-05-02 11:57:39 +03:00
Anton Nikiforov 112a7c690f [#1103] node: Implement `Get\Head` requests for EC object
DCO action / DCO (pull_request) Successful in 1m44s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m3s Details
Build / Build Components (1.21) (pull_request) Successful in 4m0s Details
Build / Build Components (1.22) (pull_request) Successful in 3m57s Details
Tests and linters / Staticcheck (pull_request) Successful in 4m46s Details
Tests and linters / gopls check (pull_request) Successful in 4m48s Details
Tests and linters / Lint (pull_request) Successful in 5m45s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 8m57s Details
Tests and linters / Tests with -race (pull_request) Successful in 9m10s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 9m20s Details
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-24 18:15:53 +03:00
Anton Nikiforov 700e891b85 [#1103] Fix end of file and trim trailing whitespace
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-24 16:31:04 +03:00
Airat Arifullin 10ee865e98 [#1096] tree: Make `verifyClient` fill ape request with user claim tags
Vulncheck / Vulncheck (pull_request) Successful in 2m52s Details
DCO action / DCO (pull_request) Successful in 2m51s Details
Build / Build Components (1.21) (pull_request) Successful in 3m44s Details
Build / Build Components (1.22) (pull_request) Successful in 3m48s Details
Tests and linters / Staticcheck (pull_request) Successful in 4m34s Details
Tests and linters / gopls check (pull_request) Successful in 4m48s Details
Tests and linters / Lint (pull_request) Successful in 5m42s Details
Tests and linters / Tests with -race (pull_request) Successful in 8m56s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 9m7s Details
Tests and linters / Tests (1.22) (pull_request) Successful in 9m15s Details
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-16 15:12:46 +03:00
Airat Arifullin c21d72ac23 [#1096] object: Make ape middleware fill request with user claim tags
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-16 15:12:44 +03:00
Airat Arifullin 6772976657 [#1096] container: Make ape middleware fill request with user claim tags
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-16 15:10:20 +03:00
Evgenii Stratonikov 3ea1d7b729 [#1089] control: Add USER and GROUP targets for local override storage
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-16 11:03:50 +00:00
Evgenii Stratonikov 0094186299 [#1089] control: Format proto files with clang-format
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-16 11:03:50 +00:00
Evgenii Stratonikov 91e79c98ba [#1089] ape: Provide request actor as an additional target
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-16 11:03:50 +00:00
Airat Arifullin 6a46c6d229 [#1090] tree: Make workaround for APE checks
* Make `verifyClient` method perform APE check if a container
  was created with zero-filled basic ACL.
* Object verbs are used in APE, until tree verbs are introduced.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-15 07:45:45 +00:00
Airat Arifullin f4dcb418f2 [#1090] ape: Move ape request and resource implementations to common package
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-15 07:45:45 +00:00
Evgenii Stratonikov 669103a33e Reapply "[#972] Use slices.Sort* when useful"
This reverts commit 3359349acb.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-10 12:09:34 +00:00
Evgenii Stratonikov 3dc81cb4fc Reapply "[#972] Use min/max builtins"
This reverts commit dad56d2e98.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-10 12:09:34 +00:00
Dmitrii Stepanov e74bdaa5d5 [#1080] ape: Use value for APE request
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 18:42:03 +03:00
Dmitrii Stepanov 338d8cbebd [#1080] ape: Do not read object headers before Head/Get
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 15:27:40 +03:00
Anton Nikiforov 2b88361849 [#1062] object: Fix buffer allocation for `PayloadRange`
DCO action / DCO (pull_request) Successful in 5m34s Details
Vulncheck / Vulncheck (pull_request) Successful in 5m14s Details
Build / Build Components (1.20) (pull_request) Successful in 8m56s Details
Build / Build Components (1.21) (pull_request) Successful in 8m56s Details
Tests and linters / gopls check (pull_request) Successful in 9m3s Details
Tests and linters / Staticcheck (pull_request) Successful in 9m39s Details
Tests and linters / Lint (pull_request) Successful in 10m9s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 13m43s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 14m4s Details
Tests and linters / Tests with -race (pull_request) Successful in 14m40s Details
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-09 11:59:07 +03:00
Dmitrii Stepanov f5b67c6735 [#1064] policer: Disable EC processing
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 07:08:53 +00:00
Dmitrii Stepanov 1c5e0f90aa [#1064] putsvc: Add EC put
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 07:08:53 +00:00
Dmitrii Stepanov 39da643354 [#1064] putsvc: Refactor distributed target
Extract object builder.

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 07:08:53 +00:00
Anton Nikiforov d614f04a0a [#1072] Fix gofumpt issues
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-03 22:21:14 +03:00
Airat Arifullin 4738508ce2 [#1063] go.mod: Update SDK version
* Update frostfs-sdk and frostfs-api-go versions.
* Refactor depreacted method ReplicaNumberByIndex.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-03 10:33:51 +00:00
Evgenii Stratonikov ff4c23f59a [#1070] services/tree: Fix fast listing depth processing
For unsorted `GetSubTree()` we return a single node for depth=1.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-02 14:41:31 +00:00
Evgenii Stratonikov e12fcc041d [#1059] services/tree: Fast sorted listing
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-01 12:37:34 +00:00
Airat Arifullin 6959e617c4 [#1047] object: Set container owner ID property to ape request
* Introduce ContainerOwner field in RequestContext.
* Set ContainerOwner in aclv2 middleware.
* Set PropertyKeyContainerOwnerID for object ape request.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-03-18 15:39:50 +00:00
Airat Arifullin d7be70e93f [#1040] object: Wrap CheckAPE errors to status errors
* All methods should wrap CheckAPE error, if it occurs, to
  status error.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-03-14 07:34:03 +00:00
Anton Nikiforov 5ee5f1df42 [#976] control: Introduce new method `RemoveChainLocalOverridesByTarget`
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-03-13 15:33:19 +03:00
Dmitrii Stepanov 17f5463389 [#1043] cli: Add reset evacuation status command
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-13 10:29:45 +00:00
Dmitrii Stepanov 31e2396a5f [#1043] control: Add ResetEvacuationStatus implementation
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-13 10:29:45 +00:00
Dmitrii Stepanov 926cdeb072 [#1043] services: Regenerate proto
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-13 10:29:45 +00:00
Airat Arifullin 5c252c9193 [#1039] object: Skip APE check for certain request roles
DCO action / DCO (pull_request) Successful in 1m31s Details
Vulncheck / Vulncheck (pull_request) Successful in 2m52s Details
Build / Build Components (1.21) (pull_request) Successful in 3m52s Details
Build / Build Components (1.20) (pull_request) Successful in 4m16s Details
Tests and linters / gopls check (pull_request) Successful in 11m54s Details
Tests and linters / Staticcheck (pull_request) Successful in 12m31s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 12m49s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 13m8s Details
Tests and linters / Tests with -race (pull_request) Successful in 13m14s Details
Tests and linters / Lint (pull_request) Successful in 13m31s Details
* Skip APE check if a role is Container.
* Skip APE check if a role is IR and methods are get-like.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-03-12 16:15:20 +03:00
Dmitrii Stepanov d433b49265 [#973] node: Resolve perfsprint linter
DCO action / DCO (pull_request) Successful in 2m40s Details
Vulncheck / Vulncheck (pull_request) Successful in 3m41s Details
Build / Build Components (1.20) (pull_request) Successful in 4m27s Details
Build / Build Components (1.21) (pull_request) Successful in 5m6s Details
Tests and linters / Staticcheck (pull_request) Successful in 6m16s Details
Tests and linters / gopls check (pull_request) Successful in 6m23s Details
Tests and linters / Lint (pull_request) Successful in 6m48s Details
Tests and linters / Tests (1.20) (pull_request) Successful in 9m4s Details
Tests and linters / Tests with -race (pull_request) Successful in 9m9s Details
Tests and linters / Tests (1.21) (pull_request) Successful in 9m23s Details
`fmt.Errorf can be replaced with errors.New` and `fmt.Sprintf can be replaced with string addition`

Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-11 17:55:50 +03:00
Dmitrii Stepanov 66a26b7775 [#973] node: Resolve revive: unused-parameter linter
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-11 17:11:49 +03:00
Dmitrii Stepanov d6534fd755 [#1016] frostfs-node: Fix gopls issues
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-03-01 12:13:43 +03:00
Airat Arifullin 93bf9acbc2 [#898] control: Remove removed flag from RemoveChainLocalOverrideResponse
* Remove removed flag in service.proto for RemoveChainLocalOverrideResponse.
* Regenerate control API.
* Return error only if RemoveOverride returns non-NotFound code.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-02-28 19:07:07 +00:00
Airat Arifullin 75a1a95c2c [#986] tree: Skip ACL checks if basicACL mask is unset
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-02-28 19:05:57 +00:00
Airat Arifullin b1d171c261 [#986] container: Interpret APE NoRuleFound as request deny
* If APE check returns NoRuleFound, then it is taken for request deny.
* Add more unit-test for ape container middleware.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-02-28 19:05:57 +00:00
Airat Arifullin 7cc368e188 [#986] object: Introduce soft ape checks
* Soft APE check means that APE should allow request even
  it gets status NoRuleFound for a request. Otherwise,
  it is interpreted as Deny.
* Soft APE check is performed if basic ACL mask is not set.

Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-02-28 19:05:57 +00:00
Evgenii Stratonikov dad56d2e98 Revert "[#972] Use min/max builtins"
This reverts commit 89784b2e0a.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 15:36:01 +00:00
Evgenii Stratonikov 3359349acb Revert "[#972] Use slices.Sort* when useful"
This reverts commit b871d7a5e8.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-02-19 15:36:01 +00:00