Skip to content

Commit

Permalink
change grpc bidi-stream error handling and change grpc API interface (#…
Browse files Browse the repository at this point in the history
…928)

* change grpc bidi-stream error handling and change grpc API interface for more informative payload for each stream response

Signed-off-by: kpango <kpango@vdaas.org>

* fix nil slice append nil pointer failure

Signed-off-by: kpango <kpango@vdaas.org>

* generate grpc stubs and fix implementation for it

Signed-off-by: kpango <kpango@vdaas.org>

* fix grpc addrs divided by zero bug

Signed-off-by: kpango <kpango@vdaas.org>

* send bidirectional response payload even error exists

Signed-off-by: kpango <kpango@vdaas.org>
  • Loading branch information
kpango committed Jan 15, 2021
1 parent 73dde2e commit 2990012
Show file tree
Hide file tree
Showing 44 changed files with 3,331 additions and 627 deletions.
113 changes: 99 additions & 14 deletions apis/docs/v1/docs.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,10 @@
- [Object.IDs](#payload.v1.Object.IDs)
- [Object.Location](#payload.v1.Object.Location)
- [Object.Locations](#payload.v1.Object.Locations)
- [Object.StreamBlob](#payload.v1.Object.StreamBlob)
- [Object.StreamDistance](#payload.v1.Object.StreamDistance)
- [Object.StreamLocation](#payload.v1.Object.StreamLocation)
- [Object.StreamVector](#payload.v1.Object.StreamVector)
- [Object.Vector](#payload.v1.Object.Vector)
- [Object.Vectors](#payload.v1.Object.Vectors)
- [Remove](#payload.v1.Remove)
Expand All @@ -121,6 +125,7 @@
- [Search.Request](#payload.v1.Search.Request)
- [Search.Response](#payload.v1.Search.Response)
- [Search.Responses](#payload.v1.Search.Responses)
- [Search.StreamResponse](#payload.v1.Search.StreamResponse)
- [Update](#payload.v1.Update)
- [Update.Config](#payload.v1.Update.Config)
- [Update.MultiRequest](#payload.v1.Update.MultiRequest)
Expand Down Expand Up @@ -304,7 +309,7 @@
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| Filter | [.payload.v1.Object.Distance](#payload.v1.Object.Distance) | [.payload.v1.Object.Distance](#payload.v1.Object.Distance) | |
| StreamFilter | [.payload.v1.Object.Distance](#payload.v1.Object.Distance) stream | [.payload.v1.Object.Distance](#payload.v1.Object.Distance) stream | |
| StreamFilter | [.payload.v1.Object.Distance](#payload.v1.Object.Distance) stream | [.payload.v1.Object.StreamDistance](#payload.v1.Object.StreamDistance) stream | |



Expand All @@ -331,9 +336,9 @@
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| GenVector | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) | |
| StreamGenVector | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) stream | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) stream | |
| StreamGenVector | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) stream | [.payload.v1.Object.StreamVector](#payload.v1.Object.StreamVector) stream | |
| FilterVector | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) | |
| StreamFilterVector | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) stream | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) stream | |
| StreamFilterVector | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) stream | [.payload.v1.Object.StreamVector](#payload.v1.Object.StreamVector) stream | |



Expand Down Expand Up @@ -1383,6 +1388,70 @@



<a name="payload.v1.Object.StreamBlob"></a>

### Object.StreamBlob



| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| blob | [Object.Blob](#payload.v1.Object.Blob) | | |
| error | [errors.v1.Errors.RPC](#errors.v1.Errors.RPC) | | |






<a name="payload.v1.Object.StreamDistance"></a>

### Object.StreamDistance



| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| distance | [Object.Distance](#payload.v1.Object.Distance) | | |
| error | [errors.v1.Errors.RPC](#errors.v1.Errors.RPC) | | |






<a name="payload.v1.Object.StreamLocation"></a>

### Object.StreamLocation



| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| location | [Object.Location](#payload.v1.Object.Location) | | |
| error | [errors.v1.Errors.RPC](#errors.v1.Errors.RPC) | | |






<a name="payload.v1.Object.StreamVector"></a>

### Object.StreamVector



| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| vector | [Object.Vector](#payload.v1.Object.Vector) | | |
| error | [errors.v1.Errors.RPC](#errors.v1.Errors.RPC) | | |






<a name="payload.v1.Object.Vector"></a>

### Object.Vector
Expand Down Expand Up @@ -1667,6 +1736,22 @@



<a name="payload.v1.Search.StreamResponse"></a>

### Search.StreamResponse



| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| response | [Search.Response](#payload.v1.Search.Response) | | |
| error | [errors.v1.Errors.RPC](#errors.v1.Errors.RPC) | | |






<a name="payload.v1.Update"></a>

### Update
Expand Down Expand Up @@ -1811,15 +1896,15 @@
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| SearchObject | [.payload.v1.Search.ObjectRequest](#payload.v1.Search.ObjectRequest) | [.payload.v1.Search.Response](#payload.v1.Search.Response) | |
| StreamSearchObject | [.payload.v1.Search.ObjectRequest](#payload.v1.Search.ObjectRequest) stream | [.payload.v1.Search.Response](#payload.v1.Search.Response) stream | |
| StreamSearchObject | [.payload.v1.Search.ObjectRequest](#payload.v1.Search.ObjectRequest) stream | [.payload.v1.Search.StreamResponse](#payload.v1.Search.StreamResponse) stream | |
| InsertObject | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | |
| StreamInsertObject | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) stream | [.payload.v1.Object.Location](#payload.v1.Object.Location) stream | |
| StreamInsertObject | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | |
| MultiInsertObject | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | |
| UpdateObject | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | |
| StreamUpdateObject | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) stream | [.payload.v1.Object.Location](#payload.v1.Object.Location) stream | |
| StreamUpdateObject | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | |
| MultiUpdateObject | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | |
| UpsertObject | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | |
| StreamUpsertObject | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) stream | [.payload.v1.Object.Location](#payload.v1.Object.Location) stream | |
| StreamUpsertObject | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | |
| MultiUpsertObject | [.payload.v1.Object.Blob](#payload.v1.Object.Blob) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | |


Expand Down Expand Up @@ -1847,7 +1932,7 @@
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| Insert | [.payload.v1.Insert.Request](#payload.v1.Insert.Request) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | |
| StreamInsert | [.payload.v1.Insert.Request](#payload.v1.Insert.Request) stream | [.payload.v1.Object.Location](#payload.v1.Object.Location) stream | |
| StreamInsert | [.payload.v1.Insert.Request](#payload.v1.Insert.Request) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | |
| MultiInsert | [.payload.v1.Insert.MultiRequest](#payload.v1.Insert.MultiRequest) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | |


Expand Down Expand Up @@ -1876,7 +1961,7 @@
| ----------- | ------------ | ------------- | ------------|
| Exists | [.payload.v1.Object.ID](#payload.v1.Object.ID) | [.payload.v1.Object.ID](#payload.v1.Object.ID) | |
| GetObject | [.payload.v1.Object.ID](#payload.v1.Object.ID) | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) | |
| StreamGetObject | [.payload.v1.Object.ID](#payload.v1.Object.ID) stream | [.payload.v1.Object.Vector](#payload.v1.Object.Vector) stream | |
| StreamGetObject | [.payload.v1.Object.ID](#payload.v1.Object.ID) stream | [.payload.v1.Object.StreamVector](#payload.v1.Object.StreamVector) stream | |



Expand All @@ -1903,7 +1988,7 @@
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| Remove | [.payload.v1.Remove.Request](#payload.v1.Remove.Request) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | |
| StreamRemove | [.payload.v1.Remove.Request](#payload.v1.Remove.Request) stream | [.payload.v1.Object.Location](#payload.v1.Object.Location) stream | |
| StreamRemove | [.payload.v1.Remove.Request](#payload.v1.Remove.Request) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | |
| MultiRemove | [.payload.v1.Remove.MultiRequest](#payload.v1.Remove.MultiRequest) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | |


Expand Down Expand Up @@ -1932,8 +2017,8 @@
| ----------- | ------------ | ------------- | ------------|
| Search | [.payload.v1.Search.Request](#payload.v1.Search.Request) | [.payload.v1.Search.Response](#payload.v1.Search.Response) | |
| SearchByID | [.payload.v1.Search.IDRequest](#payload.v1.Search.IDRequest) | [.payload.v1.Search.Response](#payload.v1.Search.Response) | |
| StreamSearch | [.payload.v1.Search.Request](#payload.v1.Search.Request) stream | [.payload.v1.Search.Response](#payload.v1.Search.Response) stream | |
| StreamSearchByID | [.payload.v1.Search.IDRequest](#payload.v1.Search.IDRequest) stream | [.payload.v1.Search.Response](#payload.v1.Search.Response) stream | |
| StreamSearch | [.payload.v1.Search.Request](#payload.v1.Search.Request) stream | [.payload.v1.Search.StreamResponse](#payload.v1.Search.StreamResponse) stream | |
| StreamSearchByID | [.payload.v1.Search.IDRequest](#payload.v1.Search.IDRequest) stream | [.payload.v1.Search.StreamResponse](#payload.v1.Search.StreamResponse) stream | |
| MultiSearch | [.payload.v1.Search.MultiRequest](#payload.v1.Search.MultiRequest) | [.payload.v1.Search.Responses](#payload.v1.Search.Responses) | |
| MultiSearchByID | [.payload.v1.Search.MultiIDRequest](#payload.v1.Search.MultiIDRequest) | [.payload.v1.Search.Responses](#payload.v1.Search.Responses) | |

Expand Down Expand Up @@ -1962,7 +2047,7 @@
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| Update | [.payload.v1.Update.Request](#payload.v1.Update.Request) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | |
| StreamUpdate | [.payload.v1.Update.Request](#payload.v1.Update.Request) stream | [.payload.v1.Object.Location](#payload.v1.Object.Location) stream | |
| StreamUpdate | [.payload.v1.Update.Request](#payload.v1.Update.Request) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | |
| MultiUpdate | [.payload.v1.Update.MultiRequest](#payload.v1.Update.MultiRequest) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | |


Expand Down Expand Up @@ -1990,7 +2075,7 @@
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| Upsert | [.payload.v1.Upsert.Request](#payload.v1.Upsert.Request) | [.payload.v1.Object.Location](#payload.v1.Object.Location) | |
| StreamUpsert | [.payload.v1.Upsert.Request](#payload.v1.Upsert.Request) stream | [.payload.v1.Object.Location](#payload.v1.Object.Location) stream | |
| StreamUpsert | [.payload.v1.Upsert.Request](#payload.v1.Upsert.Request) stream | [.payload.v1.Object.StreamLocation](#payload.v1.Object.StreamLocation) stream | |
| MultiUpsert | [.payload.v1.Upsert.MultiRequest](#payload.v1.Upsert.MultiRequest) | [.payload.v1.Object.Locations](#payload.v1.Object.Locations) | |


Expand Down
30 changes: 15 additions & 15 deletions apis/grpc/v1/filter/egress/egress_filter.pb.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,22 +44,22 @@ func init() {
}

var fileDescriptor_7f3e67472eb32d70 = []byte{
// 226 bytes of a gzipped FileDescriptorProto
// 234 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4f, 0x2c, 0xc8, 0x2c,
0xd6, 0x2f, 0x28, 0xca, 0x2f, 0xc9, 0xd7, 0x2f, 0x33, 0xd4, 0x4f, 0xcb, 0xcc, 0x29, 0x49, 0x2d,
0xd2, 0x4f, 0x4d, 0x2f, 0x4a, 0x2d, 0x2e, 0x86, 0x52, 0xf1, 0x10, 0x41, 0x3d, 0xb0, 0x22, 0x21,
0x01, 0x28, 0x0f, 0x22, 0xa7, 0x57, 0x66, 0x28, 0xa5, 0x8c, 0x6a, 0x44, 0x41, 0x62, 0x65, 0x4e,
0x7e, 0x62, 0x0a, 0x8c, 0x86, 0x68, 0x33, 0x5a, 0xc2, 0xc8, 0xc5, 0xe3, 0x0a, 0xd6, 0xe2, 0x06,
0x7e, 0x62, 0x0a, 0x8c, 0x86, 0x68, 0x33, 0x5a, 0xc5, 0xc8, 0xc5, 0xe3, 0x0a, 0xd6, 0xe2, 0x06,
0xd6, 0x2f, 0xe4, 0xc2, 0xc5, 0x06, 0x65, 0x49, 0xeb, 0xc1, 0x94, 0x96, 0x19, 0xea, 0xf9, 0x27,
0x65, 0xa5, 0x26, 0x97, 0xe8, 0xb9, 0x64, 0x16, 0x97, 0x24, 0xe6, 0x25, 0xa7, 0x4a, 0xe1, 0x93,
0x54, 0x62, 0x10, 0xf2, 0xe3, 0xe2, 0x09, 0x2e, 0x29, 0x4a, 0x4d, 0xcc, 0xa5, 0xdc, 0x2c, 0x0d,
0x46, 0x03, 0x46, 0xa7, 0xf2, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48,
0x8e, 0x91, 0x4b, 0x39, 0xbf, 0x28, 0x5d, 0xaf, 0x2c, 0x25, 0x31, 0xb1, 0x58, 0xaf, 0x2c, 0x31,
0x27, 0x45, 0x2f, 0xb1, 0x20, 0x13, 0xa4, 0x15, 0x25, 0x04, 0x9c, 0x04, 0xc2, 0x12, 0x73, 0x52,
0x90, 0xbd, 0x16, 0xc0, 0x18, 0x65, 0x90, 0x9e, 0x59, 0x92, 0x51, 0x9a, 0xa4, 0x97, 0x9c, 0x9f,
0xab, 0x0f, 0xd6, 0xaf, 0x0f, 0xd2, 0x0f, 0x09, 0xeb, 0xf4, 0xa2, 0x82, 0x64, 0x8c, 0xa0, 0x4e,
0x62, 0x03, 0x07, 0x93, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x05, 0x55, 0x81, 0xdd, 0x90, 0x01,
0x00, 0x00,
0x54, 0x62, 0x10, 0x0a, 0xe1, 0xe2, 0x09, 0x2e, 0x29, 0x4a, 0x4d, 0xcc, 0x25, 0xc6, 0x2c, 0x45,
0x2c, 0x92, 0x10, 0xdd, 0x08, 0x13, 0x35, 0x18, 0x0d, 0x18, 0x9d, 0xca, 0x4f, 0x3c, 0x92, 0x63,
0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0x46, 0x2e, 0xe5, 0xfc, 0xa2, 0x74, 0xbd, 0xb2,
0x94, 0xc4, 0xc4, 0x62, 0xbd, 0xb2, 0xc4, 0x9c, 0x14, 0xbd, 0xc4, 0x82, 0x4c, 0x90, 0x01, 0x28,
0xe1, 0xe0, 0x24, 0x10, 0x96, 0x98, 0x93, 0x82, 0xec, 0xc1, 0x00, 0xc6, 0x28, 0x83, 0xf4, 0xcc,
0x92, 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, 0x7d, 0xb0, 0x7e, 0x7d, 0x90, 0x7e, 0x48, 0x88,
0xa7, 0x17, 0x15, 0x24, 0x63, 0x04, 0x78, 0x12, 0x1b, 0x38, 0xb0, 0x8c, 0x01, 0x01, 0x00, 0x00,
0xff, 0xff, 0xa8, 0x1c, 0xb4, 0x48, 0x96, 0x01, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
Expand Down Expand Up @@ -106,7 +106,7 @@ func (c *egressFilterClient) StreamFilter(ctx context.Context, opts ...grpc.Call

type EgressFilter_StreamFilterClient interface {
Send(*payload.Object_Distance) error
Recv() (*payload.Object_Distance, error)
Recv() (*payload.Object_StreamDistance, error)
grpc.ClientStream
}

Expand All @@ -118,8 +118,8 @@ func (x *egressFilterStreamFilterClient) Send(m *payload.Object_Distance) error
return x.ClientStream.SendMsg(m)
}

func (x *egressFilterStreamFilterClient) Recv() (*payload.Object_Distance, error) {
m := new(payload.Object_Distance)
func (x *egressFilterStreamFilterClient) Recv() (*payload.Object_StreamDistance, error) {
m := new(payload.Object_StreamDistance)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
Expand Down Expand Up @@ -170,7 +170,7 @@ func _EgressFilter_StreamFilter_Handler(srv interface{}, stream grpc.ServerStrea
}

type EgressFilter_StreamFilterServer interface {
Send(*payload.Object_Distance) error
Send(*payload.Object_StreamDistance) error
Recv() (*payload.Object_Distance, error)
grpc.ServerStream
}
Expand All @@ -179,7 +179,7 @@ type egressFilterStreamFilterServer struct {
grpc.ServerStream
}

func (x *egressFilterStreamFilterServer) Send(m *payload.Object_Distance) error {
func (x *egressFilterStreamFilterServer) Send(m *payload.Object_StreamDistance) error {
return x.ServerStream.SendMsg(m)
}

Expand Down
Loading

0 comments on commit 2990012

Please sign in to comment.