forked from TrueCloudLab/frostfs-api-go
Merge pull request #54 from nspcc-dev/response-meta-header
Response meta header
This commit is contained in:
commit
9a98dffa62
6 changed files with 51 additions and 1 deletions
|
@ -161,6 +161,10 @@ DeleteResponse is empty because we cannot guarantee permanent object removal
|
||||||
in distributed system.
|
in distributed system.
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) |
|
||||||
|
|
||||||
|
|
||||||
<a name="object.GetRangeHashRequest"></a>
|
<a name="object.GetRangeHashRequest"></a>
|
||||||
|
|
||||||
|
@ -186,6 +190,7 @@ in distributed system.
|
||||||
| Field | Type | Label | Description |
|
| Field | Type | Label | Description |
|
||||||
| ----- | ---- | ----- | ----------- |
|
| ----- | ---- | ----- | ----------- |
|
||||||
| Hashes | [bytes](#bytes) | repeated | Hashes is a homomorphic hashes of all ranges |
|
| Hashes | [bytes](#bytes) | repeated | Hashes is a homomorphic hashes of all ranges |
|
||||||
|
| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) |
|
||||||
|
|
||||||
|
|
||||||
<a name="object.GetRangeRequest"></a>
|
<a name="object.GetRangeRequest"></a>
|
||||||
|
@ -211,6 +216,7 @@ in distributed system.
|
||||||
| Field | Type | Label | Description |
|
| Field | Type | Label | Description |
|
||||||
| ----- | ---- | ----- | ----------- |
|
| ----- | ---- | ----- | ----------- |
|
||||||
| Fragment | [bytes](#bytes) | | Fragment of object's payload |
|
| Fragment | [bytes](#bytes) | | Fragment of object's payload |
|
||||||
|
| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) |
|
||||||
|
|
||||||
|
|
||||||
<a name="object.GetRequest"></a>
|
<a name="object.GetRequest"></a>
|
||||||
|
@ -237,6 +243,7 @@ in distributed system.
|
||||||
| ----- | ---- | ----- | ----------- |
|
| ----- | ---- | ----- | ----------- |
|
||||||
| object | [Object](#object.Object) | | Object header and some payload |
|
| object | [Object](#object.Object) | | Object header and some payload |
|
||||||
| Chunk | [bytes](#bytes) | | Chunk of remaining payload |
|
| Chunk | [bytes](#bytes) | | Chunk of remaining payload |
|
||||||
|
| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) |
|
||||||
|
|
||||||
|
|
||||||
<a name="object.HeadRequest"></a>
|
<a name="object.HeadRequest"></a>
|
||||||
|
@ -263,6 +270,7 @@ in distributed system.
|
||||||
| Field | Type | Label | Description |
|
| Field | Type | Label | Description |
|
||||||
| ----- | ---- | ----- | ----------- |
|
| ----- | ---- | ----- | ----------- |
|
||||||
| Object | [Object](#object.Object) | | Object without payload |
|
| Object | [Object](#object.Object) | | Object without payload |
|
||||||
|
| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) |
|
||||||
|
|
||||||
|
|
||||||
<a name="object.PutRequest"></a>
|
<a name="object.PutRequest"></a>
|
||||||
|
@ -300,6 +308,7 @@ in distributed system.
|
||||||
| Field | Type | Label | Description |
|
| Field | Type | Label | Description |
|
||||||
| ----- | ---- | ----- | ----------- |
|
| ----- | ---- | ----- | ----------- |
|
||||||
| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) |
|
| Address | [refs.Address](#refs.Address) | | Address of object (container id + object id) |
|
||||||
|
| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) |
|
||||||
|
|
||||||
|
|
||||||
<a name="object.SearchRequest"></a>
|
<a name="object.SearchRequest"></a>
|
||||||
|
@ -326,6 +335,7 @@ in distributed system.
|
||||||
| Field | Type | Label | Description |
|
| Field | Type | Label | Description |
|
||||||
| ----- | ---- | ----- | ----------- |
|
| ----- | ---- | ----- | ----------- |
|
||||||
| Addresses | [refs.Address](#refs.Address) | repeated | Addresses of found objects |
|
| Addresses | [refs.Address](#refs.Address) | repeated | Addresses of found objects |
|
||||||
|
| Meta | [service.ResponseMetaHeader](#service.ResponseMetaHeader) | | ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message) |
|
||||||
|
|
||||||
<!-- end messages -->
|
<!-- end messages -->
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
- Messages
|
- Messages
|
||||||
- [RequestMetaHeader](#service.RequestMetaHeader)
|
- [RequestMetaHeader](#service.RequestMetaHeader)
|
||||||
|
- [ResponseMetaHeader](#service.ResponseMetaHeader)
|
||||||
|
|
||||||
|
|
||||||
- [service/verify.proto](#service/verify.proto)
|
- [service/verify.proto](#service/verify.proto)
|
||||||
|
@ -49,6 +50,19 @@ RequestMetaHeader contains information about request meta headers
|
||||||
| Epoch | [uint64](#uint64) | | Epoch for user can be empty, because node sets epoch to the actual value |
|
| Epoch | [uint64](#uint64) | | Epoch for user can be empty, because node sets epoch to the actual value |
|
||||||
| Version | [uint32](#uint32) | | Version defines protocol version TODO: not used for now, should be implemented in future |
|
| Version | [uint32](#uint32) | | Version defines protocol version TODO: not used for now, should be implemented in future |
|
||||||
|
|
||||||
|
|
||||||
|
<a name="service.ResponseMetaHeader"></a>
|
||||||
|
|
||||||
|
### Message ResponseMetaHeader
|
||||||
|
ResponseMetaHeader contains meta information based on request processing by server
|
||||||
|
(should be embedded into message)
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| Epoch | [uint64](#uint64) | | Current NeoFS epoch on server |
|
||||||
|
| Version | [uint32](#uint32) | | Version defines protocol version TODO: not used for now, should be implemented in future |
|
||||||
|
|
||||||
<!-- end messages -->
|
<!-- end messages -->
|
||||||
|
|
||||||
<!-- end enums -->
|
<!-- end enums -->
|
||||||
|
|
Binary file not shown.
|
@ -73,6 +73,9 @@ message GetResponse {
|
||||||
// Chunk of remaining payload
|
// Chunk of remaining payload
|
||||||
bytes Chunk = 2;
|
bytes Chunk = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
|
||||||
|
service.ResponseMetaHeader Meta = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
}
|
}
|
||||||
|
|
||||||
message PutRequest {
|
message PutRequest {
|
||||||
|
@ -99,6 +102,8 @@ message PutRequest {
|
||||||
message PutResponse {
|
message PutResponse {
|
||||||
// Address of object (container id + object id)
|
// Address of object (container id + object id)
|
||||||
refs.Address Address = 1 [(gogoproto.nullable) = false];
|
refs.Address Address = 1 [(gogoproto.nullable) = false];
|
||||||
|
// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
|
||||||
|
service.ResponseMetaHeader Meta = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
}
|
}
|
||||||
message DeleteRequest {
|
message DeleteRequest {
|
||||||
// Address of object (container id + object id)
|
// Address of object (container id + object id)
|
||||||
|
@ -115,7 +120,10 @@ message DeleteRequest {
|
||||||
|
|
||||||
// DeleteResponse is empty because we cannot guarantee permanent object removal
|
// DeleteResponse is empty because we cannot guarantee permanent object removal
|
||||||
// in distributed system.
|
// in distributed system.
|
||||||
message DeleteResponse {}
|
message DeleteResponse {
|
||||||
|
// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
|
||||||
|
service.ResponseMetaHeader Meta = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
message HeadRequest {
|
message HeadRequest {
|
||||||
// Address of object (container id + object id)
|
// Address of object (container id + object id)
|
||||||
|
@ -132,6 +140,8 @@ message HeadRequest {
|
||||||
message HeadResponse {
|
message HeadResponse {
|
||||||
// Object without payload
|
// Object without payload
|
||||||
Object Object = 1;
|
Object Object = 1;
|
||||||
|
// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
|
||||||
|
service.ResponseMetaHeader Meta = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
}
|
}
|
||||||
|
|
||||||
message SearchRequest {
|
message SearchRequest {
|
||||||
|
@ -150,6 +160,8 @@ message SearchRequest {
|
||||||
message SearchResponse {
|
message SearchResponse {
|
||||||
// Addresses of found objects
|
// Addresses of found objects
|
||||||
repeated refs.Address Addresses = 1 [(gogoproto.nullable) = false];
|
repeated refs.Address Addresses = 1 [(gogoproto.nullable) = false];
|
||||||
|
// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
|
||||||
|
service.ResponseMetaHeader Meta = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
}
|
}
|
||||||
|
|
||||||
message GetRangeRequest {
|
message GetRangeRequest {
|
||||||
|
@ -166,6 +178,8 @@ message GetRangeRequest {
|
||||||
message GetRangeResponse {
|
message GetRangeResponse {
|
||||||
// Fragment of object's payload
|
// Fragment of object's payload
|
||||||
bytes Fragment = 1;
|
bytes Fragment = 1;
|
||||||
|
// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
|
||||||
|
service.ResponseMetaHeader Meta = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
}
|
}
|
||||||
|
|
||||||
message GetRangeHashRequest {
|
message GetRangeHashRequest {
|
||||||
|
@ -184,5 +198,7 @@ message GetRangeHashRequest {
|
||||||
message GetRangeHashResponse {
|
message GetRangeHashResponse {
|
||||||
// Hashes is a homomorphic hashes of all ranges
|
// Hashes is a homomorphic hashes of all ranges
|
||||||
repeated bytes Hashes = 1 [(gogoproto.customtype) = "Hash", (gogoproto.nullable) = false];
|
repeated bytes Hashes = 1 [(gogoproto.customtype) = "Hash", (gogoproto.nullable) = false];
|
||||||
|
// ResponseMetaHeader contains meta information based on request processing by server (should be embedded into message)
|
||||||
|
service.ResponseMetaHeader Meta = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -18,3 +18,13 @@ message RequestMetaHeader {
|
||||||
// TODO: not used for now, should be implemented in future
|
// TODO: not used for now, should be implemented in future
|
||||||
uint32 Version = 3;
|
uint32 Version = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ResponseMetaHeader contains meta information based on request processing by server
|
||||||
|
// (should be embedded into message)
|
||||||
|
message ResponseMetaHeader {
|
||||||
|
// Current NeoFS epoch on server
|
||||||
|
uint64 Epoch = 1;
|
||||||
|
// Version defines protocol version
|
||||||
|
// TODO: not used for now, should be implemented in future
|
||||||
|
uint32 Version = 2;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue