[#1103] node: Implement Get\Head
requests for EC object
All checks were successful
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
All checks were successful
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>
This commit is contained in:
parent
167c52a1a9
commit
112a7c690f
30 changed files with 579 additions and 11 deletions
|
@ -3,6 +3,7 @@ package meta_test
|
|||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"runtime"
|
||||
|
@ -15,8 +16,10 @@ import (
|
|||
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/client"
|
||||
cidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id/test"
|
||||
objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/erasurecode"
|
||||
oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id"
|
||||
oidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id/test"
|
||||
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
|
@ -109,6 +112,42 @@ func TestDB_Get(t *testing.T) {
|
|||
require.True(t, binaryEqual(child.CutPayload(), newChild))
|
||||
})
|
||||
|
||||
t.Run("put erasure-coded object", func(t *testing.T) {
|
||||
cnr := cidtest.ID()
|
||||
virtual := testutil.GenerateObjectWithCID(cnr)
|
||||
c, err := erasurecode.NewConstructor(3, 1)
|
||||
require.NoError(t, err)
|
||||
pk, err := keys.NewPrivateKey()
|
||||
require.NoError(t, err)
|
||||
parts, err := c.Split(virtual, &pk.PrivateKey)
|
||||
require.NoError(t, err)
|
||||
for _, part := range parts {
|
||||
err = putBig(db, part)
|
||||
var eiError *objectSDK.ECInfoError
|
||||
if err != nil && !errors.As(err, &eiError) {
|
||||
require.NoError(t, err)
|
||||
}
|
||||
}
|
||||
_, err = metaGet(db, object.AddressOf(virtual), true)
|
||||
var eiError *objectSDK.ECInfoError
|
||||
require.ErrorAs(t, err, &eiError)
|
||||
require.Equal(t, len(eiError.ECInfo().Chunks), len(parts))
|
||||
for _, chunk := range eiError.ECInfo().Chunks {
|
||||
var found bool
|
||||
for _, part := range parts {
|
||||
partID, _ := part.ID()
|
||||
var chunkID oid.ID
|
||||
require.NoError(t, chunkID.ReadFromV2(chunk.ID))
|
||||
if chunkID.Equals(partID) {
|
||||
found = true
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
require.Fail(t, "chunk not found")
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("get removed object", func(t *testing.T) {
|
||||
obj := oidtest.Address()
|
||||
ts := oidtest.Address()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue