Commit graph

733 commits

Author SHA1 Message Date
Alex Vanin
de505ddee9 [#133] sdk: Use cid wrapper to sign container delete request
StableMarshalerWrapper is not suitable for container delete
request, because it signs marshaled structure of container id.
As for delete request, container id itself should be signed.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:45:11 +03:00
Leonard Lyubich
acbdbd410e [#132] sdk/object: Implement useful methods and function
Implement method to get address of the object. Implement method to copy the
object w/o payload. Implement function of object deserialization.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:45:11 +03:00
Leonard Lyubich
f18e8535c5 [#132] sdk/object: Add payload field to Object
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:45:11 +03:00
Leonard Lyubich
e222c441e5 [#132] v2/object: Implement stable unmarshaler on Object
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:45:11 +03:00
Leonard Lyubich
c125749c6e [#132] sdk/object: Implement Address type
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:45:11 +03:00
Leonard Lyubich
104604acae [#132] v2/refs: Implement stable unmarshaler on Address
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:45:11 +03:00
Alex Vanin
9cba1e233d [#131] sdk: Add owner stringer and script hash converter
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:45:11 +03:00
Leonard Lyubich
8c3f8268b9 [#130] sdk: Define object types
Define Object type that represents the immutable NeoFS object. Define
RawObject type that provides interface for convenient construction of NeoFS
object.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:45:11 +03:00
Leonard Lyubich
a65db08608 [#130] sdk: Define object identifier type
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:45:11 +03:00
Alex Vanin
edd0004b93 [#129] v2: Add unified structure for NodeInfo
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:45:11 +03:00
Alex Vanin
ac0d57cc9b [#129] v2: Regenerate NodeInfo struct from API
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:45:11 +03:00
Leonard Lyubich
63c8d6e9ea [#128] sdk: Use owner ID instead of NEO3Wallet
Replace owner.NEO3Wallet usage with owner.ID usage. Functions that process
the wallet address convert it to the owner identifier through the public
method.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:45:11 +03:00
Leonard Lyubich
c9d38aa2e1 [#128] sdk: Implement owner ID type
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:45:11 +03:00
Leonard Lyubich
1c3e69721b [#128] sdk: Implement Bytes method on NEO3Wallet type
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:45:11 +03:00
Leonard Lyubich
2b20230d7f [#128] sdk: Remove old container ID with the new one
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:45:11 +03:00
Leonard Lyubich
8df69c4042 sdk: Define container identifier type
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:45:11 +03:00
Alex Vanin
7f4544ede0 [#126] sdk: add usage example
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:45:11 +03:00
Alex Vanin
aa539cd0c4 [#126] sdk: implement container rpc for in client
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:45:11 +03:00
Alex Vanin
25e6b45b57 [#126] sdk: implement accounting rpc in client
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:45:11 +03:00
Alex Vanin
86e6221b76 [#126] sdk: add sdk client for all available api requests
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:45:11 +03:00
Alex Vanin
10137b44dd [#126] v2: make stable marshal wrapper public
This wrapper can be used outside of v2 packages to
use SignDataWithHandler function. This function uses
DataSource interface and this wrapper implements
this interface based on stable marshal structures.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:45:11 +03:00
Alex Vanin
8c920d75a6 [#126] sdk: add reference types
This commits adds container id and neo 3 wallet id, that
is used as owner id for object and container. Version
is set out outside of refs packages since it store global
version of SDK.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:45:11 +03:00
Alex Vanin
86d56086e3 Rename unified client constructors
Client constructor `New` will be used as `package.New()`
in external packages. This definition is not very clear
since it can create new structure or new client or whatever.
`package.NewClient()` is quite unambiguous.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:45:08 +03:00
Leonard Lyubich
55a6509e8f v2: Define API service interfaces
Define interfaces that reflect service (Accounting, Container, Session)
declarations in the API.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:44:39 +03:00
Alex Vanin
ecb0a4be67 Split object service structs from types
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:36 +03:00
Alex Vanin
ae1c1a351c Fix unified client tests
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:33 +03:00
Alex Vanin
252b7036c7 Adopt service session removal in packages
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:30 +03:00
Alex Vanin
07f25bd012 Merge session and service packages into session package
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:28 +03:00
Alex Vanin
933bcf300f Move bearer token to acl package
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:25 +03:00
Alex Vanin
5f2770d522 Separate type definition in accounting/grpc
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:21 +03:00
Alex Vanin
db12420c99 Move version and signature structures to refs package
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:19 +03:00
Alex Vanin
f1addc4cc5 Use checksum structure in object package
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:16 +03:00
Alex Vanin
4405492640 Use checksum structure in storagegroup package
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:13 +03:00
Alex Vanin
6787648027 Add unified checksum type in refs package
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:09 +03:00
Alex Vanin
556be90818 Recompile proto files with neofs-api jindo-rc-1
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:06 +03:00
Alex Vanin
bcacfb9cf6 Add object service interface for external clients
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:04 +03:00
Alex Vanin
e55b59bde7 Use protocol-specific names for stream structures
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:44:01 +03:00
Alex Vanin
5e25c76f40 Add client for object service
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:43:59 +03:00
Leonard Lyubich
f4b734b58e v2/container: Cover universal client with unit test
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:43:56 +03:00
Leonard Lyubich
7b491829b9 v2/container: Add universal client
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:43:54 +03:00
Leonard Lyubich
cb7831b00c v2/container: Implement thin NeoFS gRPC client
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:43:52 +03:00
Leonard Lyubich
e046e3fd04 v2/session: Cover universal client with unit test
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:43:49 +03:00
Leonard Lyubich
c62cd5c5a9 v2/session: Add universal client
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:43:47 +03:00
Leonard Lyubich
8f48c9c2f7 v2/session: Implement thin NeoFS gRPC client
Define thin wrapper over the generated gRPC Accounting service client to
fix some of its options.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:43:44 +03:00
Leonard Lyubich
288b89630b v2/accounting: Cover universal client with unit test
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:43:41 +03:00
Leonard Lyubich
5206d14c16 v2/accounting: Add universal client
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:43:39 +03:00
Leonard Lyubich
9253dac753 v2: Add cross-service client package
Add package with cross-service client utilities for working with transport
protocols and basic network types.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:43:36 +03:00
Leonard Lyubich
28d8acc58a v2/accounting: Implement thin NeoFS gRPC client
Defines thin wrapper over the generated gRPC Accounting service client to
fix some of its options.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:43:33 +03:00
Leonard Lyubich
53ce0967c6 v2/signature: Support all service requests/responses
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-09-18 10:43:30 +03:00
Alex Vanin
dc91753206 Add stable marshal for object service
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-18 10:43:27 +03:00