643480d6fa
[ #1146 ] adm: Make --group-name flag required
...
Vulncheck / Vulncheck (pull_request) Successful in 3m34s
DCO action / DCO (pull_request) Successful in 3m50s
Build / Build Components (1.21) (pull_request) Successful in 4m31s
Build / Build Components (1.22) (pull_request) Successful in 4m29s
Tests and linters / Staticcheck (pull_request) Successful in 5m7s
Tests and linters / gopls check (pull_request) Successful in 5m29s
Tests and linters / Lint (pull_request) Successful in 6m25s
Pre-commit hooks / Pre-commit (pull_request) Successful in 8m15s
Tests and linters / Tests (1.21) (pull_request) Successful in 9m57s
Tests and linters / Tests (1.22) (pull_request) Successful in 10m10s
Tests and linters / Tests with -race (pull_request) Successful in 10m6s
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2024-06-03 13:54:59 +03:00
0b367007fc
[ #1152 ] go.mod: Update api-go and sdk versions
...
DCO action / DCO (pull_request) Successful in 5m23s
Build / Build Components (1.22) (pull_request) Successful in 7m33s
Build / Build Components (1.21) (pull_request) Successful in 7m43s
Tests and linters / Lint (pull_request) Successful in 8m51s
Tests and linters / Tests (1.22) (pull_request) Successful in 14m33s
Pre-commit hooks / Pre-commit (pull_request) Successful in 15m48s
Vulncheck / Vulncheck (pull_request) Successful in 15m12s
Tests and linters / Tests (1.21) (pull_request) Successful in 16m38s
Tests and linters / gopls check (pull_request) Successful in 19m24s
Tests and linters / Staticcheck (pull_request) Successful in 21m29s
Tests and linters / Tests with -race (pull_request) Successful in 23m16s
* Resolve conflicts for apemanager since api-go
contains ape and apemanager packages and SDK only
ape package.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-31 15:39:09 +03:00
6130650bb6
[ #1147 ] node: Implement Lock\Delete
requests for EC object
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-05-30 08:13:04 +00:00
88b8ddd902
[ #1147 ] cli: Fix output when print EC info with flags json
& proto
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-05-30 08:13:04 +00:00
50923ed81c
[ #1147 ] Fix gofumpt issue
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-05-30 08:13:04 +00:00
4a34d0d40e
[ #1149 ] go.mod: Bump neo-go up to v0.106.0
...
Required to work with neo-go v0.106.0 node
with default hardfork configuration. Without
neo-go client version bump, it throws error.
failed to get network magic: unexpected hardfork: Cockatrice
Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2024-05-30 08:11:58 +00:00
cc3f762cf2
[ #12 ] cli: clarify -g
usage in container list
...
DCO action / DCO (pull_request) Successful in 7m44s
Vulncheck / Vulncheck (pull_request) Successful in 9m38s
Build / Build Components (1.21) (pull_request) Successful in 10m2s
Build / Build Components (1.22) (pull_request) Successful in 10m0s
Tests and linters / Staticcheck (pull_request) Successful in 12m36s
Tests and linters / Lint (pull_request) Successful in 13m13s
Tests and linters / gopls check (pull_request) Successful in 15m17s
Pre-commit hooks / Pre-commit (pull_request) Successful in 16m16s
Tests and linters / Tests (1.21) (pull_request) Successful in 16m36s
Tests and linters / Tests with -race (pull_request) Successful in 16m36s
Tests and linters / Tests (1.22) (pull_request) Successful in 17m25s
Add usage replacement for `container list -g` and verbose
warning when using `-g` without `--owner`.
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-05-28 15:18:30 +03:00
2b02f52cd9
[ #1105 ] cli: Add apemanager commands
...
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-27 09:34:21 +00:00
542d3adcb2
[ #1105 ] apemanager: Implement apemanager service
...
* Introduce grpc server for apemanager service and
its implementation in `pkg/services/apemanager`.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-27 09:34:21 +00:00
2697d4d1fe
[ #1143 ] node: Fix frostfsid cache
...
DCO action / DCO (pull_request) Successful in 3m16s
Vulncheck / Vulncheck (pull_request) Successful in 3m2s
Build / Build Components (1.21) (pull_request) Successful in 5m35s
Tests and linters / Staticcheck (pull_request) Successful in 5m8s
Tests and linters / gopls check (pull_request) Successful in 5m22s
Tests and linters / Lint (pull_request) Successful in 6m31s
Pre-commit hooks / Pre-commit (pull_request) Successful in 9m6s
Tests and linters / Tests (1.21) (pull_request) Successful in 9m26s
Tests and linters / Tests with -race (pull_request) Successful in 9m31s
Tests and linters / Tests (1.22) (pull_request) Successful in 9m58s
Build / Build Components (1.22) (pull_request) Successful in 2m55s
* Fix `subjectFromSubjectExtended` converter.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-20 18:49:52 +03:00
436c9f5558
[ #1129 ] policer: Restore EC object
...
Vulncheck / Vulncheck (pull_request) Successful in 1m43s
DCO action / DCO (pull_request) Successful in 2m53s
Build / Build Components (1.21) (pull_request) Successful in 4m6s
Build / Build Components (1.22) (pull_request) Successful in 4m31s
Tests and linters / gopls check (pull_request) Successful in 4m57s
Tests and linters / Staticcheck (pull_request) Successful in 6m14s
Tests and linters / Lint (pull_request) Successful in 6m42s
Pre-commit hooks / Pre-commit (pull_request) Successful in 9m19s
Tests and linters / Tests (1.21) (pull_request) Successful in 10m15s
Tests and linters / Tests (1.22) (pull_request) Successful in 10m36s
Tests and linters / Tests with -race (pull_request) Successful in 10m36s
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-05-17 14:36:18 +03:00
cbe9757490
[ #1129 ] policer: Pull required EC chunks
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-05-16 16:28:49 +03:00
d45d086acd
[ #1129 ] policer: Add EC chunk replication
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-05-16 16:28:48 +03:00
af57d5a6a1
[ #1138 ] adm/test: Use --size=1
for negative tests
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-05-16 10:40:59 +00:00
2f04ce2f79
[ #1138 ] adm: Parallelize generate-alphabet
command
...
This is the longest test in our suite, try to help CI a bit.
Before:
```
$ go test -run=TestGenerateAlphabet -count=10 .
ok git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/generate 45.400s
```
After:
```
$ go test -run=TestGenerateAlphabet -count=10 .
ok git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/generate 33.267s
```
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-05-16 10:40:59 +00:00
b078fe5ba1
[ #1092 ] control: Move SignMessage to separate package
...
DCO action / DCO (pull_request) Successful in 6m11s
Build / Build Components (1.22) (pull_request) Successful in 7m50s
Build / Build Components (1.21) (pull_request) Successful in 8m3s
Tests and linters / Lint (pull_request) Successful in 9m45s
Tests and linters / gopls check (pull_request) Successful in 12m40s
Vulncheck / Vulncheck (pull_request) Successful in 12m35s
Tests and linters / Staticcheck (pull_request) Successful in 15m34s
Pre-commit hooks / Pre-commit (pull_request) Successful in 19m38s
Tests and linters / Tests with -race (pull_request) Successful in 21m40s
Tests and linters / Tests (1.22) (pull_request) Successful in 3m21s
Tests and linters / Tests (1.21) (pull_request) Successful in 3m36s
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2024-05-16 12:14:01 +03:00
b4cfc80579
[ #1133 ] node: Improve tests for shards.default config section
...
DCO action / DCO (pull_request) Successful in 4m58s
Vulncheck / Vulncheck (pull_request) Successful in 7m43s
Tests and linters / gopls check (pull_request) Successful in 9m21s
Tests and linters / Lint (pull_request) Successful in 10m3s
Tests and linters / Staticcheck (pull_request) Successful in 9m59s
Tests and linters / Tests (1.22) (pull_request) Successful in 12m27s
Tests and linters / Tests (1.21) (pull_request) Successful in 13m13s
Build / Build Components (1.21) (pull_request) Successful in 13m8s
Build / Build Components (1.22) (pull_request) Successful in 13m2s
Tests and linters / Tests with -race (pull_request) Successful in 13m46s
Pre-commit hooks / Pre-commit (pull_request) Successful in 14m38s
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-05-15 09:48:21 +03:00
952d13cd2b
[ #1124 ] cli: Improve APE rule parsing
...
Vulncheck / Vulncheck (pull_request) Successful in 1m25s
DCO action / DCO (pull_request) Successful in 1m59s
Build / Build Components (1.21) (pull_request) Successful in 2m27s
Build / Build Components (1.22) (pull_request) Successful in 4m25s
Pre-commit hooks / Pre-commit (pull_request) Successful in 4m57s
Tests and linters / Staticcheck (pull_request) Successful in 5m38s
Tests and linters / gopls check (pull_request) Successful in 5m57s
Tests and linters / Lint (pull_request) Successful in 6m26s
Tests and linters / Tests (1.22) (pull_request) Successful in 9m5s
Tests and linters / Tests (1.21) (pull_request) Successful in 9m11s
Tests and linters / Tests with -race (pull_request) Successful in 9m4s
* 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
20baf6e112
[ #1108 ] ape: Update policy-engine version for listing by iteration
...
* Update go.mod with a new version of policy-engine pacakge.
* Adapt SwitchRPCGuardedActor to ContractStorage interface.
* Fix `frostfs-adm` util.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-14 12:17:56 +03:00
74135776c7
[ #1067 ] adm: Fix panic on negative value
...
Signed-off-by: Anoke <rustamgta1011@gmail.com>
2024-05-13 16:44:04 +00:00
0144117cc9
[ #1125 ] objectSvc: Add EC header APE check
...
Build / Build Components (1.21) (pull_request) Successful in 6m27s
DCO action / DCO (pull_request) Successful in 6m38s
Build / Build Components (1.22) (pull_request) Successful in 8m54s
Vulncheck / Vulncheck (pull_request) Successful in 8m37s
Tests and linters / gopls check (pull_request) Successful in 10m32s
Tests and linters / Staticcheck (pull_request) Successful in 11m3s
Tests and linters / Lint (pull_request) Successful in 11m27s
Pre-commit hooks / Pre-commit (pull_request) Successful in 14m16s
Tests and linters / Tests (1.21) (pull_request) Successful in 14m26s
Tests and linters / Tests (1.22) (pull_request) Successful in 15m14s
Tests and linters / Tests with -race (pull_request) Successful in 15m45s
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-05-08 16:25:55 +03:00
368218f0cc
[ #1120 ] cli: Edit object nodes
output
...
Vulncheck / Vulncheck (pull_request) Failing after 1m35s
DCO action / DCO (pull_request) Successful in 2m32s
Pre-commit hooks / Pre-commit (pull_request) Successful in 3m58s
Build / Build Components (1.22) (pull_request) Successful in 4m38s
Build / Build Components (1.21) (pull_request) Successful in 4m44s
Tests and linters / Staticcheck (pull_request) Successful in 5m26s
Tests and linters / gopls check (pull_request) Successful in 5m26s
Tests and linters / Lint (pull_request) Successful in 6m44s
Tests and linters / Tests (1.21) (pull_request) Successful in 10m41s
Tests and linters / Tests with -race (pull_request) Successful in 10m41s
Tests and linters / Tests (1.22) (pull_request) Successful in 10m54s
Print detailed information only.
Allow to output to JSON.
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-05-08 15:23:58 +03:00
a45b548a6f
[ #1120 ] cli: Add explain to object nodes
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-05-08 15:23:58 +03:00
654384990c
[ #1120 ] cli: Fix object nodes
for linking objects
...
Do not use linking objects to get placement for complex object.
Linking objects should be stored on all container nodes, also they are not required.
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-05-08 15:23:57 +03:00
5c730de96e
[ #1120 ] cli: Add EC support to object nodes
command
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-05-08 15:23:57 +03:00
854200a874
[ #1115 ] node: Remove unused const
...
Vulncheck / Vulncheck (pull_request) Successful in 1m49s
DCO action / DCO (pull_request) Successful in 2m9s
Build / Build Components (1.21) (pull_request) Successful in 3m41s
Build / Build Components (1.22) (pull_request) Successful in 3m53s
Tests and linters / Staticcheck (pull_request) Successful in 5m10s
Tests and linters / gopls check (pull_request) Successful in 5m17s
Tests and linters / Lint (pull_request) Successful in 6m8s
Pre-commit hooks / Pre-commit (pull_request) Successful in 9m52s
Tests and linters / Tests (1.21) (pull_request) Successful in 11m26s
Tests and linters / Tests (1.22) (pull_request) Successful in 11m43s
Tests and linters / Tests with -race (pull_request) Successful in 11m46s
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2024-05-07 19:11:21 +03:00
9cc51f86b7
[ #1117 ] node: Introduce cache for frostfsid contract client
...
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-05-07 10:01:21 +00:00
e07869a8cf
[ #1100 ] Remove unused fields
...
DCO action / DCO (pull_request) Successful in 2m47s
Build / Build Components (1.21) (pull_request) Successful in 3m21s
Vulncheck / Vulncheck (pull_request) Successful in 3m33s
Build / Build Components (1.22) (pull_request) Successful in 5m25s
Tests and linters / gopls check (pull_request) Successful in 5m13s
Tests and linters / Staticcheck (pull_request) Successful in 6m13s
Tests and linters / Lint (pull_request) Successful in 7m2s
Tests and linters / Tests (1.21) (pull_request) Successful in 10m2s
Tests and linters / Tests with -race (pull_request) Successful in 9m55s
Tests and linters / Tests (1.22) (pull_request) Successful in 10m11s
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2024-05-06 10:14:36 +03:00
52bebe9452
[ #1110 ] node: Use single handler for new epoch event
...
DCO action / DCO (pull_request) Successful in 5m7s
Build / Build Components (1.21) (pull_request) Successful in 6m54s
Build / Build Components (1.22) (pull_request) Successful in 6m53s
Tests and linters / Staticcheck (pull_request) Successful in 7m45s
Tests and linters / Lint (pull_request) Successful in 8m29s
Vulncheck / Vulncheck (pull_request) Successful in 8m4s
Tests and linters / gopls check (pull_request) Successful in 8m43s
Tests and linters / Tests (1.22) (pull_request) Successful in 11m48s
Tests and linters / Tests (1.21) (pull_request) Successful in 11m54s
Tests and linters / Tests with -race (pull_request) Successful in 12m48s
Bootstrap logic depends on the netmap status, which in turn depends on
the node info. Updating them in a single thread makes things more
predictable.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-27 15:17:45 +03:00
4b514f5ba0
[ #1110 ] node: Log maintenance stop only if it was enabled
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-27 15:17:45 +03:00
c8e2ca2ab4
[ #1110 ] node: Rename handleLocalNodeInfo()
...
It is used in "handler" only once, what we really do is set the
variable. And we have another "local" node info in `cfgNodeInfo`, this
one is not really local (node info), more like (local node) info, so use
setContractNodeInfo to distinguish it from the local view on the node
info.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-27 15:17:45 +03:00
3b9d12b11c
[ #1110 ] node: Fix comment about nodeInfo type
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-27 15:17:45 +03:00
411a8d0245
[ #1004 ] blobovnicza: Use TTL for blobovnicza tree cache
...
DCO action / DCO (pull_request) Successful in 12m46s
Vulncheck / Vulncheck (pull_request) Successful in 14m10s
Build / Build Components (1.22) (pull_request) Successful in 15m23s
Build / Build Components (1.21) (pull_request) Successful in 15m38s
Tests and linters / Staticcheck (pull_request) Successful in 3m36s
Tests and linters / gopls check (pull_request) Successful in 4m0s
Tests and linters / Lint (pull_request) Successful in 5m8s
Tests and linters / Tests (1.21) (pull_request) Successful in 7m41s
Tests and linters / Tests with -race (pull_request) Successful in 7m46s
Tests and linters / Tests (1.22) (pull_request) Successful in 7m58s
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-26 19:54:29 +03:00
112a7c690f
[ #1103 ] node: Implement Get\Head
requests for EC object
...
DCO action / DCO (pull_request) Successful in 1m44s
Vulncheck / Vulncheck (pull_request) Successful in 3m3s
Build / Build Components (1.21) (pull_request) Successful in 4m0s
Build / Build Components (1.22) (pull_request) Successful in 3m57s
Tests and linters / Staticcheck (pull_request) Successful in 4m46s
Tests and linters / gopls check (pull_request) Successful in 4m48s
Tests and linters / Lint (pull_request) Successful in 5m45s
Tests and linters / Tests (1.21) (pull_request) Successful in 8m57s
Tests and linters / Tests with -race (pull_request) Successful in 9m10s
Tests and linters / Tests (1.22) (pull_request) Successful in 9m20s
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-24 18:15:53 +03:00
10ee865e98
[ #1096 ] tree: Make verifyClient
fill ape request with user claim tags
...
Vulncheck / Vulncheck (pull_request) Successful in 2m52s
DCO action / DCO (pull_request) Successful in 2m51s
Build / Build Components (1.21) (pull_request) Successful in 3m44s
Build / Build Components (1.22) (pull_request) Successful in 3m48s
Tests and linters / Staticcheck (pull_request) Successful in 4m34s
Tests and linters / gopls check (pull_request) Successful in 4m48s
Tests and linters / Lint (pull_request) Successful in 5m42s
Tests and linters / Tests with -race (pull_request) Successful in 8m56s
Tests and linters / Tests (1.21) (pull_request) Successful in 9m7s
Tests and linters / Tests (1.22) (pull_request) Successful in 9m15s
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-16 15:12:46 +03:00
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
97e54066d0
[ #1095 ] adm: Support user/group target for APE
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-16 11:03:50 +00:00
46bc6a7930
[ #1095 ] cli: Support user/group target for local overrides
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-16 11:03:50 +00:00
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
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
2ca5dfc2f6
Reapply "[ #972 ] Adopt slices.BinarySearch()"
...
This reverts commit 4bfc6d29b9
.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-04-10 12:09:34 +00:00
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
57466594fb
[ #1024 ] shard: Resync metabase concurrently
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-10 10:21:10 +03:00
bdf4990904
[ #1064 ] cli: Add EC header output to object head
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2024-04-09 07:08:53 +00:00
92569b9bbf
[ #1065 ] cli: Add support EC parameters
...
DCO action / DCO (pull_request) Successful in 20m19s
Vulncheck / Vulncheck (pull_request) Successful in 23m37s
Build / Build Components (1.20) (pull_request) Successful in 25m19s
Build / Build Components (1.21) (pull_request) Successful in 25m42s
Tests and linters / gopls check (pull_request) Successful in 28m36s
Tests and linters / Staticcheck (pull_request) Successful in 30m21s
Tests and linters / Tests (1.20) (pull_request) Successful in 6m41s
Tests and linters / Lint (pull_request) Successful in 8m48s
Tests and linters / Tests (1.21) (pull_request) Successful in 4m29s
Tests and linters / Tests with -race (pull_request) Successful in 4m46s
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2024-04-08 12:27:51 +03:00
17f7adb640
[ #1065 ] adm: Add support EC parameters
...
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2024-04-08 12:27:30 +03:00
0290f86579
[ #1065 ] adm: refactor dump-config
...
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2024-04-08 12:06:23 +03:00
9aa533e59a
[ #1072 ] node, ir: Add new config option kludge_compatibility_mode
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2024-04-04 11:05:25 +03:00
531542ce60
[ #1063 ] cli: Validate container creation for EC policy
...
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2024-04-03 10:33:51 +00:00
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