Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
30d0a3635f | |||
63c05aa559 | |||
38a49adeb4 | |||
7e92ff7764 | |||
02a4e4a575 | |||
d8a2f84bca | |||
94b18fa997 | |||
6d195ebbc2 | |||
fe0d11add6 |
48
README.md
48
README.md
|
@ -24,3 +24,51 @@ go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
|
||||||
```
|
```
|
||||||
protoc --go_out=. ./protobuf/*
|
protoc --go_out=. ./protobuf/*
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Исользование
|
||||||
|
|
||||||
|
Пример использования:
|
||||||
|
|
||||||
|
```golang
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.ymnuktech.ru/ymnuk/yt-function-sdk-go.git/network"
|
||||||
|
funcSDK "git.ymnuktech.ru/ymnuk/yt-function-sdk-go.git/network"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main(){
|
||||||
|
addr, exists := os.LookupEnv("NATS_ADDR")
|
||||||
|
if !exists {
|
||||||
|
addr = "nats://localhost:4222"
|
||||||
|
}
|
||||||
|
|
||||||
|
serve = funcSDK.NewServe(addr, "", "test", nil)
|
||||||
|
if serve == nil {
|
||||||
|
panic(fmt.Errorf(`serve is not created`))
|
||||||
|
}
|
||||||
|
serve.AddAccept("*")
|
||||||
|
err := serve.Run()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var err error
|
||||||
|
err = serve.RegisterFunction("testFuncSimple", func(header *network.Header, paylod []byte) (result []byte, err error) {
|
||||||
|
header.ResponseHeaders["test"] = "my test"
|
||||||
|
return []byte("world"), nil
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Error("Has error: ", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var result []byte
|
||||||
|
var header *network.Header
|
||||||
|
result, header, err = serve.Call("default.test.testFuncSimple", nil, []byte("Hello"))
|
||||||
|
if err!=nil{
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
fmt.Println(header)
|
||||||
|
fmt.Println(string(result))
|
||||||
|
}
|
||||||
|
```
|
|
@ -1,7 +1,7 @@
|
||||||
version: "3.9"
|
version: "3.9"
|
||||||
services:
|
services:
|
||||||
nats:
|
nats:
|
||||||
image: nats:2.9.3-scratch
|
image: nats:2.9.8-scratch
|
||||||
ports:
|
ports:
|
||||||
- "4222:4222"
|
- "4222:4222"
|
||||||
- "8222:8222"
|
- "8222:8222"
|
||||||
|
|
12
go.mod
12
go.mod
|
@ -1,15 +1,17 @@
|
||||||
module git.ymnuktech.ru/ymnuk/yt-function-sdk-go.git
|
module git.ymnuktech.ru/ymnuk/yt-function-sdk-go
|
||||||
|
|
||||||
go 1.19
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/nats-io/nats.go v1.19.0
|
git.ymnuktech.ru/ymnuk/yt-logger-go v0.0.4
|
||||||
|
github.com/nats-io/nats.go v1.24.0
|
||||||
github.com/satori/go.uuid v1.2.0
|
github.com/satori/go.uuid v1.2.0
|
||||||
google.golang.org/protobuf v1.28.1
|
google.golang.org/protobuf v1.30.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/nats-io/nkeys v0.3.0 // indirect
|
github.com/nats-io/nkeys v0.4.4 // indirect
|
||||||
github.com/nats-io/nuid v1.0.1 // indirect
|
github.com/nats-io/nuid v1.0.1 // indirect
|
||||||
golang.org/x/crypto v0.1.0 // indirect
|
golang.org/x/crypto v0.7.0 // indirect
|
||||||
|
golang.org/x/sys v0.6.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
22
go.sum
22
go.sum
|
@ -1,11 +1,25 @@
|
||||||
|
git.ymnuktech.ru/ymnuk/yt-logger-go v0.0.1 h1:lZYpXPfOi/5VQVz6zj51mInYzlN+QjDUoR/wNk4KsYU=
|
||||||
|
git.ymnuktech.ru/ymnuk/yt-logger-go v0.0.1/go.mod h1:wnWM6xEhOOWsf2pURh/OaugZEZDkbRJY4mpbaz4ETxk=
|
||||||
|
git.ymnuktech.ru/ymnuk/yt-logger-go v0.0.2 h1:ihmsdfv6TFP+RW+12iLTzag9CnuhUFMwlPJucUGY8TU=
|
||||||
|
git.ymnuktech.ru/ymnuk/yt-logger-go v0.0.2/go.mod h1:wnWM6xEhOOWsf2pURh/OaugZEZDkbRJY4mpbaz4ETxk=
|
||||||
|
git.ymnuktech.ru/ymnuk/yt-logger-go v0.0.3 h1:Bv9mT6k/9RJXD53H5POszfB2XstCPmvO/XKzScpuvQI=
|
||||||
|
git.ymnuktech.ru/ymnuk/yt-logger-go v0.0.3/go.mod h1:wnWM6xEhOOWsf2pURh/OaugZEZDkbRJY4mpbaz4ETxk=
|
||||||
|
git.ymnuktech.ru/ymnuk/yt-logger-go v0.0.4 h1:I/cIi5idlcL5+n+q+wqyPmLFxYWkrFcss16o/qqRtXU=
|
||||||
|
git.ymnuktech.ru/ymnuk/yt-logger-go v0.0.4/go.mod h1:wnWM6xEhOOWsf2pURh/OaugZEZDkbRJY4mpbaz4ETxk=
|
||||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||||
github.com/nats-io/nats.go v1.18.0 h1:o480Ao6kuSSFyJO75rGTXCEPj7LGkY84C1Ye+Uhm4c0=
|
github.com/nats-io/nats.go v1.18.0 h1:o480Ao6kuSSFyJO75rGTXCEPj7LGkY84C1Ye+Uhm4c0=
|
||||||
github.com/nats-io/nats.go v1.18.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
|
github.com/nats-io/nats.go v1.18.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w=
|
||||||
github.com/nats-io/nats.go v1.19.0 h1:H6j8aBnTQFoVrTGB6Xjd903UMdE7jz6DS4YkmAqgZ9Q=
|
github.com/nats-io/nats.go v1.19.0 h1:H6j8aBnTQFoVrTGB6Xjd903UMdE7jz6DS4YkmAqgZ9Q=
|
||||||
github.com/nats-io/nats.go v1.19.0/go.mod h1:tLqubohF7t4z3du1QDPYJIQQyhb4wl6DhjxEajSI7UA=
|
github.com/nats-io/nats.go v1.19.0/go.mod h1:tLqubohF7t4z3du1QDPYJIQQyhb4wl6DhjxEajSI7UA=
|
||||||
|
github.com/nats-io/nats.go v1.20.0 h1:T8JJnQfVSdh1CzGiwAOv5hEobYCBho/0EupGznYw0oM=
|
||||||
|
github.com/nats-io/nats.go v1.20.0/go.mod h1:tLqubohF7t4z3du1QDPYJIQQyhb4wl6DhjxEajSI7UA=
|
||||||
|
github.com/nats-io/nats.go v1.24.0 h1:CRiD8L5GOQu/DcfkmgBcTTIQORMwizF+rPk6T0RaHVQ=
|
||||||
|
github.com/nats-io/nats.go v1.24.0/go.mod h1:dVQF+BK3SzUZpwyzHedXsvH3EO38aVKuOPkkHlv5hXA=
|
||||||
github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8=
|
github.com/nats-io/nkeys v0.3.0 h1:cgM5tL53EvYRU+2YLXIK0G2mJtK12Ft9oeooSZMA2G8=
|
||||||
github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
|
github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4=
|
||||||
|
github.com/nats-io/nkeys v0.4.4 h1:xvBJ8d69TznjcQl9t6//Q5xXuVhyYiSos6RPtvQNTwA=
|
||||||
|
github.com/nats-io/nkeys v0.4.4/go.mod h1:XUkxdLPTufzlihbamfzQ7mw/VGx6ObUs+0bN5sNvt64=
|
||||||
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
|
||||||
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
|
||||||
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
|
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
|
||||||
|
@ -14,8 +28,14 @@ golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b h1:wSOdpTq0/eI46Ez/LkDwIs
|
||||||
golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
|
||||||
golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU=
|
golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU=
|
||||||
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
|
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
|
||||||
|
golang.org/x/crypto v0.3.0 h1:a06MkbcxBrEFc0w0QIZWXrH/9cCX6KJyWbBOIwAn+7A=
|
||||||
|
golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
|
||||||
|
golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A=
|
||||||
|
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
|
||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
|
||||||
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
@ -23,3 +43,5 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||||
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
|
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
|
||||||
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
|
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
|
||||||
|
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.28.1
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v3.12.4
|
// protoc v3.12.4
|
||||||
// source: protobuf/function.proto
|
// source: protobuf/function.proto
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.28.1
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v3.12.4
|
// protoc v3.12.4
|
||||||
// source: protobuf/header.proto
|
// source: protobuf/header.proto
|
||||||
|
|
||||||
|
@ -34,6 +34,10 @@ type Header struct {
|
||||||
Method string `protobuf:"bytes,7,opt,name=method,proto3" json:"method,omitempty"`
|
Method string `protobuf:"bytes,7,opt,name=method,proto3" json:"method,omitempty"`
|
||||||
Domain string `protobuf:"bytes,8,opt,name=domain,proto3" json:"domain,omitempty"`
|
Domain string `protobuf:"bytes,8,opt,name=domain,proto3" json:"domain,omitempty"`
|
||||||
Project string `protobuf:"bytes,9,opt,name=project,proto3" json:"project,omitempty"`
|
Project string `protobuf:"bytes,9,opt,name=project,proto3" json:"project,omitempty"`
|
||||||
|
CallID string `protobuf:"bytes,10,opt,name=callID,proto3" json:"callID,omitempty"`
|
||||||
|
CallPrevID string `protobuf:"bytes,11,opt,name=callPrevID,proto3" json:"callPrevID,omitempty"`
|
||||||
|
PayloadSize int64 `protobuf:"varint,12,opt,name=payloadSize,proto3" json:"payloadSize,omitempty"`
|
||||||
|
PayloadS3Uri string `protobuf:"bytes,13,opt,name=payloadS3Uri,proto3" json:"payloadS3Uri,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Header) Reset() {
|
func (x *Header) Reset() {
|
||||||
|
@ -131,6 +135,34 @@ func (x *Header) GetProject() string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Header) GetCallID() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.CallID
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Header) GetCallPrevID() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.CallPrevID
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Header) GetPayloadSize() int64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.PayloadSize
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *Header) GetPayloadS3Uri() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.PayloadS3Uri
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
var File_protobuf_header_proto protoreflect.FileDescriptor
|
var File_protobuf_header_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_protobuf_header_proto_rawDesc = []byte{
|
var file_protobuf_header_proto_rawDesc = []byte{
|
||||||
|
@ -139,7 +171,7 @@ var file_protobuf_header_proto_rawDesc = []byte{
|
||||||
0x1a, 0x1a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2d,
|
0x1a, 0x1a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x2d,
|
||||||
0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x70, 0x72,
|
0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x70, 0x72,
|
||||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74,
|
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x72, 0x74,
|
||||||
0x2d, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb0, 0x05, 0x0a, 0x06,
|
0x2d, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xae, 0x06, 0x0a, 0x06,
|
||||||
0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
|
0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
|
||||||
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
|
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
|
||||||
0x6b, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
|
0x6b, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73,
|
||||||
|
@ -165,26 +197,34 @@ var file_protobuf_header_proto_rawDesc = []byte{
|
||||||
0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64,
|
0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64,
|
||||||
0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d,
|
0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d,
|
||||||
0x61, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x09,
|
0x61, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x09,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x1a, 0x3a, 0x0a,
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a,
|
||||||
0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
|
0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63,
|
||||||
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
|
0x61, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x50, 0x72, 0x65,
|
||||||
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
|
0x76, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x50,
|
||||||
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x54, 0x0a, 0x0e, 0x51, 0x75, 0x65,
|
0x72, 0x65, 0x76, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64,
|
||||||
0x72, 0x79, 0x41, 0x72, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
|
0x53, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c,
|
||||||
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a,
|
0x6f, 0x61, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6c, 0x6f,
|
||||||
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6e,
|
0x61, 0x64, 0x53, 0x33, 0x55, 0x72, 0x69, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70,
|
||||||
0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x72,
|
0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x33, 0x55, 0x72, 0x69, 0x1a, 0x3a, 0x0a, 0x0c, 0x48,
|
||||||
0x69, 0x6e, 0x67, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
|
0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
|
||||||
0x39, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
|
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
|
||||||
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
|
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61,
|
||||||
0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x54, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79,
|
||||||
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x52, 0x65,
|
0x41, 0x72, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
|
||||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74,
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76,
|
||||||
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6e, 0x65, 0x74,
|
||||||
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
|
0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e,
|
||||||
0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0b,
|
0x67, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a,
|
||||||
0x5a, 0x09, 0x2e, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
|
||||||
0x74, 0x6f, 0x33,
|
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
|
||||||
|
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
|
||||||
|
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x70,
|
||||||
|
0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
|
||||||
|
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
|
||||||
|
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
|
0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0b, 0x5a, 0x09,
|
||||||
|
0x2e, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||||
|
0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.28.1
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v3.12.4
|
// protoc v3.12.4
|
||||||
// source: protobuf/list-values.proto
|
// source: protobuf/list-values.proto
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ func (x *ListOfFiles) GetFile() []*ListOfFiles_File {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type ListOfBinaryes struct {
|
type ListOfBinaries struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
@ -122,8 +122,8 @@ type ListOfBinaryes struct {
|
||||||
Value [][]byte `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty"`
|
Value [][]byte `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListOfBinaryes) Reset() {
|
func (x *ListOfBinaries) Reset() {
|
||||||
*x = ListOfBinaryes{}
|
*x = ListOfBinaries{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_protobuf_list_values_proto_msgTypes[2]
|
mi := &file_protobuf_list_values_proto_msgTypes[2]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
@ -131,13 +131,13 @@ func (x *ListOfBinaryes) Reset() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListOfBinaryes) String() string {
|
func (x *ListOfBinaries) String() string {
|
||||||
return protoimpl.X.MessageStringOf(x)
|
return protoimpl.X.MessageStringOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*ListOfBinaryes) ProtoMessage() {}
|
func (*ListOfBinaries) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *ListOfBinaryes) ProtoReflect() protoreflect.Message {
|
func (x *ListOfBinaries) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_protobuf_list_values_proto_msgTypes[2]
|
mi := &file_protobuf_list_values_proto_msgTypes[2]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
@ -149,12 +149,12 @@ func (x *ListOfBinaryes) ProtoReflect() protoreflect.Message {
|
||||||
return mi.MessageOf(x)
|
return mi.MessageOf(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use ListOfBinaryes.ProtoReflect.Descriptor instead.
|
// Deprecated: Use ListOfBinaries.ProtoReflect.Descriptor instead.
|
||||||
func (*ListOfBinaryes) Descriptor() ([]byte, []int) {
|
func (*ListOfBinaries) Descriptor() ([]byte, []int) {
|
||||||
return file_protobuf_list_values_proto_rawDescGZIP(), []int{2}
|
return file_protobuf_list_values_proto_rawDescGZIP(), []int{2}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListOfBinaryes) GetValue() [][]byte {
|
func (x *ListOfBinaries) GetValue() [][]byte {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.Value
|
return x.Value
|
||||||
}
|
}
|
||||||
|
@ -170,6 +170,7 @@ type ListOfFiles_File struct {
|
||||||
ContentType []string `protobuf:"bytes,2,rep,name=contentType,proto3" json:"contentType,omitempty"`
|
ContentType []string `protobuf:"bytes,2,rep,name=contentType,proto3" json:"contentType,omitempty"`
|
||||||
Size int64 `protobuf:"zigzag64,3,opt,name=size,proto3" json:"size,omitempty"`
|
Size int64 `protobuf:"zigzag64,3,opt,name=size,proto3" json:"size,omitempty"`
|
||||||
Content []byte `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"`
|
Content []byte `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"`
|
||||||
|
S3Uri string `protobuf:"bytes,5,opt,name=s3Uri,proto3" json:"s3Uri,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListOfFiles_File) Reset() {
|
func (x *ListOfFiles_File) Reset() {
|
||||||
|
@ -232,6 +233,13 @@ func (x *ListOfFiles_File) GetContent() []byte {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *ListOfFiles_File) GetS3Uri() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.S3Uri
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
var File_protobuf_list_values_proto protoreflect.FileDescriptor
|
var File_protobuf_list_values_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_protobuf_list_values_proto_rawDesc = []byte{
|
var file_protobuf_list_values_proto_rawDesc = []byte{
|
||||||
|
@ -239,22 +247,24 @@ var file_protobuf_list_values_proto_rawDesc = []byte{
|
||||||
0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6e, 0x65,
|
0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6e, 0x65,
|
||||||
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x25, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53,
|
0x74, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x25, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x53,
|
||||||
0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
|
0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
|
||||||
0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb0, 0x01, 0x0a,
|
0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc7, 0x01, 0x0a,
|
||||||
0x0b, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x04,
|
0x0b, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x04,
|
||||||
0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x74,
|
0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x74,
|
||||||
0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x46, 0x69, 0x6c, 0x65, 0x73,
|
0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x46, 0x69, 0x6c, 0x65, 0x73,
|
||||||
0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x72, 0x0a, 0x04, 0x46,
|
0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x88, 0x01, 0x0a, 0x04,
|
||||||
0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18,
|
0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65,
|
||||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12,
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65,
|
||||||
0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02,
|
0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18,
|
||||||
0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
|
0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79,
|
||||||
0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52,
|
0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12,
|
||||||
0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
|
0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
|
||||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22,
|
0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
|
||||||
0x26, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x65,
|
0x12, 0x14, 0x0a, 0x05, 0x73, 0x33, 0x55, 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c,
|
0x05, 0x73, 0x33, 0x55, 0x72, 0x69, 0x22, 0x26, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x66,
|
||||||
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, 0x6e, 0x65, 0x74,
|
0x42, 0x69, 0x6e, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
|
||||||
0x77, 0x6f, 0x72, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b,
|
||||||
|
0x5a, 0x09, 0x2e, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f,
|
||||||
|
0x74, 0x6f, 0x33,
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -273,7 +283,7 @@ var file_protobuf_list_values_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||||
var file_protobuf_list_values_proto_goTypes = []interface{}{
|
var file_protobuf_list_values_proto_goTypes = []interface{}{
|
||||||
(*ListOfStrings)(nil), // 0: network.ListOfStrings
|
(*ListOfStrings)(nil), // 0: network.ListOfStrings
|
||||||
(*ListOfFiles)(nil), // 1: network.ListOfFiles
|
(*ListOfFiles)(nil), // 1: network.ListOfFiles
|
||||||
(*ListOfBinaryes)(nil), // 2: network.ListOfBinaryes
|
(*ListOfBinaries)(nil), // 2: network.ListOfBinaries
|
||||||
(*ListOfFiles_File)(nil), // 3: network.ListOfFiles.File
|
(*ListOfFiles_File)(nil), // 3: network.ListOfFiles.File
|
||||||
}
|
}
|
||||||
var file_protobuf_list_values_proto_depIdxs = []int32{
|
var file_protobuf_list_values_proto_depIdxs = []int32{
|
||||||
|
@ -316,7 +326,7 @@ func file_protobuf_list_values_proto_init() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_protobuf_list_values_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
file_protobuf_list_values_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*ListOfBinaryes); i {
|
switch v := v.(*ListOfBinaries); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
case 1:
|
case 1:
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.28.1
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v3.12.4
|
// protoc v3.12.4
|
||||||
// source: protobuf/metadata.proto
|
// source: protobuf/metadata.proto
|
||||||
|
|
||||||
|
@ -20,66 +20,17 @@ const (
|
||||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
)
|
)
|
||||||
|
|
||||||
type Metadata_PackageType int32
|
|
||||||
|
|
||||||
const (
|
|
||||||
Metadata_TYPE_REQUEST Metadata_PackageType = 0 // Пакет запроса
|
|
||||||
Metadata_TYPE_RESPONSE Metadata_PackageType = 1 // Пакет ответа
|
|
||||||
Metadata_TYPE_STREAM Metadata_PackageType = 2 // Пакет потока, который не требует возврата результата (обратного вызова)
|
|
||||||
)
|
|
||||||
|
|
||||||
// Enum value maps for Metadata_PackageType.
|
|
||||||
var (
|
|
||||||
Metadata_PackageType_name = map[int32]string{
|
|
||||||
0: "TYPE_REQUEST",
|
|
||||||
1: "TYPE_RESPONSE",
|
|
||||||
2: "TYPE_STREAM",
|
|
||||||
}
|
|
||||||
Metadata_PackageType_value = map[string]int32{
|
|
||||||
"TYPE_REQUEST": 0,
|
|
||||||
"TYPE_RESPONSE": 1,
|
|
||||||
"TYPE_STREAM": 2,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
func (x Metadata_PackageType) Enum() *Metadata_PackageType {
|
|
||||||
p := new(Metadata_PackageType)
|
|
||||||
*p = x
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x Metadata_PackageType) String() string {
|
|
||||||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (Metadata_PackageType) Descriptor() protoreflect.EnumDescriptor {
|
|
||||||
return file_protobuf_metadata_proto_enumTypes[0].Descriptor()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (Metadata_PackageType) Type() protoreflect.EnumType {
|
|
||||||
return &file_protobuf_metadata_proto_enumTypes[0]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x Metadata_PackageType) Number() protoreflect.EnumNumber {
|
|
||||||
return protoreflect.EnumNumber(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use Metadata_PackageType.Descriptor instead.
|
|
||||||
func (Metadata_PackageType) EnumDescriptor() ([]byte, []int) {
|
|
||||||
return file_protobuf_metadata_proto_rawDescGZIP(), []int{0, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
type Metadata struct {
|
type Metadata struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
PackageType Metadata_PackageType `protobuf:"varint,1,opt,name=packageType,proto3,enum=network.Metadata_PackageType" json:"packageType,omitempty"`
|
// PackageType packageType = 1;
|
||||||
FuncName string `protobuf:"bytes,2,opt,name=funcName,proto3" json:"funcName,omitempty"`
|
FuncName string `protobuf:"bytes,2,opt,name=funcName,proto3" json:"funcName,omitempty"`
|
||||||
QueueCallback string `protobuf:"bytes,3,opt,name=queueCallback,proto3" json:"queueCallback,omitempty"`
|
QueueCallback string `protobuf:"bytes,3,opt,name=queueCallback,proto3" json:"queueCallback,omitempty"`
|
||||||
CallResponseID string `protobuf:"bytes,4,opt,name=callResponseID,proto3" json:"callResponseID,omitempty"`
|
CallResponseID string `protobuf:"bytes,4,opt,name=callResponseID,proto3" json:"callResponseID,omitempty"`
|
||||||
CallID string `protobuf:"bytes,5,opt,name=callID,proto3" json:"callID,omitempty"`
|
CallID string `protobuf:"bytes,5,opt,name=callID,proto3" json:"callID,omitempty"`
|
||||||
CallFrom string `protobuf:"bytes,6,opt,name=callFrom,proto3" json:"callFrom,omitempty"`
|
CallFrom string `protobuf:"bytes,6,opt,name=callFrom,proto3" json:"callFrom,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Metadata) Reset() {
|
func (x *Metadata) Reset() {
|
||||||
|
@ -114,13 +65,6 @@ func (*Metadata) Descriptor() ([]byte, []int) {
|
||||||
return file_protobuf_metadata_proto_rawDescGZIP(), []int{0}
|
return file_protobuf_metadata_proto_rawDescGZIP(), []int{0}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Metadata) GetPackageType() Metadata_PackageType {
|
|
||||||
if x != nil {
|
|
||||||
return x.PackageType
|
|
||||||
}
|
|
||||||
return Metadata_TYPE_REQUEST
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Metadata) GetFuncName() string {
|
func (x *Metadata) GetFuncName() string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.FuncName
|
return x.FuncName
|
||||||
|
@ -161,27 +105,19 @@ var File_protobuf_metadata_proto protoreflect.FileDescriptor
|
||||||
var file_protobuf_metadata_proto_rawDesc = []byte{
|
var file_protobuf_metadata_proto_rawDesc = []byte{
|
||||||
0x0a, 0x17, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64,
|
0x0a, 0x17, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64,
|
||||||
0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f,
|
0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f,
|
||||||
0x72, 0x6b, 0x22, 0xae, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12,
|
0x72, 0x6b, 0x22, 0xa8, 0x01, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12,
|
||||||
0x3f, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01,
|
0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x4d,
|
0x09, 0x52, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x71,
|
||||||
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54,
|
0x75, 0x65, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01,
|
||||||
0x79, 0x70, 0x65, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65,
|
0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
|
||||||
0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
|
0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||||
0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d,
|
0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x52,
|
||||||
0x71, 0x75, 0x65, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20,
|
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c,
|
||||||
0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61,
|
0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49,
|
||||||
0x63, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x06, 0x20,
|
||||||
0x73, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c,
|
0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x0b, 0x5a,
|
||||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61,
|
0x09, 0x2e, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
|
||||||
0x6c, 0x6c, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c,
|
0x6f, 0x33,
|
||||||
0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x06,
|
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x22, 0x43,
|
|
||||||
0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a,
|
|
||||||
0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x00, 0x12,
|
|
||||||
0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45,
|
|
||||||
0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41,
|
|
||||||
0x4d, 0x10, 0x02, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
|
|
||||||
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -196,19 +132,16 @@ func file_protobuf_metadata_proto_rawDescGZIP() []byte {
|
||||||
return file_protobuf_metadata_proto_rawDescData
|
return file_protobuf_metadata_proto_rawDescData
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_protobuf_metadata_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
|
||||||
var file_protobuf_metadata_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
var file_protobuf_metadata_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||||
var file_protobuf_metadata_proto_goTypes = []interface{}{
|
var file_protobuf_metadata_proto_goTypes = []interface{}{
|
||||||
(Metadata_PackageType)(0), // 0: network.Metadata.PackageType
|
(*Metadata)(nil), // 0: network.Metadata
|
||||||
(*Metadata)(nil), // 1: network.Metadata
|
|
||||||
}
|
}
|
||||||
var file_protobuf_metadata_proto_depIdxs = []int32{
|
var file_protobuf_metadata_proto_depIdxs = []int32{
|
||||||
0, // 0: network.Metadata.packageType:type_name -> network.Metadata.PackageType
|
0, // [0:0] is the sub-list for method output_type
|
||||||
1, // [1:1] is the sub-list for method output_type
|
0, // [0:0] is the sub-list for method input_type
|
||||||
1, // [1:1] is the sub-list for method input_type
|
0, // [0:0] is the sub-list for extension type_name
|
||||||
1, // [1:1] is the sub-list for extension type_name
|
0, // [0:0] is the sub-list for extension extendee
|
||||||
1, // [1:1] is the sub-list for extension extendee
|
0, // [0:0] is the sub-list for field type_name
|
||||||
0, // [0:1] is the sub-list for field type_name
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_protobuf_metadata_proto_init() }
|
func init() { file_protobuf_metadata_proto_init() }
|
||||||
|
@ -235,14 +168,13 @@ func file_protobuf_metadata_proto_init() {
|
||||||
File: protoimpl.DescBuilder{
|
File: protoimpl.DescBuilder{
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_protobuf_metadata_proto_rawDesc,
|
RawDescriptor: file_protobuf_metadata_proto_rawDesc,
|
||||||
NumEnums: 1,
|
NumEnums: 0,
|
||||||
NumMessages: 1,
|
NumMessages: 1,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 0,
|
NumServices: 0,
|
||||||
},
|
},
|
||||||
GoTypes: file_protobuf_metadata_proto_goTypes,
|
GoTypes: file_protobuf_metadata_proto_goTypes,
|
||||||
DependencyIndexes: file_protobuf_metadata_proto_depIdxs,
|
DependencyIndexes: file_protobuf_metadata_proto_depIdxs,
|
||||||
EnumInfos: file_protobuf_metadata_proto_enumTypes,
|
|
||||||
MessageInfos: file_protobuf_metadata_proto_msgTypes,
|
MessageInfos: file_protobuf_metadata_proto_msgTypes,
|
||||||
}.Build()
|
}.Build()
|
||||||
File_protobuf_metadata_proto = out.File
|
File_protobuf_metadata_proto = out.File
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.28.1
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v3.12.4
|
// protoc v3.12.4
|
||||||
// source: protobuf/multipart-form.proto
|
// source: protobuf/multipart-form.proto
|
||||||
|
|
||||||
|
|
2
protobuf
2
protobuf
|
@ -1 +1 @@
|
||||||
Subproject commit 25149bdedc7b24d7d67bce812adfdc7200cce6fd
|
Subproject commit 0be663c0cdbcbd9620d0b68a6824e62d5d38dcb8
|
140
ytfunction.go
140
ytfunction.go
|
@ -7,7 +7,9 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.ymnuktech.ru/ymnuk/yt-function-sdk-go.git/network"
|
"git.ymnuktech.ru/ymnuk/yt-function-sdk-go/network"
|
||||||
|
ytlogger "git.ymnuktech.ru/ymnuk/yt-logger-go"
|
||||||
|
"git.ymnuktech.ru/ymnuk/yt-logger-go/log"
|
||||||
"github.com/nats-io/nats.go"
|
"github.com/nats-io/nats.go"
|
||||||
uuid "github.com/satori/go.uuid"
|
uuid "github.com/satori/go.uuid"
|
||||||
"google.golang.org/protobuf/proto"
|
"google.golang.org/protobuf/proto"
|
||||||
|
@ -27,6 +29,7 @@ type funcDesc struct {
|
||||||
conn *nats.Conn
|
conn *nats.Conn
|
||||||
timeout time.Duration
|
timeout time.Duration
|
||||||
acceptFunc func(access string) bool
|
acceptFunc func(access string) bool
|
||||||
|
logger *ytlogger.YTLogger
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fDesc *funcDesc) worker() {
|
func (fDesc *funcDesc) worker() {
|
||||||
|
@ -42,6 +45,7 @@ func (fDesc *funcDesc) worker() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
timeStart := time.Now()
|
||||||
// Проверка может ли вызывающая сторона вызвать функцию
|
// Проверка может ли вызывающая сторона вызвать функцию
|
||||||
if !fDesc.acceptFunc(pkg.Metadata.CallFrom) {
|
if !fDesc.acceptFunc(pkg.Metadata.CallFrom) {
|
||||||
if pkg.Metadata.QueueCallback != "" {
|
if pkg.Metadata.QueueCallback != "" {
|
||||||
|
@ -52,9 +56,16 @@ func (fDesc *funcDesc) worker() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
if fDesc.logger != nil {
|
||||||
|
fDesc.logger.Err(&pkg.Metadata.FuncName, &pkg.Metadata.CallID, &pkg.Header.CallPrevID, &pkg.Metadata.CallFrom, &pkg.Metadata.CallResponseID, &timeStart, &[]time.Time{time.Now()}[0], nil, &pkg.ErrNo, &pkg.Error, &pkg.ErrNo, nil, nil)
|
||||||
|
}
|
||||||
if err = fDesc.conn.Publish(pkg.Metadata.QueueCallback, buff); err != nil {
|
if err = fDesc.conn.Publish(pkg.Metadata.QueueCallback, buff); err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if fDesc.logger != nil {
|
||||||
|
fDesc.logger.Err(&pkg.Metadata.FuncName, &pkg.Metadata.CallID, &pkg.Header.CallPrevID, &pkg.Metadata.CallFrom, &pkg.Metadata.CallResponseID, &timeStart, &[]time.Time{time.Now()}[0], nil, &pkg.ErrNo, &pkg.Error, &pkg.ErrNo, nil, nil)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -75,19 +86,31 @@ func (fDesc *funcDesc) worker() {
|
||||||
if res.err != nil {
|
if res.err != nil {
|
||||||
if pkg.Metadata.QueueCallback != "" {
|
if pkg.Metadata.QueueCallback != "" {
|
||||||
pkg.ErrNo = 500
|
pkg.ErrNo = 500
|
||||||
if err != nil {
|
//if err != nil {
|
||||||
pkg.Error = err.Error()
|
pkg.Error = res.err.Error()
|
||||||
} else {
|
/*} else {
|
||||||
pkg.Error = ""
|
pkg.Error = ""
|
||||||
}
|
}*/
|
||||||
pkg.Metadata.CallResponseID = uuid.NewV4().String()
|
pkg.Metadata.CallResponseID = uuid.NewV4().String()
|
||||||
fDesc.conn.Publish(pkg.Metadata.QueueCallback, []byte(pkg.Error))
|
if fDesc.logger != nil {
|
||||||
|
fDesc.logger.Err(&pkg.Metadata.FuncName, &pkg.Metadata.CallID, &pkg.Header.CallPrevID, &pkg.Metadata.CallFrom, &pkg.Metadata.CallResponseID, &timeStart, &[]time.Time{time.Now()}[0], nil, &pkg.ErrNo, &pkg.Error, &pkg.ErrNo, nil, nil)
|
||||||
|
}
|
||||||
|
buff, err := proto.Marshal(pkg)
|
||||||
|
if err != nil {
|
||||||
|
//panic(err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
//fDesc.conn.Publish(pkg.Metadata.QueueCallback, []byte(pkg.Error))
|
||||||
|
fDesc.conn.Publish(pkg.Metadata.QueueCallback, buff)
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if pkg.Metadata.QueueCallback != "" {
|
if pkg.Metadata.QueueCallback != "" {
|
||||||
pkg.Payload = res.res
|
pkg.Payload = res.res
|
||||||
pkg.Metadata.CallResponseID = uuid.NewV4().String()
|
pkg.Metadata.CallResponseID = uuid.NewV4().String()
|
||||||
|
if fDesc.logger != nil {
|
||||||
|
fDesc.logger.Info(&pkg.Metadata.FuncName, &pkg.Metadata.CallID, &pkg.Header.CallPrevID, &pkg.Metadata.CallFrom, &pkg.Metadata.CallResponseID, &timeStart, &[]time.Time{time.Now()}[0], nil, &pkg.ErrNo, &pkg.Error, &pkg.ErrNo, &[]int64{int64(len(pkg.Payload))}[0], nil)
|
||||||
|
}
|
||||||
buff, err := proto.Marshal(pkg)
|
buff, err := proto.Marshal(pkg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
//panic(err)
|
//panic(err)
|
||||||
|
@ -105,7 +128,17 @@ func (fDesc *funcDesc) worker() {
|
||||||
//pkg.Error = err.Error()
|
//pkg.Error = err.Error()
|
||||||
pkg.Error = "function call timeout"
|
pkg.Error = "function call timeout"
|
||||||
pkg.Metadata.CallResponseID = uuid.NewV4().String()
|
pkg.Metadata.CallResponseID = uuid.NewV4().String()
|
||||||
fDesc.conn.Publish(pkg.Metadata.QueueCallback, []byte("function call timeout"))
|
if fDesc.logger != nil {
|
||||||
|
fDesc.logger.Err(&pkg.Metadata.FuncName, &pkg.Metadata.CallID, &pkg.Header.CallPrevID, &pkg.Metadata.CallFrom, &pkg.Metadata.CallResponseID, &timeStart, &[]time.Time{time.Now()}[0], nil, &pkg.ErrNo, &pkg.Error, &pkg.ErrNo, nil, nil)
|
||||||
|
}
|
||||||
|
buff, err := proto.Marshal(pkg)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
//fDesc.conn.Publish(pkg.Metadata.QueueCallback, []byte("function call timeout"))
|
||||||
|
if err = fDesc.conn.Publish(pkg.Metadata.QueueCallback, buff); err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
//}
|
//}
|
||||||
|
@ -116,6 +149,7 @@ func (fDesc *funcDesc) worker() {
|
||||||
type CallbackFunc struct {
|
type CallbackFunc struct {
|
||||||
F func(err error, header *network.Header, result []byte)
|
F func(err error, header *network.Header, result []byte)
|
||||||
TimeCall time.Time
|
TimeCall time.Time
|
||||||
|
//Metadata *network.Metadata
|
||||||
}
|
}
|
||||||
|
|
||||||
// Сервер инстанса
|
// Сервер инстанса
|
||||||
|
@ -136,10 +170,12 @@ type Serve struct {
|
||||||
callbackFuncs map[string]*CallbackFunc
|
callbackFuncs map[string]*CallbackFunc
|
||||||
callbackFuncsMutex sync.Mutex
|
callbackFuncsMutex sync.Mutex
|
||||||
accept map[string]map[string]bool
|
accept map[string]map[string]bool
|
||||||
|
logger *ytlogger.YTLogger
|
||||||
|
queueNameLog *string
|
||||||
}
|
}
|
||||||
|
|
||||||
// Создание нового инстанса сервера
|
// Создание нового инстанса сервера
|
||||||
func NewServe(addr string, projectName string, moduleName string, natsServ *nats.Conn) *Serve {
|
func NewServe(addr string, projectName string, moduleName string, natsServ *nats.Conn, priority *ytlogger.Priority, queueNameLog *string) *Serve {
|
||||||
if strings.Trim(moduleName, " ") == "" {
|
if strings.Trim(moduleName, " ") == "" {
|
||||||
moduleName = "default"
|
moduleName = "default"
|
||||||
} else {
|
} else {
|
||||||
|
@ -174,9 +210,28 @@ func NewServe(addr string, projectName string, moduleName string, natsServ *nats
|
||||||
|
|
||||||
serve.timeoutCallback = time.Second * 30
|
serve.timeoutCallback = time.Second * 30
|
||||||
|
|
||||||
|
if queueNameLog != nil {
|
||||||
|
if priority == nil {
|
||||||
|
priority = &[]ytlogger.Priority{ytlogger.LOG_INFO}[0]
|
||||||
|
}
|
||||||
|
serve.logger = ytlogger.NewYTLogger(*priority, 100000, serve.sendLog)
|
||||||
|
serve.queueNameLog = queueNameLog
|
||||||
|
}
|
||||||
|
|
||||||
return serve
|
return serve
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Функция отправки логов на удаленный сервер
|
||||||
|
func (serve *Serve) sendLog(pkg *log.Pkg) {
|
||||||
|
var b []byte
|
||||||
|
var err error
|
||||||
|
b, err = proto.Marshal(pkg)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
serve.nc.Publish(*serve.queueNameLog, b)
|
||||||
|
}
|
||||||
|
|
||||||
// Установка разрешающих правил выполнения функций
|
// Установка разрешающих правил выполнения функций
|
||||||
func (serve *Serve) AddAccept(ruleName string) bool {
|
func (serve *Serve) AddAccept(ruleName string) bool {
|
||||||
return serve.AddAcceptBool(ruleName, true)
|
return serve.AddAcceptBool(ruleName, true)
|
||||||
|
@ -293,18 +348,20 @@ func (serve *Serve) worker() {
|
||||||
//panic(err)
|
//panic(err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if f, ok := serve.callbackFuncs[payload.Metadata.CallID]; ok {
|
if payload.Metadata != nil {
|
||||||
serve.callbackFuncsMutex.Lock()
|
if f, ok := serve.callbackFuncs[payload.Metadata.CallID]; ok {
|
||||||
delete(serve.callbackFuncs, payload.Metadata.CallID)
|
serve.callbackFuncsMutex.Lock()
|
||||||
serve.callbackFuncsMutex.Unlock()
|
delete(serve.callbackFuncs, payload.Metadata.CallID)
|
||||||
if payload.ErrNo != 0 {
|
serve.callbackFuncsMutex.Unlock()
|
||||||
err = fmt.Errorf(payload.Error)
|
if payload.ErrNo != 0 {
|
||||||
|
err = fmt.Errorf(payload.Error)
|
||||||
|
}
|
||||||
|
if f != nil {
|
||||||
|
//go f.F(err, payload.Header, payload.Payload)
|
||||||
|
f.F(err, payload.Header, payload.Payload)
|
||||||
|
}
|
||||||
|
//f(err, payload.Header, payload.Payload)
|
||||||
}
|
}
|
||||||
if f != nil {
|
|
||||||
//go f.F(err, payload.Header, payload.Payload)
|
|
||||||
f.F(err, payload.Header, payload.Payload)
|
|
||||||
}
|
|
||||||
//f(err, payload.Header, payload.Payload)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -346,8 +403,9 @@ func (serve *Serve) RegisterFunctionWithTimeout(funcName string, timeout time.Du
|
||||||
}
|
}
|
||||||
|
|
||||||
fDesc := funcDesc{
|
fDesc := funcDesc{
|
||||||
Name: fmt.Sprintf("%s.%s.%s", serve.projectName, serve.moduleName, funcName),
|
Name: fmt.Sprintf("%s.%s.%s", serve.projectName, serve.moduleName, funcName),
|
||||||
F: f,
|
F: f,
|
||||||
|
logger: serve.logger,
|
||||||
}
|
}
|
||||||
fDesc.inputChan = make(chan *nats.Msg)
|
fDesc.inputChan = make(chan *nats.Msg)
|
||||||
fDesc.subj, err = serve.nc.ChanQueueSubscribe(fmt.Sprintf("%s.%s.%s", serve.projectName, serve.moduleName, funcName), serve.projectName+"."+serve.moduleName, fDesc.inputChan)
|
fDesc.subj, err = serve.nc.ChanQueueSubscribe(fmt.Sprintf("%s.%s.%s", serve.projectName, serve.moduleName, funcName), serve.projectName+"."+serve.moduleName, fDesc.inputChan)
|
||||||
|
@ -407,7 +465,7 @@ func (serve *Serve) acceptVerify(accept string) bool {
|
||||||
// Асинхронный вызов функции
|
// Асинхронный вызов функции
|
||||||
func (serve *Serve) CallAsync(name string, header *network.Header, payload []byte, f func(err error, header *network.Header, result []byte)) {
|
func (serve *Serve) CallAsync(name string, header *network.Header, payload []byte, f func(err error, header *network.Header, result []byte)) {
|
||||||
metadata := &network.Metadata{
|
metadata := &network.Metadata{
|
||||||
PackageType: network.Metadata_TYPE_REQUEST,
|
//PackageType: network.Metadata_TYPE_REQUEST,
|
||||||
FuncName: name,
|
FuncName: name,
|
||||||
QueueCallback: serve.queueCallback,
|
QueueCallback: serve.queueCallback,
|
||||||
CallID: uuid.NewV4().String(),
|
CallID: uuid.NewV4().String(),
|
||||||
|
@ -416,7 +474,12 @@ func (serve *Serve) CallAsync(name string, header *network.Header, payload []byt
|
||||||
if header == nil {
|
if header == nil {
|
||||||
header = &network.Header{}
|
header = &network.Header{}
|
||||||
}
|
}
|
||||||
|
header.CallPrevID = header.CallID
|
||||||
|
header.CallID = metadata.CallID
|
||||||
header.Project = serve.projectName
|
header.Project = serve.projectName
|
||||||
|
if header.PayloadSize == 0 {
|
||||||
|
header.PayloadSize = int64(len(payload))
|
||||||
|
}
|
||||||
pkg := network.Function{
|
pkg := network.Function{
|
||||||
Header: header,
|
Header: header,
|
||||||
Payload: payload,
|
Payload: payload,
|
||||||
|
@ -424,12 +487,16 @@ func (serve *Serve) CallAsync(name string, header *network.Header, payload []byt
|
||||||
}
|
}
|
||||||
buf, err := proto.Marshal(&pkg)
|
buf, err := proto.Marshal(&pkg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
if f != nil {
|
||||||
|
f(err, header, payload)
|
||||||
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
callback := &CallbackFunc{
|
callback := &CallbackFunc{
|
||||||
F: f,
|
F: f,
|
||||||
TimeCall: time.Now(),
|
TimeCall: time.Now(),
|
||||||
|
//Metadata: pkg.Metadata,
|
||||||
}
|
}
|
||||||
serve.callbackFuncsMutex.Lock()
|
serve.callbackFuncsMutex.Lock()
|
||||||
defer serve.callbackFuncsMutex.Unlock()
|
defer serve.callbackFuncsMutex.Unlock()
|
||||||
|
@ -455,3 +522,30 @@ func (serve *Serve) Call(name string, header *network.Header, payload []byte) (r
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Вызов функции как поток без ожидания возврата результата
|
||||||
|
func (serve *Serve) CallStream(name string, header *network.Header, payload []byte) (err error) {
|
||||||
|
metadata := &network.Metadata{
|
||||||
|
//PackageType: network.Metadata_TYPE_STREAM,
|
||||||
|
FuncName: name,
|
||||||
|
QueueCallback: serve.queueCallback,
|
||||||
|
CallID: uuid.NewV4().String(),
|
||||||
|
CallFrom: fmt.Sprintf("%s.%s", serve.projectName, serve.moduleName),
|
||||||
|
}
|
||||||
|
if header == nil {
|
||||||
|
header = &network.Header{}
|
||||||
|
}
|
||||||
|
header.Project = serve.projectName
|
||||||
|
pkg := network.Function{
|
||||||
|
Header: header,
|
||||||
|
Payload: payload,
|
||||||
|
Metadata: metadata,
|
||||||
|
}
|
||||||
|
var buf []byte
|
||||||
|
buf, err = proto.Marshal(&pkg)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
serve.nc.Publish(name, buf)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"git.ymnuktech.ru/ymnuk/yt-function-sdk-go.git/network"
|
"git.ymnuktech.ru/ymnuk/yt-function-sdk-go/network"
|
||||||
)
|
)
|
||||||
|
|
||||||
var serve *Serve
|
var serve *Serve
|
||||||
|
@ -24,7 +24,7 @@ func setup() {
|
||||||
port = "4222"
|
port = "4222"
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
serve = NewServe(addr, "", "test", nil)
|
serve = NewServe(addr, "", "test", nil, nil, nil)
|
||||||
if serve == nil {
|
if serve == nil {
|
||||||
panic(fmt.Errorf(`serve is not created`))
|
panic(fmt.Errorf(`serve is not created`))
|
||||||
}
|
}
|
||||||
|
@ -122,3 +122,41 @@ func TestCallFunction(t *testing.T) {
|
||||||
t.Errorf("got \"my test\", but expect \"%s\"", v)
|
t.Errorf("got \"my test\", but expect \"%s\"", v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCallFunctionDouble(t *testing.T) {
|
||||||
|
var err error
|
||||||
|
err = serve.RegisterFunction("testFuncSimple1", func(header *network.Header, paylod []byte) (result []byte, err error) {
|
||||||
|
/*header.ResponseHeaders["test"] = "my test"
|
||||||
|
return []byte("world"), nil*/
|
||||||
|
result, _, err = serve.Call("default.test.testFuncSimple2", header, []byte("Hello"))
|
||||||
|
return result, err
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Error("Has error: ", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = serve.RegisterFunction("testFuncSimple2", func(header *network.Header, paylod []byte) (result []byte, err error) {
|
||||||
|
header.ResponseHeaders["test"] = "my test"
|
||||||
|
return []byte("world"), nil
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
t.Error("Has error: ", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var result []byte
|
||||||
|
var header *network.Header
|
||||||
|
result, header, err = serve.Call("default.test.testFuncSimple1", nil, []byte("Hello"))
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if string(result) != "world" {
|
||||||
|
t.Error("Function not returned \"world\"")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if v, ok := header.ResponseHeaders["test"]; !ok {
|
||||||
|
t.Errorf("not set response header")
|
||||||
|
} else if v != "my test" {
|
||||||
|
t.Errorf("got \"my test\", but expect \"%s\"", v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user