[#279] container: Use new methods to work with container format

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2020-12-24 13:20:20 +03:00 committed by Leonard Lyubich
parent 9680dfbdea
commit e53bf574b5
6 changed files with 18 additions and 20 deletions

View file

@ -138,7 +138,7 @@ It will be stored in sidechain when inner ring will accepts it.`,
cnr.SetPlacementPolicy(placementPolicy)
cnr.SetBasicACL(basicACL)
cnr.SetAttributes(attributes)
cnr.SetNonce(nonce[:])
cnr.SetNonceUUID(nonce)
id, err := cli.PutContainer(ctx, cnr, client.WithTTL(getTTL()))
if err != nil {
@ -674,9 +674,11 @@ func prettyPrintContainer(cnr *container.Container, jsonEncoding bool) {
fmt.Printf("attribute: %s=%s\n", attribute.Key(), attribute.Value())
}
nonce, err := uuid.FromBytes(cnr.Nonce())
nonce, err := cnr.NonceUUID()
if err == nil {
fmt.Println("nonce:", nonce)
} else {
fmt.Println("invalid nonce:", err)
}
fmt.Println("placement policy:")

2
go.mod
View file

@ -17,7 +17,7 @@ require (
github.com/multiformats/go-multihash v0.0.13 // indirect
github.com/nspcc-dev/hrw v1.0.9
github.com/nspcc-dev/neo-go v0.91.1-pre.0.20201030072836-71216865717b
github.com/nspcc-dev/neofs-api-go v1.21.1
github.com/nspcc-dev/neofs-api-go v1.21.2-0.20201224095453-c4f7be19ea14
github.com/nspcc-dev/neofs-crypto v0.3.0
github.com/nspcc-dev/tzhash v1.4.0
github.com/panjf2000/ants/v2 v2.3.0

4
go.sum
View file

@ -284,8 +284,8 @@ github.com/nspcc-dev/neo-go v0.73.1-pre.0.20200303142215-f5a1b928ce09/go.mod h1:
github.com/nspcc-dev/neo-go v0.91.0/go.mod h1:G6HdOWvzQ6tlvFdvFSN/PgCzLPN/X/X4d5hTjFRUDcc=
github.com/nspcc-dev/neo-go v0.91.1-pre.0.20201030072836-71216865717b h1:gk5bZgpWOehaDVKI5vBDkcjXTpRkKqcvIb1h/vHnBH4=
github.com/nspcc-dev/neo-go v0.91.1-pre.0.20201030072836-71216865717b/go.mod h1:9s7LNp2lMgf0caH2t0sam4+WT2SIauXozwP0AdBqnEo=
github.com/nspcc-dev/neofs-api-go v1.21.1 h1:xZgq1oimbwW9WR+/14WfiapGZgsCN+bkJse8OYJdWBM=
github.com/nspcc-dev/neofs-api-go v1.21.1/go.mod h1:G7dqincfdjBrAbL5nxVp82emF05fSVEqe59ICsoRDI8=
github.com/nspcc-dev/neofs-api-go v1.21.2-0.20201224095453-c4f7be19ea14 h1:5dv4dX/62JHl6s0uSmgeNKtPRsiEy2eBTLBuD22pITI=
github.com/nspcc-dev/neofs-api-go v1.21.2-0.20201224095453-c4f7be19ea14/go.mod h1:G7dqincfdjBrAbL5nxVp82emF05fSVEqe59ICsoRDI8=
github.com/nspcc-dev/neofs-crypto v0.2.0/go.mod h1:F/96fUzPM3wR+UGsPi3faVNmFlA9KAEAUQR7dMxZmNA=
github.com/nspcc-dev/neofs-crypto v0.2.3/go.mod h1:8w16GEJbH6791ktVqHN9YRNH3s9BEEKYxGhlFnp0cDw=
github.com/nspcc-dev/neofs-crypto v0.3.0 h1:zlr3pgoxuzrmGCxc5W8dGVfA9Rro8diFvVnBg0L4ifM=

View file

@ -1,7 +1,6 @@
package container
import (
"github.com/google/uuid"
"github.com/nspcc-dev/neofs-api-go/pkg"
"github.com/nspcc-dev/neofs-api-go/pkg/container"
"github.com/nspcc-dev/neofs-api-go/pkg/owner"
@ -27,7 +26,7 @@ func CheckFormat(c *container.Container) error {
return errors.Errorf("incorrect owner identifier: expected length %d != %d", owner.NEO3WalletSize, ln)
}
if _, err := uuid.FromBytes(c.Nonce()); err != nil {
if _, err := c.NonceUUID(); err != nil {
return errors.Wrap(err, "incorrect nonce")
}

View file

@ -31,16 +31,14 @@ func TestCheckFormat(t *testing.T) {
c.SetOwnerID(owner.NewIDFromNeo3Wallet(wallet))
c.SetNonce(nil)
// set incorrect nonce
cV2 := c.ToV2()
cV2.SetNonce([]byte{1, 2, 3})
c = container.NewContainerFromV2(cV2)
require.Error(t, CheckFormat(c))
uid, err := uuid.NewRandom()
require.NoError(t, err)
nonce, _ := uid.MarshalBinary()
c.SetNonce(nonce)
c.SetNonceUUID(uuid.New())
require.NoError(t, CheckFormat(c))
}

View file

@ -8,7 +8,6 @@ import (
"github.com/nspcc-dev/neofs-api-go/pkg/owner"
"github.com/nspcc-dev/neofs-api-go/v2/container"
"github.com/nspcc-dev/neofs-api-go/v2/refs"
containerCore "github.com/nspcc-dev/neofs-node/pkg/core/container"
containerMorph "github.com/nspcc-dev/neofs-node/pkg/morph/client/container"
"github.com/nspcc-dev/neofs-node/pkg/morph/client/container/wrapper"
containerSvc "github.com/nspcc-dev/neofs-node/pkg/services/container"
@ -32,13 +31,13 @@ func NewExecutor(client *containerMorph.Client) containerSvc.ServiceExecutor {
}
func (s *morphExecutor) Put(ctx context.Context, body *container.PutRequestBody) (*container.PutResponseBody, error) {
cnr := containerSDK.NewContainerFromV2(body.GetContainer())
sig := body.GetSignature()
if err := containerCore.CheckFormat(cnr); err != nil {
return nil, errors.Wrapf(err, "incorrect container format")
cnr, err := containerSDK.NewVerifiedFromV2(body.GetContainer())
if err != nil {
return nil, errors.Wrap(err, "invalid format of the container structure")
}
sig := body.GetSignature()
cid, err := s.wrapper.Put(cnr, sig.GetKey(), sig.GetSign())
if err != nil {
return nil, err