diff --git a/go.mod b/go.mod index 6620cf83aa26..abd2e5088b20 100644 --- a/go.mod +++ b/go.mod @@ -62,7 +62,7 @@ require ( google.golang.org/grpc v1.62.0 gopkg.in/segmentio/analytics-go.v3 v3.1.0 gopkg.in/yaml.v3 v3.0.1 - storj.io/common v0.0.0-20240417231550-f34d2f5f48d5 + storj.io/common v0.0.0-20240423093537-3f87f2a59098 storj.io/drpc v0.0.34 storj.io/eventkit v0.0.0-20240306141230-6cb545e5f892 storj.io/monkit-jaeger v0.0.0-20240221095020-52b0792fa6cd diff --git a/go.sum b/go.sum index 49ae0f527aed..3a716999e5c6 100644 --- a/go.sum +++ b/go.sum @@ -901,8 +901,8 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= storj.io/common v0.0.0-20220719163320-cd2ef8e1b9b0/go.mod h1:mCYV6Ud5+cdbuaxdPD5Zht/HYaIn0sffnnws9ErkrMQ= -storj.io/common v0.0.0-20240417231550-f34d2f5f48d5 h1:WyM77KVNO9+Q6Ox82iyEzYeGMAaAfiDedTIQLwOirTU= -storj.io/common v0.0.0-20240417231550-f34d2f5f48d5/go.mod h1:MFl009RHY4tIqySVNy/6EmgRw2q60d26h9N/nb7JxGU= +storj.io/common v0.0.0-20240423093537-3f87f2a59098 h1:Xh0fk7anHRsrb9aYXro4SNas/FD0/+kEc3g9w9nkr3s= +storj.io/common v0.0.0-20240423093537-3f87f2a59098/go.mod h1:MFl009RHY4tIqySVNy/6EmgRw2q60d26h9N/nb7JxGU= storj.io/drpc v0.0.32/go.mod h1:6rcOyR/QQkSTX/9L5ZGtlZaE2PtXTTZl8d+ulSeeYEg= storj.io/drpc v0.0.34 h1:q9zlQKfJ5A7x8NQNFk8x7eKUF78FMhmAbZLnFK+og7I= storj.io/drpc v0.0.34/go.mod h1:Y9LZaa8esL1PW2IDMqJE7CFSNq7d5bQ3RI7mGPtmKMg= diff --git a/satellite/metabase/alias.go b/satellite/metabase/alias.go index 6711449d7b15..948ab641a494 100644 --- a/satellite/metabase/alias.go +++ b/satellite/metabase/alias.go @@ -177,18 +177,14 @@ func (s *SpannerAdapter) ListNodeAliases(ctx context.Context) (aliases []NodeAli return nil, Error.Wrap(err) } - var nodeID []byte + var nodeID storj.NodeID var nodeAlias int64 if err := row.Columns(&nodeID, &nodeAlias); err != nil { return nil, Error.New("ListNodeAliases scan failed: %w", err) } - id, err := storj.NodeIDFromBytes(nodeID) - if err != nil { - return nil, Error.Wrap(err) - } aliases = append(aliases, NodeAliasEntry{ - ID: id, + ID: nodeID, Alias: NodeAlias(nodeAlias), }) } diff --git a/satellite/metabase/common.go b/satellite/metabase/common.go index a4b977eed628..8f89a47d803a 100644 --- a/satellite/metabase/common.go +++ b/satellite/metabase/common.go @@ -373,6 +373,28 @@ func (pos SegmentPosition) Encode() uint64 { return uint64(pos.Part)<<32 | uint6 // Less returns whether pos should before b. func (pos SegmentPosition) Less(b SegmentPosition) bool { return pos.Encode() < b.Encode() } +// DecodeSpanner implements spanner.Decoder. +func (pos *SegmentPosition) DecodeSpanner(val any) (err error) { + switch value := val.(type) { + case int64: + *pos = SegmentPositionFromEncoded(uint64(value)) + case string: + parsedValue, err := strconv.ParseInt(value, 10, 64) + if err != nil { + return Error.New("unable to scan %T into SegmentPosition: %v", val, err) + } + *pos = SegmentPositionFromEncoded(uint64(parsedValue)) + default: + return Error.New("unable to scan %T into SegmentPosition", val) + } + return nil +} + +// EncodeSpanner implements spanner.Encoder. +func (pos SegmentPosition) EncodeSpanner() (any, error) { + return int64(pos.Encode()), nil +} + // Version is used to uniquely identify objects with the same key. type Version int64 diff --git a/satellite/metabase/raw.go b/satellite/metabase/raw.go index 958c3938a626..3668def5b179 100644 --- a/satellite/metabase/raw.go +++ b/satellite/metabase/raw.go @@ -400,49 +400,23 @@ func (s *SpannerAdapter) TestingGetAllSegments(ctx context.Context, aliasCache * } var segment RawSegment - - var position int64 - var createdAt time.Time - var repairedAt, expiresAt spanner.NullTime - var encryptedSize, plainOffset, plainSize, placement int64 - var streamID, rootPieceID, encryptedKeyNonce, encryptedKey, encryptedETag, inlineData []byte + var encryptedSize, plainSize, placement int64 var aliasPieces AliasPieces + // TODO(spanner) potentially we could use row.ToStruct but we would need to add AliasPieces to RawSegment if err := row.Columns( - &streamID, &position, - &createdAt, &repairedAt, &expiresAt, - &rootPieceID, &encryptedKeyNonce, &encryptedKey, - &encryptedSize, &plainOffset, &plainSize, - &encryptedETag, + &segment.StreamID, &segment.Position, + &segment.CreatedAt, &segment.RepairedAt, &segment.ExpiresAt, + &segment.RootPieceID, &segment.EncryptedKeyNonce, &segment.EncryptedKey, + &encryptedSize, &segment.PlainOffset, &plainSize, + &segment.EncryptedETag, redundancyScheme{&segment.Redundancy}, - &inlineData, &aliasPieces, + &segment.InlineData, &aliasPieces, &placement, ); err != nil { return nil, Error.Wrap(err) } - - segment.StreamID, err = uuid.FromBytes(streamID) - if err != nil { - return nil, Error.Wrap(err) - } - segment.Position = SegmentPositionFromEncoded(uint64(position)) - segment.CreatedAt = createdAt - segment.RootPieceID, err = storj.PieceIDFromBytes(rootPieceID) - if err != nil { - return nil, Error.Wrap(err) - } - segment.EncryptedKeyNonce = encryptedKeyNonce - segment.EncryptedKey = encryptedKey - if repairedAt.Valid { - segment.RepairedAt = &repairedAt.Time - } - if expiresAt.Valid { - segment.ExpiresAt = &expiresAt.Time - } segment.EncryptedSize = int32(encryptedSize) - segment.PlainOffset = plainOffset segment.PlainSize = int32(plainSize) - segment.EncryptedETag = encryptedETag - segment.InlineData = inlineData segment.Placement = storj.PlacementConstraint(placement) segment.Pieces, err = aliasCache.ConvertAliasesToPieces(ctx, aliasPieces) @@ -594,14 +568,14 @@ func (s *SpannerAdapter) TestingBatchInsertSegments(ctx context.Context, aliasCa // TODO(spanner) verify if casting is good vals := append([]interface{}{}, - segment.StreamID.Bytes(), - int64(segment.Position.Encode()), + segment.StreamID, + segment.Position, segment.CreatedAt, segment.RepairedAt, segment.ExpiresAt, - segment.RootPieceID.Bytes(), + segment.RootPieceID, segment.EncryptedKeyNonce, segment.EncryptedKey, segment.EncryptedETag, diff --git a/testsuite/playwright-ui/go.mod b/testsuite/playwright-ui/go.mod index 5ed7449f339f..0df934740c4f 100644 --- a/testsuite/playwright-ui/go.mod +++ b/testsuite/playwright-ui/go.mod @@ -10,7 +10,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/zeebo/errs v1.3.0 go.uber.org/zap v1.27.0 - storj.io/common v0.0.0-20240417231550-f34d2f5f48d5 + storj.io/common v0.0.0-20240423093537-3f87f2a59098 storj.io/edge v1.74.1-0.20240320132813-10b6e5e71fe5 storj.io/storj v1.91.0-alpha.0.20240320150624-bf817ece68fd ) diff --git a/testsuite/playwright-ui/go.sum b/testsuite/playwright-ui/go.sum index da23dfd26528..60b68c1efb8d 100644 --- a/testsuite/playwright-ui/go.sum +++ b/testsuite/playwright-ui/go.sum @@ -2004,8 +2004,8 @@ sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1 sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= storj.io/common v0.0.0-20220719163320-cd2ef8e1b9b0/go.mod h1:mCYV6Ud5+cdbuaxdPD5Zht/HYaIn0sffnnws9ErkrMQ= -storj.io/common v0.0.0-20240417231550-f34d2f5f48d5 h1:WyM77KVNO9+Q6Ox82iyEzYeGMAaAfiDedTIQLwOirTU= -storj.io/common v0.0.0-20240417231550-f34d2f5f48d5/go.mod h1:MFl009RHY4tIqySVNy/6EmgRw2q60d26h9N/nb7JxGU= +storj.io/common v0.0.0-20240423093537-3f87f2a59098 h1:Xh0fk7anHRsrb9aYXro4SNas/FD0/+kEc3g9w9nkr3s= +storj.io/common v0.0.0-20240423093537-3f87f2a59098/go.mod h1:MFl009RHY4tIqySVNy/6EmgRw2q60d26h9N/nb7JxGU= storj.io/dotworld v0.0.0-20210324183515-0d11aeccd840 h1:oqMwoF6vaOrCe92SKRyr8cc2WSjLYAd8fjpAHA7rNqY= storj.io/dotworld v0.0.0-20210324183515-0d11aeccd840/go.mod h1:KU9YvEgRrMMiWLvH8pzn1UkoCoxggKIPvQxmNdx7aXQ= storj.io/drpc v0.0.32/go.mod h1:6rcOyR/QQkSTX/9L5ZGtlZaE2PtXTTZl8d+ulSeeYEg= diff --git a/testsuite/storjscan/go.mod b/testsuite/storjscan/go.mod index 946e6cd089a6..c82b253dda60 100644 --- a/testsuite/storjscan/go.mod +++ b/testsuite/storjscan/go.mod @@ -9,7 +9,7 @@ require ( github.com/zeebo/errs v1.3.0 go.uber.org/zap v1.27.0 golang.org/x/sync v0.6.0 - storj.io/common v0.0.0-20240417231550-f34d2f5f48d5 + storj.io/common v0.0.0-20240423093537-3f87f2a59098 storj.io/storj v1.63.1 storj.io/storjscan v0.0.0-20220926140643-1623c3b391b0 storj.io/uplink v1.12.3-0.20240417071044-72c1ade6e3bd diff --git a/testsuite/storjscan/go.sum b/testsuite/storjscan/go.sum index 938d306292ac..40a6b3dfbbc2 100644 --- a/testsuite/storjscan/go.sum +++ b/testsuite/storjscan/go.sum @@ -1307,8 +1307,8 @@ rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= storj.io/common v0.0.0-20220719163320-cd2ef8e1b9b0/go.mod h1:mCYV6Ud5+cdbuaxdPD5Zht/HYaIn0sffnnws9ErkrMQ= -storj.io/common v0.0.0-20240417231550-f34d2f5f48d5 h1:WyM77KVNO9+Q6Ox82iyEzYeGMAaAfiDedTIQLwOirTU= -storj.io/common v0.0.0-20240417231550-f34d2f5f48d5/go.mod h1:MFl009RHY4tIqySVNy/6EmgRw2q60d26h9N/nb7JxGU= +storj.io/common v0.0.0-20240423093537-3f87f2a59098 h1:Xh0fk7anHRsrb9aYXro4SNas/FD0/+kEc3g9w9nkr3s= +storj.io/common v0.0.0-20240423093537-3f87f2a59098/go.mod h1:MFl009RHY4tIqySVNy/6EmgRw2q60d26h9N/nb7JxGU= storj.io/drpc v0.0.32/go.mod h1:6rcOyR/QQkSTX/9L5ZGtlZaE2PtXTTZl8d+ulSeeYEg= storj.io/drpc v0.0.34 h1:q9zlQKfJ5A7x8NQNFk8x7eKUF78FMhmAbZLnFK+og7I= storj.io/drpc v0.0.34/go.mod h1:Y9LZaa8esL1PW2IDMqJE7CFSNq7d5bQ3RI7mGPtmKMg=