forked from TrueCloudLab/frostfs-node
[#1131] *: Adopt SDK changes
`object.Address` has been moved to `object/address` `object.ID` has been moved to `object/id` Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
parent
1c821d6c36
commit
1667ec9e6d
139 changed files with 652 additions and 562 deletions
|
@ -11,7 +11,8 @@ import (
|
|||
|
||||
"github.com/nspcc-dev/neofs-node/pkg/util"
|
||||
cid "github.com/nspcc-dev/neofs-sdk-go/container/id"
|
||||
objectSDK "github.com/nspcc-dev/neofs-sdk-go/object"
|
||||
addressSDK "github.com/nspcc-dev/neofs-sdk-go/object/address"
|
||||
oidSDK "github.com/nspcc-dev/neofs-sdk-go/object/id"
|
||||
)
|
||||
|
||||
// FSTree represents object storage as filesystem tree.
|
||||
|
@ -41,17 +42,17 @@ const (
|
|||
// ErrFileNotFound is returned when file is missing.
|
||||
var ErrFileNotFound = errors.New("file not found")
|
||||
|
||||
func stringifyAddress(addr *objectSDK.Address) string {
|
||||
func stringifyAddress(addr *addressSDK.Address) string {
|
||||
return addr.ObjectID().String() + "." + addr.ContainerID().String()
|
||||
}
|
||||
|
||||
func addressFromString(s string) (*objectSDK.Address, error) {
|
||||
func addressFromString(s string) (*addressSDK.Address, error) {
|
||||
ss := strings.SplitN(s, ".", 2)
|
||||
if len(ss) != 2 {
|
||||
return nil, errors.New("invalid address")
|
||||
}
|
||||
|
||||
oid := objectSDK.NewID()
|
||||
oid := oidSDK.NewID()
|
||||
if err := oid.Parse(ss[0]); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -61,7 +62,7 @@ func addressFromString(s string) (*objectSDK.Address, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
addr := objectSDK.NewAddress()
|
||||
addr := addressSDK.NewAddress()
|
||||
addr.SetObjectID(oid)
|
||||
addr.SetContainerID(id)
|
||||
|
||||
|
@ -70,12 +71,12 @@ func addressFromString(s string) (*objectSDK.Address, error) {
|
|||
|
||||
// IterationPrm contains iteraction parameters.
|
||||
type IterationPrm struct {
|
||||
handler func(addr *objectSDK.Address, data []byte) error
|
||||
handler func(addr *addressSDK.Address, data []byte) error
|
||||
ignoreErrors bool
|
||||
}
|
||||
|
||||
// WithHandler sets a function to call on each object.
|
||||
func (p *IterationPrm) WithHandler(f func(addr *objectSDK.Address, data []byte) error) *IterationPrm {
|
||||
func (p *IterationPrm) WithHandler(f func(addr *addressSDK.Address, data []byte) error) *IterationPrm {
|
||||
p.handler = f
|
||||
return p
|
||||
}
|
||||
|
@ -143,7 +144,7 @@ func (t *FSTree) iterate(depth int, curPath []string, prm *IterationPrm) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (t *FSTree) treePath(addr *objectSDK.Address) string {
|
||||
func (t *FSTree) treePath(addr *addressSDK.Address) string {
|
||||
sAddr := stringifyAddress(addr)
|
||||
|
||||
dirs := make([]string, 0, t.Depth+1+1) // 1 for root, 1 for file
|
||||
|
@ -160,7 +161,7 @@ func (t *FSTree) treePath(addr *objectSDK.Address) string {
|
|||
}
|
||||
|
||||
// Delete removes object with the specified address from storage.
|
||||
func (t *FSTree) Delete(addr *objectSDK.Address) error {
|
||||
func (t *FSTree) Delete(addr *addressSDK.Address) error {
|
||||
p, err := t.Exists(addr)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -171,7 +172,7 @@ func (t *FSTree) Delete(addr *objectSDK.Address) error {
|
|||
|
||||
// Exists returns path to file with object contents if it exists in storage
|
||||
// and an error otherwise.
|
||||
func (t *FSTree) Exists(addr *objectSDK.Address) (string, error) {
|
||||
func (t *FSTree) Exists(addr *addressSDK.Address) (string, error) {
|
||||
p := t.treePath(addr)
|
||||
|
||||
_, err := os.Stat(p)
|
||||
|
@ -183,7 +184,7 @@ func (t *FSTree) Exists(addr *objectSDK.Address) (string, error) {
|
|||
}
|
||||
|
||||
// Put puts object in storage.
|
||||
func (t *FSTree) Put(addr *objectSDK.Address, data []byte) error {
|
||||
func (t *FSTree) Put(addr *addressSDK.Address, data []byte) error {
|
||||
p := t.treePath(addr)
|
||||
|
||||
if err := util.MkdirAllX(filepath.Dir(p), t.Permissions); err != nil {
|
||||
|
@ -194,7 +195,7 @@ func (t *FSTree) Put(addr *objectSDK.Address, data []byte) error {
|
|||
}
|
||||
|
||||
// Get returns object from storage by address.
|
||||
func (t *FSTree) Get(addr *objectSDK.Address) ([]byte, error) {
|
||||
func (t *FSTree) Get(addr *addressSDK.Address) ([]byte, error) {
|
||||
p := t.treePath(addr)
|
||||
|
||||
if _, err := os.Stat(p); os.IsNotExist(err) {
|
||||
|
|
|
@ -10,23 +10,24 @@ import (
|
|||
|
||||
"github.com/nspcc-dev/neofs-node/pkg/util"
|
||||
cidtest "github.com/nspcc-dev/neofs-sdk-go/container/id/test"
|
||||
objectSDK "github.com/nspcc-dev/neofs-sdk-go/object"
|
||||
objecttest "github.com/nspcc-dev/neofs-sdk-go/object/test"
|
||||
addressSDK "github.com/nspcc-dev/neofs-sdk-go/object/address"
|
||||
objecttest "github.com/nspcc-dev/neofs-sdk-go/object/address/test"
|
||||
oidSDK "github.com/nspcc-dev/neofs-sdk-go/object/id"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func testOID() *objectSDK.ID {
|
||||
func testOID() *oidSDK.ID {
|
||||
cs := [sha256.Size]byte{}
|
||||
_, _ = rand.Read(cs[:])
|
||||
|
||||
id := objectSDK.NewID()
|
||||
id := oidSDK.NewID()
|
||||
id.SetSHA256(cs)
|
||||
|
||||
return id
|
||||
}
|
||||
|
||||
func testAddress() *objectSDK.Address {
|
||||
a := objectSDK.NewAddress()
|
||||
func testAddress() *addressSDK.Address {
|
||||
a := addressSDK.NewAddress()
|
||||
a.SetObjectID(testOID())
|
||||
a.SetContainerID(cidtest.ID())
|
||||
|
||||
|
@ -56,7 +57,7 @@ func TestFSTree(t *testing.T) {
|
|||
}
|
||||
|
||||
const count = 3
|
||||
var addrs []*objectSDK.Address
|
||||
var addrs []*addressSDK.Address
|
||||
|
||||
store := map[string][]byte{}
|
||||
|
||||
|
@ -93,7 +94,7 @@ func TestFSTree(t *testing.T) {
|
|||
|
||||
t.Run("iterate", func(t *testing.T) {
|
||||
n := 0
|
||||
err := fs.Iterate(new(IterationPrm).WithHandler(func(addr *objectSDK.Address, data []byte) error {
|
||||
err := fs.Iterate(new(IterationPrm).WithHandler(func(addr *addressSDK.Address, data []byte) error {
|
||||
n++
|
||||
expected, ok := store[addr.String()]
|
||||
require.True(t, ok, "object %s was not found", addr.String())
|
||||
|
@ -107,7 +108,7 @@ func TestFSTree(t *testing.T) {
|
|||
t.Run("leave early", func(t *testing.T) {
|
||||
n := 0
|
||||
errStop := errors.New("stop")
|
||||
err := fs.Iterate(new(IterationPrm).WithHandler(func(addr *objectSDK.Address, data []byte) error {
|
||||
err := fs.Iterate(new(IterationPrm).WithHandler(func(addr *addressSDK.Address, data []byte) error {
|
||||
if n++; n == count-1 {
|
||||
return errStop
|
||||
}
|
||||
|
@ -134,7 +135,7 @@ func TestFSTree(t *testing.T) {
|
|||
require.NoError(t, util.MkdirAllX(filepath.Dir(p), fs.Permissions))
|
||||
require.NoError(t, os.WriteFile(p, []byte{1, 2, 3}, fs.Permissions))
|
||||
|
||||
err := fs.Iterate(new(IterationPrm).WithHandler(func(addr *objectSDK.Address, data []byte) error {
|
||||
err := fs.Iterate(new(IterationPrm).WithHandler(func(addr *addressSDK.Address, data []byte) error {
|
||||
n++
|
||||
return nil
|
||||
}).WithIgnoreErrors(true))
|
||||
|
@ -144,7 +145,7 @@ func TestFSTree(t *testing.T) {
|
|||
t.Run("error from handler is returned", func(t *testing.T) {
|
||||
expectedErr := errors.New("expected error")
|
||||
n := 0
|
||||
err := fs.Iterate(new(IterationPrm).WithHandler(func(addr *objectSDK.Address, data []byte) error {
|
||||
err := fs.Iterate(new(IterationPrm).WithHandler(func(addr *addressSDK.Address, data []byte) error {
|
||||
n++
|
||||
if n == count/2 { // process some iterations
|
||||
return expectedErr
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue