Pavel Karpy
0f7a14a69f
[ #274 ] pkg/client: Add epoch
field to SendIntermediateTrustPrm
...
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-04-22 13:37:07 +03:00
Alex Vanin
5a507e0d1b
[ #273 ] Add go1.16 tests and fix linter error
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-04-16 16:32:14 +03:00
Leonard Lyubich
8128d598d0
[ #265 ] pkg/client: Change trust type in SendIntermediateTrustPrm
...
Change accepted/returned value type of `SetTrust` / `Trust` methods of
`SendIntermediateTrustPrm` structure to `reputation.PeerToPeerTrust`.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-04-09 11:57:42 +03:00
Leonard Lyubich
a61c15b990
[ #265 ] pkg/reputation: Implement PeerToPeerTrust structure
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-04-09 11:57:42 +03:00
Leonard Lyubich
771f395d9d
[ #265 ] pkg/reputation: Implement GlobalTrust type
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-04-02 15:57:59 +03:00
Leonard Lyubich
05a351d344
[ #265 ] pkg/reputation: Change PeerID implementation
...
Make `PeerID` type to be the wrapper over v2 `PeerID` message structure.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-04-02 15:57:59 +03:00
Leonard Lyubich
c5000a3334
[ #265 ] pkg/client: Extend Client with SendIntermediateTrust method
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-04-02 15:57:59 +03:00
Leonard Lyubich
b792e4e464
[ #265 ] pkg/client: Implement SendLocalTrust method
...
Define `Reputation` section interface. Embed `Reputation` interface to
`Client` one.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-03-25 11:20:34 +03:00
Leonard Lyubich
009f704377
[ #265 ] pkg/reputation: Implement PeerID and Trust types
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-03-25 11:20:34 +03:00
Leonard Lyubich
2fcb6d9613
[ #267 ] pkg: Fix IsSupportedVersion implementation
...
Current API library supports versions up to 2.4.x.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-03-17 14:30:02 +03:00
Leonard Lyubich
7cb9b8f283
[ #267 ] pkg/client: Extend Client interface with Raw method
...
Add `Client.Raw` method which returns underlying raw protobuf client.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-03-17 14:30:02 +03:00
Leonard Lyubich
a43175e2ea
[ #263 ] pkg/client: Split interface method's declarations with linebreaks
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-03-17 14:03:49 +03:00
Leonard Lyubich
c819909906
[ #263 ] pkg/client: Refactor the client to use raw protobuf client
...
Make `Client` to be the wrapper over raw protobuf client. Provide public
method to get the underlying raw client. Change implementations of all
methods with the new approach of the RPC execution.
Additional changes:
* key replaced from `New` argument to `WithDefaultPrivateKey` option;
* `GetSelfBalance` is removed as non-viable;
* `GetEACLWithSignature` is removed, `GetEACL` returns `EACLWithSignature`;
* `AttachSessionToken` / `AttachBearerToken` are removed as non-viable;
* redundant options are removed.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-03-17 14:03:49 +03:00
Leonard Lyubich
5a9dd7ab3f
[ #263 ] pkg/netmap: Do not allocate nil repeated fields during conversion
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-03-17 14:03:49 +03:00
Evgenii Stratonikov
ae2fb263f1
[ #266 ] pkg/client: Export Client
interface instead of structure
...
Make it easier to test API clients and mock specific methods.
Also add comments on exported methods.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-03-17 13:43:22 +03:00
Alex Vanin
e39a1fd949
pkg/object: Add content type constant
...
Specification defined one more well-known object
attribute `Content-Type`.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-03-15 13:27:28 +03:00
Evgenii Stratonikov
64505180b4
[ #261 ] pkg/client: Provide signing key in call options
...
Allow to reuse underlying connection for requests
with different key. If no key is specified the one
provided on client creation is used.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-03-12 10:40:10 +03:00
Evgenii Stratonikov
74769323be
[ #261 ] pkg/client: Use self address as default in ListContainers
/GetBalance
...
This will allow us to overwrite key for every request.
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-03-12 10:40:10 +03:00
Leonard Lyubich
8529aa2a93
[ #259 ] pkg/client: Add NetworkInfo method
...
Implement NetworkInfo method that performs NeoFS API NetmapService
NetworkInfo RPC.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-02-19 16:25:53 +03:00
Leonard Lyubich
f6268339d0
[ #259 ] pkg/netmap: Implement v2-compatible NetworkInfo type
...
Define NetworkInfo structure. Implement constructors, fields getters and
setters, binary and JSON encoding methods.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-02-19 16:25:53 +03:00
Leonard Lyubich
521df90def
[ #255 ] pkg/netmap: Define constant keys to all well-known attributes
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-02-11 15:04:13 +03:00
Leonard Lyubich
8254da2890
[ #255 ] pkg/netmap: Move common substring of well-known attributes to prefix
...
Rename `PriceAttr` constant to `AttrPrice`. Rename `CapacityAttr` constant
to `AttrCapacity`. Add documentation to both of them.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-02-11 15:04:13 +03:00
Leonard Lyubich
e782531f25
[ #255 ] pkg/object: Implement json.Marshaler/Unmarshaler on SearchFilters
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-02-11 15:04:13 +03:00
Leonard Lyubich
ebff07aaf2
[ #254 ] object: Support new values of search match type
...
Support STRING_NOT_EQUAL and NOT_PRESENT match types
of object search filters.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-02-11 15:04:13 +03:00
Leonard Lyubich
e9ae408c3a
[ #254 ] pkg/object: Rewrite unit test of MatchType enum
...
Avoid direct usage of naming constants where it is not necessary.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-02-11 15:04:13 +03:00
Leonard Lyubich
93e1580684
[ #253 ] container: Implement marshalers on UsedSpaceAnnouncement structure
...
Implement Unmarshal method on UsedSpaceAnnouncement v2 message. Implement
Marshal/Unmarshal methods on cross-version UsedSpaceAnnouncement type.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-02-11 15:04:13 +03:00
Alex Vanin
9e01f29dda
[ #250 ] pkg/container: Add epoch field to size announce body
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-02-11 15:04:13 +03:00
Alex Vanin
5566081d2d
[ #245 ] pkg/client: Add AnnounceContainerUsedSpace method
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-02-11 15:04:13 +03:00
Evgenii Stratonikov
5d9ef5feec
[ #248 ] netmap: fulfill backup factor for default attribute
...
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2021-02-03 15:31:18 +03:00
Alex Vanin
c35e15a758
[ #249 ] pkg/netmap: Add CBF field in placement context
...
If CBF value is not set, then netmap package uses default CBF
value. However it modifies placement policy structure in
`GetContainerNodes()` because policy passed as a pointer.
Instead package can store CBF value in internal context and use
it without policy modification.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-01-27 15:47:06 +03:00
Alex Vanin
9401724b9c
[ #246 ] pkg/client: Use io.Reader wrapper at object put
...
Object payload transferred in chunks. Size of the
chunks may be limited by transport protocols. To
split it we use `io.CopyBuffer` with pre-allocated
buffer size of one chunk. However this function may
ignore buffer if reader or writer implements
`WriteTo` or `ReadFrom` methods. Unfortunately
`bytes.Reader` implements `WriteTo` function.
To fix this we wrap reader so wrapper implements
only `io.Reader` interface.
Related to github.com/nspcc-dev/neofs-node/issues/338
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-01-25 13:25:52 +03:00
Alex Vanin
8a82400451
[ #243 ] Fix golint linter errors
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-01-12 18:22:07 +03:00
Alex Vanin
c2db2a54a1
[ #243 ] Fix exhaustive linter errors
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-01-12 18:22:07 +03:00
Alex Vanin
aafeb70bdb
[ #235 ] v2/audit: Regenerate protobuf
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-12-25 16:20:34 +03:00
Alex Vanin
1c25c3904b
[ #234 ] Update audit result struct definition
...
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-12-25 16:20:34 +03:00
Leonard Lyubich
9986a4ecd1
[ #233 ] Implement data audit result type with basic methods
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-25 16:20:34 +03:00
Leonard Lyubich
f0ebe80a78
[ #231 ] object/search: Implement method to add search filter by type
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-25 16:20:26 +03:00
Leonard Lyubich
53e2756762
[ #231 ] object: Implement string encode/decode methods on Type
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-25 16:20:26 +03:00
Leonard Lyubich
0f04087543
[ #230 ] pkg: Implement string encode/decode methods on Checksum
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-25 16:20:26 +03:00
Leonard Lyubich
6861de042b
[ #230 ] pkg: Implement storage group type with basic methods
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-25 16:20:26 +03:00
Leonard Lyubich
37e2cab93b
[ #229 ] pkg/client: Set hash fields to result of short HEAD operation
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-25 16:20:26 +03:00
Leonard Lyubich
c4f7be19ea
[ #194 ] pkg/client: Verify container format in GetContainer method
...
Make Client.GetContainer method to return an error if received container
structure does not meet NeoFS API specification.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-24 12:54:53 +03:00
Leonard Lyubich
7988405753
[ #194 ] pkg/container: Implement container constructor with format check
...
Implement NewVerifiedFromV2 function that verifies format of NeoFS API V2
Container message.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-24 12:54:53 +03:00
Leonard Lyubich
70c29ca3e5
[ #194 ] pkg/container: Implement container nonce getter/setter as UUID
...
Implement NonceUUID/SetNonceUUID methods on container structure. Change
implementation of Nonce/SetNonce methods and mark them deprecated.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-24 12:54:53 +03:00
Leonard Lyubich
3550e128bb
[ #236 ] Fix SDK minor version number
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-24 10:35:33 +03:00
Leonard Lyubich
5395988efc
[ #208 ] pkg/client: Add function to get container and verify ID
...
GetContainer method reads container structure by identifier from the
network. In some cases it is required to additionally check the
correspondence of the container structure to the identifier as a hash from
the binary representation. To do this, a new function
GetVerifiedContainerStructure is defined to execute the check after
receiving the container.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-17 14:52:04 +03:00
Leonard Lyubich
84839b09c2
[ #208 ] pkg/container: Define standard error for mismatch identifiers
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-17 14:52:04 +03:00
Leonard Lyubich
1bc91466aa
sdk/client: Fix setter of objectAddressWriter structure value
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-11 11:19:45 +03:00
Leonard Lyubich
803c91b3eb
[ #226 ] sdk/client: Add tombstone address to the return of DeleteObject
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-10 18:26:23 +03:00
Leonard Lyubich
c064760f5d
[ #226 ] sdk/object: Implement Tombstone type with field access and encoding
...
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-12-10 18:26:23 +03:00