[#1400] owner: Upgrade SDK package

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2022-05-17 16:59:46 +03:00 committed by LeL
parent f8ac4632f8
commit bb25ecbd15
60 changed files with 379 additions and 327 deletions

View file

@ -2,13 +2,13 @@ package persistent
import (
"context"
"encoding/hex"
"errors"
"fmt"
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
"github.com/nspcc-dev/neofs-api-go/v2/session"
"github.com/nspcc-dev/neofs-node/pkg/services/session/storage"
"github.com/nspcc-dev/neofs-sdk-go/owner"
"github.com/nspcc-dev/neofs-sdk-go/user"
"go.etcd.io/bbolt"
)
@ -18,9 +18,16 @@ import (
// Returns response that is filled with just created token's
// ID and public key for it.
func (s *TokenStore) Create(ctx context.Context, body *session.CreateRequestBody) (*session.CreateResponseBody, error) {
ownerBytes, err := owner.NewIDFromV2(body.GetOwnerID()).Marshal()
idV2 := body.GetOwnerID()
if idV2 == nil {
return nil, errors.New("missing owner")
}
var id user.ID
err := id.ReadFromV2(*idV2)
if err != nil {
panic(err)
return nil, fmt.Errorf("invalid owner: %w", err)
}
uidBytes, err := storage.NewTokenID()
@ -41,21 +48,15 @@ func (s *TokenStore) Create(ctx context.Context, body *session.CreateRequestBody
err = s.db.Update(func(tx *bbolt.Tx) error {
rootBucket := tx.Bucket(sessionsBucket)
ownerBucket, err := rootBucket.CreateBucketIfNotExists(ownerBytes)
ownerBucket, err := rootBucket.CreateBucketIfNotExists(id.WalletBytes())
if err != nil {
return fmt.Errorf(
"could not get/create %s owner bucket: %w",
hex.EncodeToString(ownerBytes),
err,
)
"could not get/create %s owner bucket: %w", id, err)
}
err = ownerBucket.Put(uidBytes, value)
if err != nil {
return fmt.Errorf("could not put session token for %s oid: %w",
hex.EncodeToString(ownerBytes),
err,
)
return fmt.Errorf("could not put session token for %s oid: %w", id, err)
}
return nil

View file

@ -11,7 +11,7 @@ import (
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
"github.com/nspcc-dev/neofs-api-go/v2/refs"
"github.com/nspcc-dev/neofs-api-go/v2/session"
ownerSDK "github.com/nspcc-dev/neofs-sdk-go/owner"
usertest "github.com/nspcc-dev/neofs-sdk-go/user/test"
"github.com/stretchr/testify/require"
"go.etcd.io/bbolt"
)
@ -22,11 +22,13 @@ func TestTokenStore(t *testing.T) {
defer ts.Close()
owner := new(refs.OwnerID)
owner.SetValue([]byte{0, 1, 2, 3, 4, 5})
owner := usertest.ID()
var ownerV2 refs.OwnerID
owner.WriteToV2(&ownerV2)
req := new(session.CreateRequestBody)
req.SetOwnerID(owner)
req.SetOwnerID(&ownerV2)
const tokenNumber = 5
@ -50,7 +52,7 @@ func TestTokenStore(t *testing.T) {
}
for i, token := range tokens {
savedToken := ts.Get(ownerSDK.NewIDFromV2(owner), token.id)
savedToken := ts.Get(owner, token.id)
require.Equal(t, uint64(i), savedToken.ExpiredAt())
@ -64,13 +66,15 @@ func TestTokenStore_Persistent(t *testing.T) {
ts, err := NewTokenStore(path)
require.NoError(t, err)
owner := new(refs.OwnerID)
owner.SetValue([]byte{0, 1, 2, 3, 4, 5})
idOwner := usertest.ID()
var idOwnerV2 refs.OwnerID
idOwner.WriteToV2(&idOwnerV2)
const exp = 12345
req := new(session.CreateRequestBody)
req.SetOwnerID(owner)
req.SetOwnerID(&idOwnerV2)
req.SetExpiration(exp)
res, err := ts.Create(context.Background(), req)
@ -88,7 +92,7 @@ func TestTokenStore_Persistent(t *testing.T) {
defer ts.Close()
savedToken := ts.Get(ownerSDK.NewIDFromV2(owner), id)
savedToken := ts.Get(idOwner, id)
equalKeys(t, pubKey, savedToken.SessionKey())
}
@ -123,11 +127,13 @@ func TestTokenStore_RemoveOld(t *testing.T) {
defer ts.Close()
owner := new(refs.OwnerID)
owner.SetValue([]byte{0, 1, 2, 3, 4, 5})
owner := usertest.ID()
var ownerV2 refs.OwnerID
owner.WriteToV2(&ownerV2)
req := new(session.CreateRequestBody)
req.SetOwnerID(owner)
req.SetOwnerID(&ownerV2)
for _, test := range tests {
req.SetExpiration(test.epoch)
@ -144,7 +150,7 @@ func TestTokenStore_RemoveOld(t *testing.T) {
ts.RemoveOld(currEpoch)
for _, test := range tests {
token := ts.Get(ownerSDK.NewIDFromV2(owner), test.id)
token := ts.Get(owner, test.id)
if test.epoch <= currEpoch {
require.Nil(t, token)

View file

@ -7,7 +7,7 @@ import (
"fmt"
"github.com/nspcc-dev/neofs-node/pkg/services/session/storage"
ownerSDK "github.com/nspcc-dev/neofs-sdk-go/owner"
"github.com/nspcc-dev/neofs-sdk-go/user"
"go.etcd.io/bbolt"
"go.uber.org/zap"
)
@ -83,16 +83,11 @@ func NewTokenStore(path string, opts ...Option) (*TokenStore, error) {
// Get returns private token corresponding to the given identifiers.
//
// Returns nil is there is no element in storage.
func (s *TokenStore) Get(ownerID *ownerSDK.ID, tokenID []byte) (t *storage.PrivateToken) {
ownerBytes, err := ownerID.Marshal()
if err != nil {
panic(err)
}
err = s.db.View(func(tx *bbolt.Tx) error {
func (s *TokenStore) Get(ownerID *user.ID, tokenID []byte) (t *storage.PrivateToken) {
err := s.db.View(func(tx *bbolt.Tx) error {
rootBucket := tx.Bucket(sessionsBucket)
ownerBucket := rootBucket.Bucket(ownerBytes)
ownerBucket := rootBucket.Bucket(ownerID.WalletBytes())
if ownerBucket == nil {
return nil
}
@ -102,6 +97,8 @@ func (s *TokenStore) Get(ownerID *ownerSDK.ID, tokenID []byte) (t *storage.Priva
return nil
}
var err error
t, err = s.unpackToken(rawToken)
if err != nil {
return err