container: Add ListStream method #70

Merged
fyrchik merged 2 commits from elebedeva/frostfs-api:feat/stream-for-list into master 2024-11-29 10:54:08 +00:00

View file

@ -52,7 +52,7 @@ service ContainerService {
// access to container is denied.
rpc Get(GetRequest) returns (GetResponse);
// Returns all owner's containers from 'Container` smart contract' storage.
// Returns all owner's containers from `Container` smart contract storage.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS): \
@ -61,6 +61,17 @@ service ContainerService {
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
// container list access denied.
rpc List(ListRequest) returns (ListResponse);
// Returns all owner's containers from `Container` smart contract storage
'Container` smart contract' storage -> `Container` smart contract storage
``` 'Container` smart contract' storage -> `Container` smart contract storage ```

Fixed

Fixed
// via stream.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS): \
// container list has been successfully read;
// - Common failures (SECTION_FAILURE_COMMON);
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
// container list access denied.
rpc ListStream(ListStreamRequest) returns (stream ListStreamResponse);
}
// New FrostFS Container creation request
@ -245,3 +256,44 @@ message ListResponse {
// transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
}
// List containers stream
message ListStreamRequest {
// List containers stream request body.
message Body {
// Identifier of the container owner.

There is no dot at the end, and I am now wondering why we do not check this.

There is no dot at the end, and I am now wondering why we do not check this.
neo.fs.v2.refs.OwnerID owner_id = 1;
}
// Body of list containers stream request message.
Body body = 1;
// Carries request meta information. Header data is used only to regulate
// message transport and does not affect request execution.
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
// Carries request verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of
// transmission.
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
}
// List containers stream
message ListStreamResponse {
// List containers stream response body.
message Body {
// List of `ContainerID`s belonging to the requested `OwnerID`
repeated refs.ContainerID container_ids = 1;
}
// Body of list containers stream response message.
Body body = 1;
// Carries response meta information. Header data is used only to regulate
// message transport and does not affect request execution.
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
// Carries response verification information. This header is used to
// authenticate the nodes of the message route and check the correctness of
// transmission.
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
aarifullin marked this conversation as resolved
Review

#69 had been merged last week. Since, we don't use neo.fs.v2 namespace - it does no longer exist. You'll probably encounter difficulties trying regenerate protobufs within frostfs-sdk-go/api.

I'd like to know the steps for an implementation of this method in frostfs-node. Should it be held for a while until all nodes bump frostfs-sdk-go version (in other words, all services will run handlers in the new namespace)?

[#69](https://git.frostfs.info/TrueCloudLab/frostfs-api/pulls/69) had been merged last week. Since, we don't use `neo.fs.v2` namespace - it does no longer exist. You'll probably encounter difficulties trying regenerate protobufs within `frostfs-sdk-go/api`. I'd like to know the steps for an implementation of this method in `frostfs-node`. Should it be held for a while until all nodes bump `frostfs-sdk-go` version (in other words, all services will run handlers in the new namespace)?
Review

Sorry, this comment is irrelevant as those PR was merged into non-master branch

Sorry, this comment is irrelevant as those PR was merged into non-master branch
}