diff --git a/go.mod b/go.mod index a6bd35f857e..afbc250e66e 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd github.com/soheilhy/cmux v0.1.4 github.com/stretchr/testify v1.4.0 - github.com/v3io/v3io-tsdb v0.11.2 + github.com/v3io/v3io-tsdb v0.11.6 golang.org/x/net v0.0.0-20190724013045-ca1201d0de80 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a @@ -61,8 +61,8 @@ require ( replace ( github.com/golang/lint => golang.org/x/lint v0.0.0-20190409202823-959b441ac422 - github.com/v3io/frames => github.com/v3io/frames v0.8.1 - github.com/v3io/v3io-tsdb => github.com/v3io/v3io-tsdb v0.11.6 + github.com/v3io/frames => github.com/v3io/frames v0.8.10 + github.com/v3io/v3io-tsdb => github.com/v3io/v3io-tsdb v0.11.7 google.golang.org/grpc => google.golang.org/grpc v1.19.1 k8s.io/klog => github.com/simonpasquier/klog-gokit v0.1.0 ) diff --git a/go.sum b/go.sum index 27fd1936311..2b3ca40e4b0 100644 --- a/go.sum +++ b/go.sum @@ -211,6 +211,7 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb v1.7.7 h1:UvNzAPfBrKMENVbQ4mr4ccA9sW+W1Ihl0Yh1s0BiVAg= github.com/influxdata/influxdb v1.7.7/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= github.com/jessevdk/go-flags v0.0.0-20180331124232-1c38ed7ad0cc/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -390,8 +391,12 @@ github.com/tinylib/msgp v1.1.1 h1:TnCZ3FIuKeaIy+F45+Cnp+caqdXGy4z74HvwXN+570Y= github.com/tinylib/msgp v1.1.1/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/v3io/frames v0.8.1 h1:wUWCX6RUEQ05SG3P9VtMBYh7gWrYNOiA81HcWXRXGZw= github.com/v3io/frames v0.8.1/go.mod h1:qQnXBGO3uLKwN9HVcQ2ggHlIs8xT+200uJaWUgDocpk= +github.com/v3io/frames v0.8.10 h1:0zzsNVQLBF4Tl08ZcyTthMfefvfkvsICpgcMVPztcGA= +github.com/v3io/frames v0.8.10/go.mod h1:WmtH4jAi7gnULRagJ7t5rc/tLoTK/Nd2zmOesQT9mXY= github.com/v3io/v3io-go v0.1.9 h1:etkrrRmrI++i8sxGfK/+13f41TxIMohYeZHwVUM62vw= github.com/v3io/v3io-go v0.1.9/go.mod h1:5poBlcjZG5TiexRTYI44PE6tHzZz5Z60w+iS899pWtc= +github.com/v3io/v3io-go v0.2.5-0.20210113095419-6c806b8d5186 h1:cHzR1AKhoBVVPNBGt8ekQwXI4wzER1KRb3J3IhJaWao= +github.com/v3io/v3io-go v0.2.5-0.20210113095419-6c806b8d5186/go.mod h1:WGxAG5MfZ5FeeZa7yGzocW+iLxTlrpkOWdnCIty4QDc= github.com/v3io/v3io-tsdb v0.11.3 h1:zH2rVNsPy9CIm0/gwJ7NNyjDD7G2w4XhUygeZqexLaE= github.com/v3io/v3io-tsdb v0.11.3/go.mod h1:kp586KxTfROIGwb/nzNxwDbX2Wterxro+HbiZHmK548= github.com/v3io/v3io-tsdb v0.11.4 h1:tDw+EdFNregIy6r4fPqtOybkAj4ngUl4WRQNH24Xe0M= @@ -400,6 +405,8 @@ github.com/v3io/v3io-tsdb v0.11.5 h1:PMrkb2B7No7Ghe9e+qezen8+3v/L2ZGdkRYCIhL7D0Q github.com/v3io/v3io-tsdb v0.11.5/go.mod h1:kp586KxTfROIGwb/nzNxwDbX2Wterxro+HbiZHmK548= github.com/v3io/v3io-tsdb v0.11.6 h1:G8Gn+RNEMS8zFLafoSaMzaCu65vJyJr/wx91a+g+KZ0= github.com/v3io/v3io-tsdb v0.11.6/go.mod h1:uyk46LJxROChqmlhg5M5Kw7qK1WfJD3hrqNHR6kLjeg= +github.com/v3io/v3io-tsdb v0.11.7 h1:X1Wqu0L+WVuz9DnmE2o26hW03v39kQlqFkt65LepmBI= +github.com/v3io/v3io-tsdb v0.11.7/go.mod h1:zAz77gck9fjlC+lPbbq4JBHitP3rv4KLWR/YUuFjJcU= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.2.0 h1:dzZJf2IuMiclVjdw0kkT+f9u4YdrapbNyGAN47E/qnk= diff --git a/vendor/github.com/v3io/frames/README.md b/vendor/github.com/v3io/frames/README.md index 976b6e069ba..4d4efb3117b 100644 --- a/vendor/github.com/v3io/frames/README.md +++ b/vendor/github.com/v3io/frames/README.md @@ -849,7 +849,7 @@ The following `execute` commands are specific to the `stream` backend; for more ```python client.execute('stream', table="mystream", command='put', args={'data': '{"cpu": 12.4, "mem": 31.1, "disk": 12.7}', - "client_info": "my custom info", "partition": "PK1"}) + "client_info": "my custom info", "partition_key": "PK1"}) ``` @@ -1037,3 +1037,4 @@ docker run \ [Apache 2](LICENSE) + diff --git a/vendor/github.com/v3io/frames/config.go b/vendor/github.com/v3io/frames/config.go index 3855e222379..4b0022d3b69 100644 --- a/vendor/github.com/v3io/frames/config.go +++ b/vendor/github.com/v3io/frames/config.go @@ -48,8 +48,8 @@ type Config struct { Workers int `json:"workers"` UpdateWorkersPerVN int `json:"updateWorkersPerVN"` - QuerierCacheSize int `json:"querierCacheSize"` - TsdbLoadPartitionsFromSchemaAttr bool `json:"tsdbLoadPartitionsFromSchemaAttr"` + QuerierCacheSize int `json:"querierCacheSize"` + TsdbMetricCacheSize int `json:"tsdbMetricCacheSize"` // History server related configs WriteMonitoringLogsTimeoutSeconds int `json:writeMonitoringLogsTimeoutSeconds` @@ -142,6 +142,7 @@ type BackendConfig struct { V3ioGoRequestChanLength int `json:"v3ioGoRequestChanLength"` MaxConnections int `json:"maxConnections"` DialTimeoutSeconds int `json:"dialTimeoutSeconds"` + MaxRecordsInferSchema int `json:"maxRecordsInferSchema"` // backend specific options Options map[string]interface{} `json:"options"` @@ -232,4 +233,8 @@ func initBackendDefaults(cfg *BackendConfig, framesConfig *Config) { if cfg.V3ioGoRequestChanLength == 0 { cfg.V3ioGoRequestChanLength = cfg.V3ioGoWorkers * 256 } + + if cfg.MaxRecordsInferSchema == 0 { + cfg.MaxRecordsInferSchema = 10 + } } diff --git a/vendor/github.com/v3io/frames/frames.proto b/vendor/github.com/v3io/frames/frames.proto index b7c62cb603e..d65f51261c9 100644 --- a/vendor/github.com/v3io/frames/frames.proto +++ b/vendor/github.com/v3io/frames/frames.proto @@ -22,12 +22,13 @@ syntax = "proto3"; package pb; enum DType { - INTEGER = 0; - FLOAT = 1; - STRING = 2; - TIME = 3; - BOOLEAN = 4; - NULL = 5; + NONE = 0; + INTEGER = 1; + FLOAT = 2; + STRING = 3; + TIME = 4; + BOOLEAN = 5; + NULL = 6; } message Column { @@ -212,6 +213,13 @@ message DeleteRequest { message DeleteResponse {} +message VersionRequest {} + +message ExecResponse { + Frame frame = 1; + int64 rows = 2; +} + message ExecRequest { Session session = 1; string backend = 2; // Name of the backend @@ -221,8 +229,8 @@ message ExecRequest { string expression = 6; } -message ExecResponse { - Frame frame = 1; +message VersionResponse { + string version = 1; } message HistoryRequest { @@ -246,4 +254,5 @@ service Frames { rpc Delete(DeleteRequest) returns (DeleteResponse) {} rpc Exec(ExecRequest) returns (ExecResponse) {} rpc History(HistoryRequest) returns (stream Frame) {} + rpc Version(VersionRequest) returns (VersionResponse) {} } diff --git a/vendor/github.com/v3io/frames/go.mod b/vendor/github.com/v3io/frames/go.mod index 05bc48580ec..40879665fe4 100644 --- a/vendor/github.com/v3io/frames/go.mod +++ b/vendor/github.com/v3io/frames/go.mod @@ -12,7 +12,7 @@ require ( github.com/pkg/errors v0.8.1 github.com/stretchr/testify v1.4.0 github.com/v3io/v3io-go v0.1.9 - github.com/v3io/v3io-tsdb v0.11.0 + github.com/v3io/v3io-tsdb v0.11.6 github.com/valyala/fasthttp v1.2.0 github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2 golang.org/x/net v0.0.0-20190311183353-d8887717615a @@ -22,4 +22,5 @@ require ( replace ( github.com/v3io/frames => ./ github.com/xwb1989/sqlparser => github.com/v3io/sqlparser v0.0.0-20190306105200-4d7273501871 + github.com/v3io/v3io-go => github.com/v3io/v3io-go v0.2.4-0.20201209122348-e01fabe35df8 ) diff --git a/vendor/github.com/v3io/frames/go.sum b/vendor/github.com/v3io/frames/go.sum index 0db0b76fb05..007db7c486e 100644 --- a/vendor/github.com/v3io/frames/go.sum +++ b/vendor/github.com/v3io/frames/go.sum @@ -68,10 +68,14 @@ github.com/v3io/sqlparser v0.0.0-20190306105200-4d7273501871 h1:myF4tU/HdFWU1UzM github.com/v3io/sqlparser v0.0.0-20190306105200-4d7273501871/go.mod h1:QD2Bo64oyTWzeV8RFehXS0hZEDFgOK99/h2a6ErRu6E= github.com/v3io/v3io-go v0.1.9 h1:etkrrRmrI++i8sxGfK/+13f41TxIMohYeZHwVUM62vw= github.com/v3io/v3io-go v0.1.9/go.mod h1:5poBlcjZG5TiexRTYI44PE6tHzZz5Z60w+iS899pWtc= -github.com/v3io/v3io-tsdb v0.10.12 h1:+AfPHFJVxzpKtng0Hiz256ef9abzIwKwPuzB+0jG7w8= -github.com/v3io/v3io-tsdb v0.10.12/go.mod h1:kp586KxTfROIGwb/nzNxwDbX2Wterxro+HbiZHmK548= -github.com/v3io/v3io-tsdb v0.11.0 h1:jN8A1EVCAzsJxozI/23Yl/aNoHJmXz+TKVQlx3ddAuk= -github.com/v3io/v3io-tsdb v0.11.0/go.mod h1:kp586KxTfROIGwb/nzNxwDbX2Wterxro+HbiZHmK548= +github.com/v3io/v3io-go v0.2.4-0.20201209122348-e01fabe35df8 h1:Bg3LtR/4cH9mGWTWKGeEZcf7Z88whuf4mufSnj5S4qg= +github.com/v3io/v3io-go v0.2.4-0.20201209122348-e01fabe35df8/go.mod h1:WGxAG5MfZ5FeeZa7yGzocW+iLxTlrpkOWdnCIty4QDc= +github.com/v3io/v3io-tsdb v0.11.3 h1:zH2rVNsPy9CIm0/gwJ7NNyjDD7G2w4XhUygeZqexLaE= +github.com/v3io/v3io-tsdb v0.11.3/go.mod h1:kp586KxTfROIGwb/nzNxwDbX2Wterxro+HbiZHmK548= +github.com/v3io/v3io-tsdb v0.11.4 h1:tDw+EdFNregIy6r4fPqtOybkAj4ngUl4WRQNH24Xe0M= +github.com/v3io/v3io-tsdb v0.11.4/go.mod h1:kp586KxTfROIGwb/nzNxwDbX2Wterxro+HbiZHmK548= +github.com/v3io/v3io-tsdb v0.11.5/go.mod h1:kp586KxTfROIGwb/nzNxwDbX2Wterxro+HbiZHmK548= +github.com/v3io/v3io-tsdb v0.11.6/go.mod h1:uyk46LJxROChqmlhg5M5Kw7qK1WfJD3hrqNHR6kLjeg= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasthttp v1.2.0 h1:dzZJf2IuMiclVjdw0kkT+f9u4YdrapbNyGAN47E/qnk= diff --git a/vendor/github.com/v3io/frames/pb/frames.pb.go b/vendor/github.com/v3io/frames/pb/frames.pb.go index 79dc180a30f..3d20047792b 100644 --- a/vendor/github.com/v3io/frames/pb/frames.pb.go +++ b/vendor/github.com/v3io/frames/pb/frames.pb.go @@ -26,36 +26,39 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type DType int32 const ( - DType_INTEGER DType = 0 - DType_FLOAT DType = 1 - DType_STRING DType = 2 - DType_TIME DType = 3 - DType_BOOLEAN DType = 4 - DType_NULL DType = 5 + DType_NONE DType = 0 + DType_INTEGER DType = 1 + DType_FLOAT DType = 2 + DType_STRING DType = 3 + DType_TIME DType = 4 + DType_BOOLEAN DType = 5 + DType_NULL DType = 6 ) var DType_name = map[int32]string{ - 0: "INTEGER", - 1: "FLOAT", - 2: "STRING", - 3: "TIME", - 4: "BOOLEAN", - 5: "NULL", + 0: "NONE", + 1: "INTEGER", + 2: "FLOAT", + 3: "STRING", + 4: "TIME", + 5: "BOOLEAN", + 6: "NULL", } var DType_value = map[string]int32{ - "INTEGER": 0, - "FLOAT": 1, - "STRING": 2, - "TIME": 3, - "BOOLEAN": 4, - "NULL": 5, + "NONE": 0, + "INTEGER": 1, + "FLOAT": 2, + "STRING": 3, + "TIME": 4, + "BOOLEAN": 5, + "NULL": 6, } func (x DType) String() string { return proto.EnumName(DType_name, int32(x)) } func (DType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{0} + return fileDescriptor_frames_e3d1b436579e21b2, []int{0} } type ErrorOptions int32 @@ -78,7 +81,7 @@ func (x ErrorOptions) String() string { return proto.EnumName(ErrorOptions_name, int32(x)) } func (ErrorOptions) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{1} + return fileDescriptor_frames_e3d1b436579e21b2, []int{1} } type Column_Kind int32 @@ -101,7 +104,7 @@ func (x Column_Kind) String() string { return proto.EnumName(Column_Kind_name, int32(x)) } func (Column_Kind) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{0, 0} + return fileDescriptor_frames_e3d1b436579e21b2, []int{0, 0} } type Column struct { @@ -124,7 +127,7 @@ func (m *Column) Reset() { *m = Column{} } func (m *Column) String() string { return proto.CompactTextString(m) } func (*Column) ProtoMessage() {} func (*Column) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{0} + return fileDescriptor_frames_e3d1b436579e21b2, []int{0} } func (m *Column) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Column.Unmarshal(m, b) @@ -162,7 +165,7 @@ func (m *Column) GetDtype() DType { if m != nil { return m.Dtype } - return DType_INTEGER + return DType_NONE } func (m *Column) GetSize() int64 { @@ -225,7 +228,7 @@ func (m *Value) Reset() { *m = Value{} } func (m *Value) String() string { return proto.CompactTextString(m) } func (*Value) ProtoMessage() {} func (*Value) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{1} + return fileDescriptor_frames_e3d1b436579e21b2, []int{1} } func (m *Value) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Value.Unmarshal(m, b) @@ -443,7 +446,7 @@ func (m *NullValuesMap) Reset() { *m = NullValuesMap{} } func (m *NullValuesMap) String() string { return proto.CompactTextString(m) } func (*NullValuesMap) ProtoMessage() {} func (*NullValuesMap) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{2} + return fileDescriptor_frames_e3d1b436579e21b2, []int{2} } func (m *NullValuesMap) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NullValuesMap.Unmarshal(m, b) @@ -485,7 +488,7 @@ func (m *Frame) Reset() { *m = Frame{} } func (m *Frame) String() string { return proto.CompactTextString(m) } func (*Frame) ProtoMessage() {} func (*Frame) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{3} + return fileDescriptor_frames_e3d1b436579e21b2, []int{3} } func (m *Frame) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Frame.Unmarshal(m, b) @@ -556,7 +559,7 @@ func (m *SchemaField) Reset() { *m = SchemaField{} } func (m *SchemaField) String() string { return proto.CompactTextString(m) } func (*SchemaField) ProtoMessage() {} func (*SchemaField) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{4} + return fileDescriptor_frames_e3d1b436579e21b2, []int{4} } func (m *SchemaField) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SchemaField.Unmarshal(m, b) @@ -623,7 +626,7 @@ func (m *SchemaKey) Reset() { *m = SchemaKey{} } func (m *SchemaKey) String() string { return proto.CompactTextString(m) } func (*SchemaKey) ProtoMessage() {} func (*SchemaKey) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{5} + return fileDescriptor_frames_e3d1b436579e21b2, []int{5} } func (m *SchemaKey) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SchemaKey.Unmarshal(m, b) @@ -675,7 +678,7 @@ func (m *TableSchema) Reset() { *m = TableSchema{} } func (m *TableSchema) String() string { return proto.CompactTextString(m) } func (*TableSchema) ProtoMessage() {} func (*TableSchema) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{6} + return fileDescriptor_frames_e3d1b436579e21b2, []int{6} } func (m *TableSchema) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TableSchema.Unmarshal(m, b) @@ -754,7 +757,7 @@ func (m *JoinStruct) Reset() { *m = JoinStruct{} } func (m *JoinStruct) String() string { return proto.CompactTextString(m) } func (*JoinStruct) ProtoMessage() {} func (*JoinStruct) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{7} + return fileDescriptor_frames_e3d1b436579e21b2, []int{7} } func (m *JoinStruct) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinStruct.Unmarshal(m, b) @@ -791,7 +794,7 @@ func (m *Session) Reset() { *m = Session{} } func (m *Session) String() string { return proto.CompactTextString(m) } func (*Session) ProtoMessage() {} func (*Session) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{8} + return fileDescriptor_frames_e3d1b436579e21b2, []int{8} } func (m *Session) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Session.Unmarshal(m, b) @@ -902,7 +905,7 @@ func (m *ReadRequest) Reset() { *m = ReadRequest{} } func (m *ReadRequest) String() string { return proto.CompactTextString(m) } func (*ReadRequest) ProtoMessage() {} func (*ReadRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{9} + return fileDescriptor_frames_e3d1b436579e21b2, []int{9} } func (m *ReadRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReadRequest.Unmarshal(m, b) @@ -1144,7 +1147,7 @@ func (m *InitialWriteRequest) Reset() { *m = InitialWriteRequest{} } func (m *InitialWriteRequest) String() string { return proto.CompactTextString(m) } func (*InitialWriteRequest) ProtoMessage() {} func (*InitialWriteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{10} + return fileDescriptor_frames_e3d1b436579e21b2, []int{10} } func (m *InitialWriteRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InitialWriteRequest.Unmarshal(m, b) @@ -1241,7 +1244,7 @@ func (m *WriteRequest) Reset() { *m = WriteRequest{} } func (m *WriteRequest) String() string { return proto.CompactTextString(m) } func (*WriteRequest) ProtoMessage() {} func (*WriteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{11} + return fileDescriptor_frames_e3d1b436579e21b2, []int{11} } func (m *WriteRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WriteRequest.Unmarshal(m, b) @@ -1384,7 +1387,7 @@ func (m *WriteRespose) Reset() { *m = WriteRespose{} } func (m *WriteRespose) String() string { return proto.CompactTextString(m) } func (*WriteRespose) ProtoMessage() {} func (*WriteRespose) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{12} + return fileDescriptor_frames_e3d1b436579e21b2, []int{12} } func (m *WriteRespose) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WriteRespose.Unmarshal(m, b) @@ -1441,7 +1444,7 @@ func (m *CreateRequest) Reset() { *m = CreateRequest{} } func (m *CreateRequest) String() string { return proto.CompactTextString(m) } func (*CreateRequest) ProtoMessage() {} func (*CreateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{13} + return fileDescriptor_frames_e3d1b436579e21b2, []int{13} } func (m *CreateRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateRequest.Unmarshal(m, b) @@ -1541,7 +1544,7 @@ func (m *CreateResponse) Reset() { *m = CreateResponse{} } func (m *CreateResponse) String() string { return proto.CompactTextString(m) } func (*CreateResponse) ProtoMessage() {} func (*CreateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{14} + return fileDescriptor_frames_e3d1b436579e21b2, []int{14} } func (m *CreateResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateResponse.Unmarshal(m, b) @@ -1581,7 +1584,7 @@ func (m *DeleteRequest) Reset() { *m = DeleteRequest{} } func (m *DeleteRequest) String() string { return proto.CompactTextString(m) } func (*DeleteRequest) ProtoMessage() {} func (*DeleteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{15} + return fileDescriptor_frames_e3d1b436579e21b2, []int{15} } func (m *DeleteRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteRequest.Unmarshal(m, b) @@ -1667,7 +1670,7 @@ func (m *DeleteResponse) Reset() { *m = DeleteResponse{} } func (m *DeleteResponse) String() string { return proto.CompactTextString(m) } func (*DeleteResponse) ProtoMessage() {} func (*DeleteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{16} + return fileDescriptor_frames_e3d1b436579e21b2, []int{16} } func (m *DeleteResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteResponse.Unmarshal(m, b) @@ -1687,6 +1690,82 @@ func (m *DeleteResponse) XXX_DiscardUnknown() { var xxx_messageInfo_DeleteResponse proto.InternalMessageInfo +type VersionRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VersionRequest) Reset() { *m = VersionRequest{} } +func (m *VersionRequest) String() string { return proto.CompactTextString(m) } +func (*VersionRequest) ProtoMessage() {} +func (*VersionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_frames_e3d1b436579e21b2, []int{17} +} +func (m *VersionRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VersionRequest.Unmarshal(m, b) +} +func (m *VersionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VersionRequest.Marshal(b, m, deterministic) +} +func (dst *VersionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_VersionRequest.Merge(dst, src) +} +func (m *VersionRequest) XXX_Size() int { + return xxx_messageInfo_VersionRequest.Size(m) +} +func (m *VersionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_VersionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_VersionRequest proto.InternalMessageInfo + +type ExecResponse struct { + Frame *Frame `protobuf:"bytes,1,opt,name=frame,proto3" json:"frame,omitempty"` + Rows int64 `protobuf:"varint,2,opt,name=rows,proto3" json:"rows,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ExecResponse) Reset() { *m = ExecResponse{} } +func (m *ExecResponse) String() string { return proto.CompactTextString(m) } +func (*ExecResponse) ProtoMessage() {} +func (*ExecResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_frames_e3d1b436579e21b2, []int{18} +} +func (m *ExecResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ExecResponse.Unmarshal(m, b) +} +func (m *ExecResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ExecResponse.Marshal(b, m, deterministic) +} +func (dst *ExecResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExecResponse.Merge(dst, src) +} +func (m *ExecResponse) XXX_Size() int { + return xxx_messageInfo_ExecResponse.Size(m) +} +func (m *ExecResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ExecResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ExecResponse proto.InternalMessageInfo + +func (m *ExecResponse) GetFrame() *Frame { + if m != nil { + return m.Frame + } + return nil +} + +func (m *ExecResponse) GetRows() int64 { + if m != nil { + return m.Rows + } + return 0 +} + type ExecRequest struct { Session *Session `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` Backend string `protobuf:"bytes,2,opt,name=backend,proto3" json:"backend,omitempty"` @@ -1703,7 +1782,7 @@ func (m *ExecRequest) Reset() { *m = ExecRequest{} } func (m *ExecRequest) String() string { return proto.CompactTextString(m) } func (*ExecRequest) ProtoMessage() {} func (*ExecRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{17} + return fileDescriptor_frames_e3d1b436579e21b2, []int{19} } func (m *ExecRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExecRequest.Unmarshal(m, b) @@ -1765,42 +1844,42 @@ func (m *ExecRequest) GetExpression() string { return "" } -type ExecResponse struct { - Frame *Frame `protobuf:"bytes,1,opt,name=frame,proto3" json:"frame,omitempty"` +type VersionResponse struct { + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *ExecResponse) Reset() { *m = ExecResponse{} } -func (m *ExecResponse) String() string { return proto.CompactTextString(m) } -func (*ExecResponse) ProtoMessage() {} -func (*ExecResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{18} +func (m *VersionResponse) Reset() { *m = VersionResponse{} } +func (m *VersionResponse) String() string { return proto.CompactTextString(m) } +func (*VersionResponse) ProtoMessage() {} +func (*VersionResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_frames_e3d1b436579e21b2, []int{20} } -func (m *ExecResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ExecResponse.Unmarshal(m, b) +func (m *VersionResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VersionResponse.Unmarshal(m, b) } -func (m *ExecResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ExecResponse.Marshal(b, m, deterministic) +func (m *VersionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VersionResponse.Marshal(b, m, deterministic) } -func (dst *ExecResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_ExecResponse.Merge(dst, src) +func (dst *VersionResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_VersionResponse.Merge(dst, src) } -func (m *ExecResponse) XXX_Size() int { - return xxx_messageInfo_ExecResponse.Size(m) +func (m *VersionResponse) XXX_Size() int { + return xxx_messageInfo_VersionResponse.Size(m) } -func (m *ExecResponse) XXX_DiscardUnknown() { - xxx_messageInfo_ExecResponse.DiscardUnknown(m) +func (m *VersionResponse) XXX_DiscardUnknown() { + xxx_messageInfo_VersionResponse.DiscardUnknown(m) } -var xxx_messageInfo_ExecResponse proto.InternalMessageInfo +var xxx_messageInfo_VersionResponse proto.InternalMessageInfo -func (m *ExecResponse) GetFrame() *Frame { +func (m *VersionResponse) GetVersion() string { if m != nil { - return m.Frame + return m.Version } - return nil + return "" } type HistoryRequest struct { @@ -1823,7 +1902,7 @@ func (m *HistoryRequest) Reset() { *m = HistoryRequest{} } func (m *HistoryRequest) String() string { return proto.CompactTextString(m) } func (*HistoryRequest) ProtoMessage() {} func (*HistoryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_frames_8eec434b81b14290, []int{19} + return fileDescriptor_frames_e3d1b436579e21b2, []int{21} } func (m *HistoryRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_HistoryRequest.Unmarshal(m, b) @@ -1934,9 +2013,11 @@ func init() { proto.RegisterType((*CreateResponse)(nil), "pb.CreateResponse") proto.RegisterType((*DeleteRequest)(nil), "pb.DeleteRequest") proto.RegisterType((*DeleteResponse)(nil), "pb.DeleteResponse") + proto.RegisterType((*VersionRequest)(nil), "pb.VersionRequest") + proto.RegisterType((*ExecResponse)(nil), "pb.ExecResponse") proto.RegisterType((*ExecRequest)(nil), "pb.ExecRequest") proto.RegisterMapType((map[string]*Value)(nil), "pb.ExecRequest.ArgsEntry") - proto.RegisterType((*ExecResponse)(nil), "pb.ExecResponse") + proto.RegisterType((*VersionResponse)(nil), "pb.VersionResponse") proto.RegisterType((*HistoryRequest)(nil), "pb.HistoryRequest") proto.RegisterEnum("pb.DType", DType_name, DType_value) proto.RegisterEnum("pb.ErrorOptions", ErrorOptions_name, ErrorOptions_value) @@ -1961,6 +2042,7 @@ type FramesClient interface { Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error) Exec(ctx context.Context, in *ExecRequest, opts ...grpc.CallOption) (*ExecResponse, error) History(ctx context.Context, in *HistoryRequest, opts ...grpc.CallOption) (Frames_HistoryClient, error) + Version(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*VersionResponse, error) } type framesClient struct { @@ -2096,6 +2178,15 @@ func (x *framesHistoryClient) Recv() (*Frame, error) { return m, nil } +func (c *framesClient) Version(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*VersionResponse, error) { + out := new(VersionResponse) + err := c.cc.Invoke(ctx, "/pb.Frames/Version", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // FramesServer is the server API for Frames service. type FramesServer interface { Read(*ReadRequest, Frames_ReadServer) error @@ -2104,6 +2195,7 @@ type FramesServer interface { Delete(context.Context, *DeleteRequest) (*DeleteResponse, error) Exec(context.Context, *ExecRequest) (*ExecResponse, error) History(*HistoryRequest, Frames_HistoryServer) error + Version(context.Context, *VersionRequest) (*VersionResponse, error) } func RegisterFramesServer(s *grpc.Server, srv FramesServer) { @@ -2232,6 +2324,24 @@ func (x *framesHistoryServer) Send(m *Frame) error { return x.ServerStream.SendMsg(m) } +func _Frames_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(VersionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FramesServer).Version(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pb.Frames/Version", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FramesServer).Version(ctx, req.(*VersionRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Frames_serviceDesc = grpc.ServiceDesc{ ServiceName: "pb.Frames", HandlerType: (*FramesServer)(nil), @@ -2248,6 +2358,10 @@ var _Frames_serviceDesc = grpc.ServiceDesc{ MethodName: "Exec", Handler: _Frames_Exec_Handler, }, + { + MethodName: "Version", + Handler: _Frames_Version_Handler, + }, }, Streams: []grpc.StreamDesc{ { @@ -2269,128 +2383,132 @@ var _Frames_serviceDesc = grpc.ServiceDesc{ Metadata: "frames.proto", } -func init() { proto.RegisterFile("frames.proto", fileDescriptor_frames_8eec434b81b14290) } - -var fileDescriptor_frames_8eec434b81b14290 = []byte{ - // 1916 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4f, 0x77, 0x1b, 0x49, - 0x11, 0xd7, 0xe8, 0xff, 0x94, 0x64, 0x45, 0xdb, 0x9b, 0x4d, 0x26, 0xda, 0x2c, 0x51, 0x26, 0x59, - 0xd6, 0x6f, 0x77, 0xe3, 0x80, 0xf7, 0x00, 0x6f, 0x0f, 0xf0, 0xe2, 0x58, 0x8e, 0x4d, 0x14, 0x9b, - 0x37, 0x36, 0xec, 0x51, 0xaf, 0xad, 0x69, 0x29, 0x8d, 0xe7, 0x8f, 0xd2, 0xdd, 0x8a, 0x2d, 0x0e, - 0x1c, 0xe1, 0x0c, 0xef, 0xf1, 0x05, 0xe0, 0x0b, 0xf0, 0x1d, 0x38, 0xf1, 0x5d, 0xb8, 0x70, 0xe2, - 0xca, 0xab, 0xea, 0x1e, 0x69, 0xec, 0x04, 0x0e, 0xfb, 0xc8, 0xad, 0xeb, 0x57, 0xd5, 0x3d, 0x55, - 0xbf, 0xae, 0xaa, 0x2e, 0x09, 0xba, 0x33, 0xc5, 0x53, 0xa1, 0x77, 0x16, 0x2a, 0x37, 0x39, 0xab, - 0x2e, 0xce, 0xc3, 0xdf, 0x57, 0xa1, 0xf9, 0x3c, 0x4f, 0x96, 0x69, 0xc6, 0x1e, 0x41, 0xfd, 0x42, - 0x66, 0x71, 0xe0, 0x0d, 0xbd, 0xed, 0xde, 0xee, 0xad, 0x9d, 0xc5, 0xf9, 0x8e, 0xd5, 0xec, 0xbc, - 0x94, 0x59, 0x1c, 0x91, 0x92, 0x31, 0xa8, 0x67, 0x3c, 0x15, 0x41, 0x75, 0xe8, 0x6d, 0xfb, 0x11, - 0xad, 0xd9, 0x03, 0x68, 0xc4, 0x66, 0xb5, 0x10, 0x41, 0x8d, 0x76, 0xfa, 0xb8, 0x73, 0xff, 0x6c, - 0xb5, 0x10, 0x91, 0xc5, 0x71, 0x93, 0x96, 0xbf, 0x15, 0x41, 0x7d, 0xe8, 0x6d, 0xd7, 0x22, 0x5a, - 0x23, 0x26, 0x33, 0xa3, 0x83, 0xc6, 0xb0, 0x86, 0x18, 0xae, 0xd9, 0x1d, 0x68, 0xce, 0x92, 0x9c, - 0x1b, 0x1d, 0x34, 0x87, 0xb5, 0x6d, 0x2f, 0x72, 0x12, 0x0b, 0xa0, 0xa5, 0x8d, 0x92, 0xd9, 0x5c, - 0x07, 0xad, 0x61, 0x6d, 0xdb, 0x8f, 0x0a, 0x91, 0xdd, 0x86, 0x86, 0x91, 0xa9, 0xd0, 0x41, 0x9b, - 0x8e, 0xb1, 0x02, 0xa2, 0xe7, 0x79, 0x9e, 0xe8, 0xc0, 0x1f, 0xd6, 0xb6, 0xdb, 0x91, 0x15, 0xc2, - 0xfb, 0x50, 0xc7, 0x40, 0x98, 0x0f, 0x8d, 0xd3, 0xf1, 0xd1, 0xf3, 0x51, 0xbf, 0x82, 0xcb, 0xf1, - 0xb3, 0xbd, 0xd1, 0xb8, 0xef, 0x85, 0xbf, 0x83, 0xc6, 0xaf, 0x79, 0xb2, 0x14, 0xec, 0x36, 0xd4, - 0xe5, 0x5b, 0x9e, 0x10, 0x0d, 0xb5, 0xc3, 0x4a, 0x44, 0x12, 0xa2, 0x33, 0x44, 0x31, 0x6e, 0x0f, - 0xd1, 0x99, 0x43, 0x35, 0xa2, 0x18, 0xb8, 0x8f, 0xa8, 0x76, 0xa8, 0x41, 0xb4, 0x5e, 0x9c, 0x60, - 0x1c, 0x7a, 0x8e, 0x68, 0x63, 0xe8, 0x6d, 0xb7, 0x11, 0x45, 0x69, 0xaf, 0x05, 0x8d, 0xb7, 0xf8, - 0xd9, 0xf0, 0xcf, 0x1e, 0x6c, 0x1d, 0x2f, 0x93, 0x84, 0x9c, 0xd0, 0xaf, 0xf8, 0x82, 0xed, 0x43, - 0x27, 0x5b, 0x26, 0x89, 0xbd, 0x03, 0x1d, 0x78, 0xc3, 0xda, 0x76, 0x67, 0x37, 0x44, 0x72, 0xaf, - 0xd9, 0x91, 0xe4, 0x8c, 0x46, 0x99, 0x51, 0xab, 0xa8, 0xbc, 0x6d, 0xf0, 0x33, 0xe8, 0xdf, 0x34, - 0x60, 0x7d, 0xa8, 0x5d, 0x88, 0x15, 0x45, 0xe8, 0x47, 0xb8, 0x44, 0xc6, 0xc8, 0x0d, 0x8a, 0xaf, - 0x1d, 0x59, 0xe1, 0xdb, 0xea, 0x4f, 0xbd, 0xf0, 0x4f, 0x55, 0x68, 0x1c, 0x60, 0xd6, 0xb0, 0xc7, - 0xd0, 0x9a, 0x5e, 0xf3, 0x05, 0x36, 0x29, 0x12, 0x15, 0x2a, 0xb4, 0x92, 0x59, 0x2c, 0xa7, 0x42, - 0x07, 0xd5, 0x77, 0xad, 0x9c, 0x8a, 0x3d, 0x81, 0x66, 0xc2, 0xcf, 0x45, 0xa2, 0x83, 0x1a, 0x19, - 0x7d, 0x82, 0x46, 0xf4, 0x99, 0x9d, 0x31, 0xe1, 0x36, 0x12, 0x67, 0x84, 0xee, 0x09, 0xa5, 0x72, - 0x45, 0x94, 0xfa, 0x91, 0x15, 0xd8, 0xae, 0x25, 0x68, 0x42, 0xce, 0xda, 0x4c, 0xea, 0xec, 0x7e, - 0xf4, 0x0e, 0x41, 0x11, 0x64, 0x6b, 0x71, 0xb0, 0x0f, 0x9d, 0xd2, 0x07, 0xde, 0xc3, 0xc4, 0x83, - 0x32, 0x13, 0x1d, 0x9b, 0xcc, 0xb4, 0xb7, 0x4c, 0xca, 0xbf, 0x3d, 0xe8, 0x9c, 0x4e, 0x5f, 0x8b, - 0x94, 0x1f, 0x48, 0x91, 0x6c, 0xaa, 0xc2, 0x2b, 0x55, 0x45, 0x1f, 0x6a, 0x71, 0x3e, 0x75, 0x85, - 0x82, 0x4b, 0xf6, 0x08, 0x5a, 0xb1, 0x98, 0xf1, 0x65, 0x62, 0x28, 0x61, 0xae, 0x1d, 0x5e, 0x68, - 0xf0, 0x28, 0xaa, 0x25, 0x1b, 0x29, 0xad, 0xd9, 0xcf, 0x01, 0x16, 0x2a, 0x5f, 0x08, 0x65, 0xe4, - 0x3a, 0xce, 0x07, 0xb8, 0xb7, 0xe4, 0xc3, 0xce, 0x2f, 0xd7, 0x16, 0x96, 0xbb, 0xd2, 0x96, 0xc1, - 0x21, 0xdc, 0xba, 0xa1, 0xfe, 0xbe, 0x91, 0x9f, 0x80, 0x6f, 0x3f, 0xfa, 0x52, 0xac, 0xd8, 0x43, - 0xe8, 0xea, 0xd7, 0x5c, 0xc5, 0x32, 0x9b, 0x4f, 0xec, 0x61, 0x58, 0x9c, 0x9d, 0x02, 0x7b, 0x49, - 0x87, 0x76, 0x74, 0xae, 0x4c, 0x61, 0x51, 0x25, 0x0b, 0x70, 0xd0, 0x4b, 0xb1, 0x0a, 0xff, 0xe1, - 0x41, 0xe7, 0x8c, 0x9f, 0x27, 0xc2, 0x1e, 0xbb, 0x8e, 0xdf, 0x2b, 0xc5, 0x7f, 0x1f, 0x7c, 0xa4, - 0x54, 0x2f, 0xf8, 0xb4, 0xe8, 0x3c, 0x1b, 0x60, 0x4d, 0x7e, 0xed, 0x5d, 0xf2, 0xeb, 0x1b, 0xf2, - 0x03, 0x68, 0xf1, 0x44, 0x72, 0xed, 0x08, 0xf4, 0xa3, 0x42, 0x64, 0x5f, 0x40, 0x73, 0x86, 0x0c, - 0xda, 0xae, 0xd3, 0xb1, 0x9d, 0xaf, 0xc4, 0x6c, 0xe4, 0xd4, 0xec, 0x81, 0xa5, 0xac, 0x45, 0xf4, - 0x6c, 0x6d, 0xac, 0x5e, 0x8a, 0x15, 0x31, 0x18, 0x76, 0x01, 0x7e, 0x91, 0xcb, 0xec, 0xd4, 0xa8, - 0xe5, 0xd4, 0x84, 0x7f, 0xf5, 0xa0, 0x75, 0x2a, 0xb4, 0x96, 0x79, 0x86, 0xfe, 0x2c, 0x55, 0x52, - 0xb0, 0xbd, 0x54, 0x09, 0xc6, 0x34, 0xcd, 0x33, 0xc3, 0x65, 0x26, 0x54, 0x11, 0xd3, 0x1a, 0xc0, - 0x98, 0x16, 0xdc, 0xbc, 0x2e, 0x62, 0xc2, 0x35, 0x62, 0x4b, 0x2d, 0x8a, 0x1a, 0xa0, 0x35, 0x1b, - 0x40, 0x7b, 0xc1, 0xb5, 0xbe, 0xcc, 0x55, 0x4c, 0x8d, 0xc5, 0x8f, 0xd6, 0x32, 0xf5, 0xc6, 0xfc, - 0x42, 0x64, 0x41, 0xd3, 0x16, 0x0d, 0x09, 0xac, 0x07, 0x55, 0x19, 0x53, 0x0c, 0x7e, 0x54, 0x95, - 0x71, 0xf8, 0x87, 0x16, 0x74, 0x22, 0xc1, 0xe3, 0x48, 0xbc, 0x59, 0x0a, 0x6d, 0xd8, 0xe7, 0xd0, - 0xd2, 0xd6, 0x69, 0xf2, 0xb6, 0xb3, 0xdb, 0xa1, 0x40, 0x2d, 0x14, 0x15, 0x3a, 0xa4, 0xf3, 0x9c, - 0x4f, 0x2f, 0x44, 0x16, 0x3b, 0xe7, 0x0b, 0x11, 0xe9, 0xd4, 0x44, 0x8b, 0x4b, 0x72, 0xa2, 0xb3, - 0x74, 0xc3, 0x91, 0x53, 0x63, 0x6a, 0xc4, 0xdc, 0xf0, 0xc9, 0x2c, 0x57, 0x29, 0x37, 0x2e, 0x2c, - 0x40, 0xe8, 0x80, 0x10, 0xf6, 0x19, 0x80, 0xca, 0x2f, 0x27, 0x09, 0x5f, 0xe5, 0x4b, 0x63, 0xfb, - 0x66, 0xe4, 0xab, 0xfc, 0x72, 0x4c, 0x00, 0xee, 0x4f, 0x97, 0x89, 0x91, 0x13, 0x99, 0xc5, 0xe2, - 0x8a, 0xa2, 0x6c, 0x47, 0x40, 0xd0, 0x11, 0x22, 0x48, 0xc0, 0x9b, 0xa5, 0x50, 0x2b, 0x17, 0xad, - 0x15, 0x88, 0x16, 0xf4, 0x26, 0x68, 0x3b, 0x5a, 0x50, 0xc0, 0x78, 0x8a, 0xe6, 0xe6, 0xdb, 0xf4, - 0x28, 0x1a, 0x1a, 0x3e, 0x4a, 0x32, 0x31, 0x42, 0x05, 0x40, 0x1b, 0x9c, 0xc4, 0xee, 0x41, 0x7b, - 0xae, 0xf2, 0xe5, 0x62, 0x72, 0xbe, 0x0a, 0x3a, 0x96, 0x02, 0x92, 0xf7, 0x56, 0x2c, 0x84, 0xfa, - 0x6f, 0x72, 0x99, 0x05, 0x5d, 0xca, 0xa7, 0x1e, 0x12, 0xb0, 0xc9, 0x8b, 0x88, 0x74, 0xe8, 0x46, - 0x22, 0x53, 0x69, 0x82, 0x2d, 0x7a, 0x14, 0xad, 0xc0, 0x1e, 0xc1, 0x56, 0x2a, 0xb4, 0xe6, 0x73, - 0x31, 0xb1, 0xda, 0x1e, 0x69, 0xbb, 0x0e, 0x1c, 0x93, 0xd1, 0x1d, 0x68, 0xa6, 0x5c, 0x5d, 0x08, - 0x15, 0xdc, 0xb2, 0x1e, 0x59, 0x09, 0x09, 0x51, 0x42, 0x0b, 0xe3, 0x08, 0xf9, 0xcc, 0x12, 0x42, - 0x90, 0x25, 0x64, 0x00, 0x6d, 0x2d, 0xe6, 0xa9, 0xc0, 0x77, 0xb7, 0x4f, 0x0f, 0xe6, 0x5a, 0x66, - 0x9f, 0x43, 0xcf, 0xe4, 0x86, 0x27, 0x93, 0xb5, 0xc5, 0x47, 0xf4, 0xe9, 0x2d, 0x42, 0x4f, 0x0b, - 0xb3, 0x47, 0xb0, 0x55, 0x2e, 0x79, 0x1d, 0x30, 0x62, 0xab, 0x5b, 0xaa, 0x79, 0xcd, 0x9e, 0xc2, - 0x6d, 0xac, 0x70, 0x34, 0x98, 0x28, 0x9e, 0xcd, 0xc5, 0x44, 0x1b, 0xae, 0x4c, 0xf0, 0x31, 0xb9, - 0xfb, 0x11, 0xea, 0xb0, 0x66, 0x50, 0x73, 0x8a, 0x0a, 0xf6, 0x15, 0xb0, 0x1b, 0x1b, 0x30, 0xb1, - 0x6e, 0x93, 0xf9, 0xad, 0xb2, 0xf9, 0x28, 0xa3, 0xbc, 0xb6, 0xc7, 0x7d, 0x62, 0x2f, 0x90, 0x04, - 0xac, 0x30, 0xdc, 0x73, 0xc7, 0x56, 0x98, 0xb0, 0xa3, 0x8a, 0x36, 0x62, 0x11, 0xdc, 0xb5, 0xf5, - 0x82, 0x6b, 0x36, 0x84, 0x0e, 0x9f, 0xcf, 0x95, 0x98, 0x73, 0x93, 0x2b, 0x1d, 0x04, 0xa4, 0x2a, - 0x43, 0xec, 0x09, 0xb0, 0x42, 0x94, 0x79, 0x36, 0xb9, 0x94, 0x59, 0x9c, 0x5f, 0x06, 0xf7, 0xad, - 0xe7, 0x25, 0xcd, 0x77, 0xa4, 0xa0, 0x8f, 0x08, 0x71, 0x11, 0xdc, 0x73, 0x1f, 0x11, 0xe2, 0x02, - 0x33, 0x83, 0xe8, 0x98, 0xc8, 0x38, 0x18, 0xd8, 0xcc, 0x20, 0xf9, 0x28, 0xb6, 0x37, 0xf0, 0x66, - 0x29, 0xb2, 0xa9, 0x08, 0x3e, 0x25, 0x7e, 0xd7, 0x72, 0xf8, 0xb7, 0x2a, 0x7c, 0x7c, 0x94, 0x49, - 0x23, 0x79, 0xf2, 0x9d, 0x92, 0x46, 0xfc, 0xdf, 0x2a, 0x72, 0x9d, 0xf1, 0xb5, 0x72, 0xc6, 0x7f, - 0x0d, 0x5d, 0x69, 0xbf, 0x36, 0xc1, 0x9a, 0xa3, 0xfa, 0x73, 0x5d, 0x9f, 0x1e, 0xe2, 0xa8, 0xe3, - 0xd4, 0xfb, 0xdc, 0x70, 0xf6, 0x03, 0x00, 0x71, 0xb5, 0x50, 0xce, 0x0f, 0xdb, 0x6a, 0x4a, 0x08, - 0xf2, 0x90, 0xe6, 0x4a, 0xb8, 0x2a, 0xa4, 0x35, 0xa6, 0xd4, 0x82, 0x2b, 0x23, 0x89, 0x48, 0x4a, - 0x16, 0x3b, 0xbd, 0x6d, 0xad, 0x51, 0xca, 0x16, 0xdb, 0x09, 0x63, 0x02, 0x5c, 0x51, 0x6e, 0x00, - 0xf6, 0x29, 0xf8, 0x9a, 0xbf, 0x15, 0x93, 0x34, 0x8f, 0x45, 0xe0, 0xdb, 0x16, 0x87, 0xc0, 0xab, - 0x3c, 0x16, 0x61, 0x06, 0xdd, 0x6b, 0x54, 0x7d, 0x03, 0x2d, 0x65, 0x97, 0x8e, 0xaa, 0xbb, 0x18, - 0xce, 0x7b, 0x48, 0x3d, 0xac, 0x44, 0x85, 0x25, 0x7b, 0x08, 0x0d, 0x1a, 0x8b, 0xcb, 0xef, 0x1e, - 0x31, 0x70, 0x58, 0x89, 0xac, 0x66, 0xaf, 0x69, 0x1f, 0xa5, 0xf0, 0xdb, 0xf5, 0xf7, 0xf4, 0x22, - 0xd7, 0x82, 0x7a, 0x03, 0x4d, 0xd4, 0x76, 0x5a, 0x8c, 0x9c, 0x84, 0x6c, 0xa8, 0xfc, 0x52, 0xd3, - 0x89, 0xb5, 0x88, 0xd6, 0xe1, 0x3f, 0xab, 0xb0, 0xf5, 0x5c, 0x09, 0xfe, 0xc1, 0x2f, 0x76, 0xd3, - 0x80, 0xeb, 0xff, 0xbb, 0x01, 0x3f, 0x01, 0x5f, 0xce, 0x26, 0xe2, 0x4a, 0x6a, 0x9a, 0xc3, 0x71, - 0x76, 0xef, 0xa3, 0xed, 0x08, 0xa7, 0xab, 0x93, 0x05, 0xd2, 0xaf, 0xa3, 0xb6, 0x9c, 0x8d, 0xc8, - 0x82, 0x82, 0xe2, 0x46, 0xb8, 0xe7, 0x84, 0xd6, 0x98, 0x16, 0x45, 0x4d, 0x08, 0xed, 0xfa, 0x6c, - 0x09, 0x61, 0x3f, 0x81, 0xbb, 0xe5, 0x6a, 0x9a, 0x2b, 0x9e, 0x2d, 0x13, 0xae, 0xa4, 0x59, 0xb9, - 0x9b, 0xbe, 0x53, 0x52, 0xbf, 0xd8, 0x68, 0x91, 0x59, 0xaa, 0x19, 0x4d, 0x77, 0x5e, 0x8b, 0x9c, - 0xc4, 0xbe, 0x80, 0x5b, 0x4a, 0x18, 0x91, 0xd1, 0x71, 0xaf, 0xf3, 0xa5, 0xd2, 0xd4, 0x96, 0x6b, - 0x51, 0x6f, 0x0d, 0x1f, 0x22, 0x1a, 0xf6, 0xa1, 0x57, 0xb0, 0xad, 0x17, 0x79, 0xa6, 0x45, 0xf8, - 0x2f, 0x0f, 0xb6, 0xf6, 0x45, 0x22, 0x3e, 0xf8, 0x05, 0x6c, 0x5e, 0x8c, 0xfa, 0xb5, 0x17, 0xe3, - 0x29, 0x80, 0x9c, 0x4d, 0x52, 0xa9, 0xb5, 0xcc, 0xe6, 0xff, 0x95, 0x70, 0x5f, 0xce, 0x5e, 0x59, - 0x93, 0x4d, 0xa7, 0x6b, 0xbe, 0xa7, 0xd3, 0xb5, 0x36, 0x9d, 0x2e, 0x80, 0x56, 0x2a, 0x8c, 0x92, - 0x53, 0xfb, 0x3b, 0xc8, 0x8f, 0x0a, 0x11, 0x59, 0x28, 0x42, 0x76, 0x2c, 0xfc, 0xb1, 0x0a, 0x9d, - 0xd1, 0x95, 0x98, 0x7e, 0x60, 0x0e, 0xe8, 0x3d, 0x4d, 0x53, 0x9e, 0xc5, 0x8e, 0x84, 0x42, 0x64, - 0x4f, 0xa0, 0xce, 0xd5, 0xbc, 0x18, 0x63, 0xef, 0x51, 0xfc, 0x1b, 0x7f, 0x76, 0x9e, 0xa9, 0xb9, - 0x1b, 0x60, 0xc9, 0xec, 0x46, 0xe3, 0x69, 0xde, 0x6c, 0x3c, 0x83, 0x3d, 0xf0, 0xd7, 0x5b, 0xbe, - 0xef, 0x50, 0xfb, 0x14, 0xba, 0xd6, 0x05, 0xcb, 0x11, 0x6e, 0xb2, 0x1d, 0xc1, 0xbb, 0xd9, 0x13, - 0x2d, 0x1e, 0xfe, 0xbd, 0x0a, 0xbd, 0x43, 0xa9, 0x4d, 0xae, 0x56, 0x1f, 0x98, 0xc7, 0xf7, 0x0d, - 0x7d, 0x77, 0xa0, 0xc9, 0xa7, 0x66, 0xd3, 0x87, 0x9d, 0xc4, 0x1e, 0x43, 0x2f, 0x95, 0x99, 0x7d, - 0x6b, 0x27, 0xf8, 0x4b, 0xd8, 0xd1, 0xd5, 0x4d, 0x71, 0xf6, 0xe0, 0xca, 0x9c, 0x49, 0xfa, 0x19, - 0xd7, 0x4b, 0xf9, 0x55, 0xd9, 0xaa, 0xe5, 0xac, 0xf8, 0xd5, 0xc6, 0xea, 0xda, 0x78, 0xda, 0xbe, - 0x39, 0x9e, 0x3e, 0x04, 0x3c, 0x73, 0x12, 0x2f, 0x15, 0x15, 0xae, 0xab, 0xd1, 0x4e, 0x2a, 0xb3, - 0x7d, 0x07, 0x91, 0x09, 0xbf, 0xda, 0x98, 0x80, 0x33, 0xe1, 0x57, 0x85, 0xc9, 0x97, 0x63, 0x68, - 0xd0, 0xdf, 0x04, 0xac, 0x03, 0xad, 0xa3, 0xe3, 0xb3, 0xd1, 0x8b, 0x51, 0x64, 0x7f, 0x93, 0x1f, - 0x8c, 0x4f, 0x9e, 0x9d, 0xf5, 0x3d, 0x06, 0xd0, 0x3c, 0x3d, 0x8b, 0x8e, 0x8e, 0x5f, 0xf4, 0xab, - 0xac, 0x0d, 0xf5, 0xb3, 0xa3, 0x57, 0xa3, 0x7e, 0x0d, 0xad, 0xf7, 0x4e, 0x4e, 0xc6, 0xa3, 0x67, - 0xc7, 0xfd, 0x3a, 0xc2, 0xc7, 0xbf, 0x1a, 0x8f, 0xfb, 0x8d, 0x2f, 0x1f, 0x43, 0xb7, 0x5c, 0x47, - 0xa8, 0x39, 0x78, 0x76, 0x34, 0xee, 0x57, 0xf0, 0x98, 0xa3, 0x17, 0xc7, 0x27, 0xd1, 0xa8, 0xef, - 0xed, 0xfe, 0xa5, 0x0a, 0xcd, 0x03, 0xdb, 0xa4, 0x7f, 0x08, 0x75, 0x1c, 0x7c, 0x19, 0xf5, 0xc7, - 0xd2, 0x08, 0x3c, 0xd8, 0xdc, 0x77, 0x58, 0xf9, 0x91, 0xc7, 0x9e, 0x42, 0x83, 0x9a, 0x3e, 0xa3, - 0x5a, 0x2d, 0xbf, 0x22, 0x83, 0x32, 0x42, 0x2f, 0x42, 0x58, 0xd9, 0xf6, 0xd8, 0x8f, 0xa1, 0x69, - 0x5b, 0x0f, 0xa3, 0x1f, 0xa3, 0xd7, 0x9a, 0xfe, 0x80, 0x95, 0x21, 0x57, 0x93, 0x15, 0xdc, 0x62, - 0xeb, 0xd4, 0x6e, 0xb9, 0xd6, 0xa6, 0xec, 0x96, 0x1b, 0x65, 0x5c, 0x61, 0x5f, 0x41, 0x1d, 0x93, - 0xd6, 0xba, 0x5f, 0xaa, 0x20, 0xeb, 0x54, 0x39, 0x9f, 0xc3, 0x0a, 0xfb, 0x1a, 0x5a, 0x2e, 0x5f, - 0x19, 0x9d, 0x76, 0x3d, 0x79, 0x6f, 0x44, 0x7c, 0xde, 0xa4, 0xff, 0x87, 0xbe, 0xf9, 0x4f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xfd, 0xb3, 0x70, 0x03, 0x2f, 0x12, 0x00, 0x00, +func init() { proto.RegisterFile("frames.proto", fileDescriptor_frames_e3d1b436579e21b2) } + +var fileDescriptor_frames_e3d1b436579e21b2 = []byte{ + // 1969 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcd, 0x72, 0x1b, 0xc7, + 0x11, 0xe6, 0xe2, 0x7f, 0x1b, 0x20, 0x08, 0x8f, 0x65, 0x79, 0x05, 0xcb, 0x11, 0xb5, 0x92, 0x63, + 0x96, 0x65, 0x51, 0x09, 0x9d, 0xaa, 0xa4, 0x7c, 0x48, 0x4a, 0x14, 0x41, 0x91, 0x11, 0x44, 0xa6, + 0x96, 0x8c, 0x7c, 0x44, 0x0d, 0xb1, 0x03, 0x68, 0xc2, 0xfd, 0x81, 0x66, 0x06, 0x22, 0x91, 0x43, + 0x8e, 0xc9, 0x39, 0xa9, 0xca, 0x13, 0xe4, 0x05, 0xf2, 0x0e, 0x39, 0xe5, 0x0d, 0xf2, 0x10, 0xb9, + 0xe4, 0x94, 0x6b, 0xaa, 0x7b, 0x66, 0x81, 0x05, 0xa5, 0xe4, 0xe0, 0x8a, 0x6e, 0xd3, 0x5f, 0xf7, + 0xcc, 0x74, 0x7f, 0xdb, 0xdd, 0xd3, 0x00, 0x74, 0x26, 0x8a, 0xa7, 0x42, 0xef, 0xce, 0x54, 0x6e, + 0x72, 0x56, 0x99, 0x5d, 0x84, 0xbf, 0xaf, 0x40, 0xe3, 0x59, 0x9e, 0xcc, 0xd3, 0x8c, 0x3d, 0x80, + 0xda, 0xa5, 0xcc, 0xe2, 0xc0, 0xdb, 0xf6, 0x76, 0xba, 0x7b, 0x5b, 0xbb, 0xb3, 0x8b, 0x5d, 0xab, + 0xd9, 0x7d, 0x21, 0xb3, 0x38, 0x22, 0x25, 0x63, 0x50, 0xcb, 0x78, 0x2a, 0x82, 0xca, 0xb6, 0xb7, + 0xe3, 0x47, 0xb4, 0x66, 0xf7, 0xa0, 0x1e, 0x9b, 0xc5, 0x4c, 0x04, 0x55, 0xda, 0xe9, 0xe3, 0xce, + 0x83, 0xf3, 0xc5, 0x4c, 0x44, 0x16, 0xc7, 0x4d, 0x5a, 0xfe, 0x56, 0x04, 0xb5, 0x6d, 0x6f, 0xa7, + 0x1a, 0xd1, 0x1a, 0x31, 0x99, 0x19, 0x1d, 0xd4, 0xb7, 0xab, 0x88, 0xe1, 0x9a, 0xdd, 0x86, 0xc6, + 0x24, 0xc9, 0xb9, 0xd1, 0x41, 0x63, 0xbb, 0xba, 0xe3, 0x45, 0x4e, 0x62, 0x01, 0x34, 0xb5, 0x51, + 0x32, 0x9b, 0xea, 0xa0, 0xb9, 0x5d, 0xdd, 0xf1, 0xa3, 0x42, 0x64, 0xb7, 0xa0, 0x6e, 0x64, 0x2a, + 0x74, 0xd0, 0xa2, 0x63, 0xac, 0x80, 0xe8, 0x45, 0x9e, 0x27, 0x3a, 0xf0, 0xb7, 0xab, 0x3b, 0xad, + 0xc8, 0x0a, 0xe1, 0x5d, 0xa8, 0x61, 0x20, 0xcc, 0x87, 0xfa, 0xd9, 0xf0, 0xf8, 0xd9, 0xa0, 0xb7, + 0x81, 0xcb, 0xe1, 0xd3, 0xfd, 0xc1, 0xb0, 0xe7, 0x85, 0xbf, 0x83, 0xfa, 0x2b, 0x9e, 0xcc, 0x05, + 0xbb, 0x05, 0x35, 0xf9, 0x96, 0x27, 0x44, 0x43, 0xf5, 0x68, 0x23, 0x22, 0x09, 0xd1, 0x09, 0xa2, + 0x18, 0xb7, 0x87, 0xe8, 0xc4, 0xa1, 0x1a, 0x51, 0x0c, 0xdc, 0x47, 0x54, 0x3b, 0xd4, 0x20, 0x5a, + 0x2b, 0x4e, 0x30, 0x0e, 0xbd, 0x40, 0xb4, 0xbe, 0xed, 0xed, 0xb4, 0x10, 0x45, 0x69, 0xbf, 0x09, + 0xf5, 0xb7, 0x78, 0x6d, 0xf8, 0x67, 0x0f, 0x36, 0x4f, 0xe6, 0x49, 0x42, 0x4e, 0xe8, 0x97, 0x7c, + 0xc6, 0x0e, 0xa0, 0x9d, 0xcd, 0x93, 0xc4, 0x7e, 0x03, 0x1d, 0x78, 0xdb, 0xd5, 0x9d, 0xf6, 0x5e, + 0x88, 0xe4, 0xae, 0xd9, 0x91, 0xe4, 0x8c, 0x06, 0x99, 0x51, 0x8b, 0xa8, 0xbc, 0xad, 0xff, 0x73, + 0xe8, 0xdd, 0x34, 0x60, 0x3d, 0xa8, 0x5e, 0x8a, 0x05, 0x45, 0xe8, 0x47, 0xb8, 0x44, 0xc6, 0xc8, + 0x0d, 0x8a, 0xaf, 0x15, 0x59, 0xe1, 0xdb, 0xca, 0xcf, 0xbc, 0xf0, 0x4f, 0x15, 0xa8, 0x1f, 0x62, + 0xd6, 0xb0, 0x87, 0xd0, 0x1c, 0xaf, 0xf9, 0x02, 0xab, 0x14, 0x89, 0x0a, 0x15, 0x5a, 0xc9, 0x2c, + 0x96, 0x63, 0xa1, 0x83, 0xca, 0xbb, 0x56, 0x4e, 0xc5, 0x1e, 0x43, 0x23, 0xe1, 0x17, 0x22, 0xd1, + 0x41, 0x95, 0x8c, 0x3e, 0x41, 0x23, 0xba, 0x66, 0x77, 0x48, 0xb8, 0x8d, 0xc4, 0x19, 0xa1, 0x7b, + 0x42, 0xa9, 0x5c, 0x11, 0xa5, 0x7e, 0x64, 0x05, 0xb6, 0x67, 0x09, 0x1a, 0x91, 0xb3, 0x36, 0x93, + 0xda, 0x7b, 0x1f, 0xbd, 0x43, 0x50, 0x04, 0xd9, 0x52, 0xec, 0x1f, 0x40, 0xbb, 0x74, 0xc1, 0x7b, + 0x98, 0xb8, 0x57, 0x66, 0xa2, 0x6d, 0x93, 0x99, 0xf6, 0x96, 0x49, 0xf9, 0xb7, 0x07, 0xed, 0xb3, + 0xf1, 0x6b, 0x91, 0xf2, 0x43, 0x29, 0x92, 0x55, 0x55, 0x78, 0xa5, 0xaa, 0xe8, 0x41, 0x35, 0xce, + 0xc7, 0xae, 0x50, 0x70, 0xc9, 0x1e, 0x40, 0x33, 0x16, 0x13, 0x3e, 0x4f, 0x0c, 0x25, 0xcc, 0xda, + 0xe1, 0x85, 0x06, 0x8f, 0xa2, 0x5a, 0xb2, 0x91, 0xd2, 0x9a, 0xfd, 0x02, 0x60, 0xa6, 0xf2, 0x99, + 0x50, 0x46, 0x2e, 0xe3, 0xbc, 0x87, 0x7b, 0x4b, 0x3e, 0xec, 0xfe, 0x6a, 0x69, 0x61, 0xb9, 0x2b, + 0x6d, 0xe9, 0x1f, 0xc1, 0xd6, 0x0d, 0xf5, 0xf7, 0x8d, 0xfc, 0x14, 0x7c, 0x7b, 0xe9, 0x0b, 0xb1, + 0x60, 0xf7, 0xa1, 0xa3, 0x5f, 0x73, 0x15, 0xcb, 0x6c, 0x3a, 0xb2, 0x87, 0x61, 0x71, 0xb6, 0x0b, + 0xec, 0x05, 0x1d, 0xda, 0xd6, 0xb9, 0x32, 0x85, 0x45, 0x85, 0x2c, 0xc0, 0x41, 0x2f, 0xc4, 0x22, + 0xfc, 0xbb, 0x07, 0xed, 0x73, 0x7e, 0x91, 0x08, 0x7b, 0xec, 0x32, 0x7e, 0xaf, 0x14, 0xff, 0x5d, + 0xf0, 0x91, 0x52, 0x3d, 0xe3, 0xe3, 0xa2, 0xf3, 0xac, 0x80, 0x25, 0xf9, 0xd5, 0x77, 0xc9, 0xaf, + 0xad, 0xc8, 0x0f, 0xa0, 0xc9, 0x13, 0xc9, 0xb5, 0x23, 0xd0, 0x8f, 0x0a, 0x91, 0x7d, 0x09, 0x8d, + 0x09, 0x32, 0x68, 0xbb, 0x4e, 0xdb, 0x76, 0xbe, 0x12, 0xb3, 0x91, 0x53, 0xb3, 0x7b, 0x96, 0xb2, + 0x26, 0xd1, 0xb3, 0xb9, 0xb2, 0x7a, 0x21, 0x16, 0xc4, 0x60, 0xd8, 0x01, 0xf8, 0x65, 0x2e, 0xb3, + 0x33, 0xa3, 0xe6, 0x63, 0x13, 0xfe, 0xc5, 0x83, 0xe6, 0x99, 0xd0, 0x5a, 0xe6, 0x19, 0xfa, 0x33, + 0x57, 0x49, 0xc1, 0xf6, 0x5c, 0x25, 0x18, 0xd3, 0x38, 0xcf, 0x0c, 0x97, 0x99, 0x50, 0x45, 0x4c, + 0x4b, 0x00, 0x63, 0x9a, 0x71, 0xf3, 0xba, 0x88, 0x09, 0xd7, 0x88, 0xcd, 0xb5, 0x28, 0x6a, 0x80, + 0xd6, 0xac, 0x0f, 0xad, 0x19, 0xd7, 0xfa, 0x2a, 0x57, 0x31, 0x35, 0x16, 0x3f, 0x5a, 0xca, 0xd4, + 0x1b, 0xf3, 0x4b, 0x91, 0x05, 0x0d, 0x5b, 0x34, 0x24, 0xb0, 0x2e, 0x54, 0x64, 0x4c, 0x31, 0xf8, + 0x51, 0x45, 0xc6, 0xe1, 0x1f, 0x9a, 0xd0, 0x8e, 0x04, 0x8f, 0x23, 0xf1, 0x66, 0x2e, 0xb4, 0x61, + 0x5f, 0x40, 0x53, 0x5b, 0xa7, 0xc9, 0xdb, 0xf6, 0x5e, 0x9b, 0x02, 0xb5, 0x50, 0x54, 0xe8, 0x90, + 0xce, 0x0b, 0x3e, 0xbe, 0x14, 0x59, 0xec, 0x9c, 0x2f, 0x44, 0xa4, 0x53, 0x13, 0x2d, 0x2e, 0xc9, + 0x89, 0xce, 0xd2, 0x17, 0x8e, 0x9c, 0x1a, 0x53, 0x23, 0xe6, 0x86, 0x8f, 0x26, 0xb9, 0x4a, 0xb9, + 0x71, 0x61, 0x01, 0x42, 0x87, 0x84, 0xb0, 0xcf, 0x01, 0x54, 0x7e, 0x35, 0x4a, 0xf8, 0x22, 0x9f, + 0x1b, 0xdb, 0x37, 0x23, 0x5f, 0xe5, 0x57, 0x43, 0x02, 0x70, 0x7f, 0x3a, 0x4f, 0x8c, 0x1c, 0xc9, + 0x2c, 0x16, 0xd7, 0x14, 0x65, 0x2b, 0x02, 0x82, 0x8e, 0x11, 0x41, 0x02, 0xde, 0xcc, 0x85, 0x5a, + 0xb8, 0x68, 0xad, 0x40, 0xb4, 0xa0, 0x37, 0x41, 0xcb, 0xd1, 0x82, 0x02, 0xc6, 0x53, 0x34, 0x37, + 0xdf, 0xa6, 0x47, 0xd1, 0xd0, 0xf0, 0x51, 0x92, 0x89, 0x11, 0x2a, 0x00, 0xda, 0xe0, 0x24, 0x76, + 0x07, 0x5a, 0x53, 0x95, 0xcf, 0x67, 0xa3, 0x8b, 0x45, 0xd0, 0xb6, 0x14, 0x90, 0xbc, 0xbf, 0x60, + 0x21, 0xd4, 0x7e, 0x93, 0xcb, 0x2c, 0xe8, 0x50, 0x3e, 0x75, 0x91, 0x80, 0x55, 0x5e, 0x44, 0xa4, + 0x43, 0x37, 0x12, 0x99, 0x4a, 0x13, 0x6c, 0xd2, 0xa3, 0x68, 0x05, 0xf6, 0x00, 0x36, 0x53, 0xa1, + 0x35, 0x9f, 0x8a, 0x91, 0xd5, 0x76, 0x49, 0xdb, 0x71, 0xe0, 0x90, 0x8c, 0x6e, 0x43, 0x23, 0xe5, + 0xea, 0x52, 0xa8, 0x60, 0xcb, 0x7a, 0x64, 0x25, 0x24, 0x44, 0x09, 0x2d, 0x8c, 0x23, 0xe4, 0x73, + 0x4b, 0x08, 0x41, 0x96, 0x90, 0x3e, 0xb4, 0xb4, 0x98, 0xa6, 0x02, 0xdf, 0xdd, 0x1e, 0x3d, 0x98, + 0x4b, 0x99, 0x7d, 0x01, 0x5d, 0x93, 0x1b, 0x9e, 0x8c, 0x96, 0x16, 0x1f, 0xd1, 0xd5, 0x9b, 0x84, + 0x9e, 0x15, 0x66, 0x0f, 0x60, 0xb3, 0x5c, 0xf2, 0x3a, 0x60, 0xc4, 0x56, 0xa7, 0x54, 0xf3, 0x9a, + 0x3d, 0x81, 0x5b, 0x58, 0xe1, 0x68, 0x30, 0x52, 0x3c, 0x9b, 0x8a, 0x91, 0x36, 0x5c, 0x99, 0xe0, + 0x63, 0x72, 0xf7, 0x23, 0xd4, 0x61, 0xcd, 0xa0, 0xe6, 0x0c, 0x15, 0xec, 0x11, 0xb0, 0x1b, 0x1b, + 0x30, 0xb1, 0x6e, 0x91, 0xf9, 0x56, 0xd9, 0x7c, 0x90, 0x51, 0x5e, 0xdb, 0xe3, 0x3e, 0xb1, 0x1f, + 0x90, 0x04, 0xac, 0x30, 0xdc, 0x73, 0xdb, 0x56, 0x98, 0xb0, 0xa3, 0x8a, 0x36, 0x62, 0x16, 0x7c, + 0x6a, 0xeb, 0x05, 0xd7, 0x6c, 0x1b, 0xda, 0x7c, 0x3a, 0x55, 0x62, 0xca, 0x4d, 0xae, 0x74, 0x10, + 0x90, 0xaa, 0x0c, 0xb1, 0xc7, 0xc0, 0x0a, 0x51, 0xe6, 0xd9, 0xe8, 0x4a, 0x66, 0x71, 0x7e, 0x15, + 0xdc, 0xb5, 0x9e, 0x97, 0x34, 0xdf, 0x91, 0x82, 0x2e, 0x11, 0xe2, 0x32, 0xb8, 0xe3, 0x2e, 0x11, + 0xe2, 0x12, 0x33, 0x83, 0xe8, 0x18, 0xc9, 0x38, 0xe8, 0xdb, 0xcc, 0x20, 0xf9, 0x38, 0xb6, 0x5f, + 0xe0, 0xcd, 0x5c, 0x64, 0x63, 0x11, 0x7c, 0x46, 0xfc, 0x2e, 0xe5, 0xf0, 0xaf, 0x15, 0xf8, 0xf8, + 0x38, 0x93, 0x46, 0xf2, 0xe4, 0x3b, 0x25, 0x8d, 0xf8, 0xbf, 0x55, 0xe4, 0x32, 0xe3, 0xab, 0xe5, + 0x8c, 0xff, 0x1a, 0x3a, 0xd2, 0xde, 0x36, 0xc2, 0x9a, 0xa3, 0xfa, 0x73, 0x5d, 0x9f, 0x1e, 0xe2, + 0xa8, 0xed, 0xd4, 0x07, 0xdc, 0x70, 0xf6, 0x03, 0x00, 0x71, 0x3d, 0x53, 0xce, 0x0f, 0xdb, 0x6a, + 0x4a, 0x08, 0xf2, 0x90, 0xe6, 0x4a, 0xb8, 0x2a, 0xa4, 0x35, 0xa6, 0xd4, 0x8c, 0x2b, 0x23, 0x89, + 0x48, 0x4a, 0x16, 0x3b, 0xbd, 0x6d, 0x2e, 0x51, 0xca, 0x16, 0xdb, 0x09, 0x63, 0x02, 0x5c, 0x51, + 0xae, 0x00, 0xf6, 0x19, 0xf8, 0x9a, 0xbf, 0x15, 0xa3, 0x34, 0x8f, 0x45, 0xe0, 0xdb, 0x16, 0x87, + 0xc0, 0xcb, 0x3c, 0x16, 0x61, 0x06, 0x9d, 0x35, 0xaa, 0xbe, 0x81, 0xa6, 0xb2, 0x4b, 0x47, 0xd5, + 0xa7, 0x18, 0xce, 0x7b, 0x48, 0x3d, 0xda, 0x88, 0x0a, 0x4b, 0x76, 0x1f, 0xea, 0x34, 0x16, 0x97, + 0xdf, 0x3d, 0x62, 0xe0, 0x68, 0x23, 0xb2, 0x9a, 0xfd, 0x86, 0x7d, 0x94, 0xc2, 0x6f, 0x97, 0xf7, + 0xe9, 0x59, 0xae, 0x05, 0xf5, 0x06, 0x9a, 0xa8, 0xed, 0xb4, 0x18, 0x39, 0x09, 0xd9, 0x50, 0xf9, + 0x95, 0xa6, 0x13, 0xab, 0x11, 0xad, 0xc3, 0x7f, 0x56, 0x60, 0xf3, 0x99, 0x12, 0xfc, 0x83, 0x7f, + 0xd8, 0x55, 0x03, 0xae, 0xfd, 0xef, 0x06, 0xfc, 0x18, 0x7c, 0x39, 0x19, 0x89, 0x6b, 0xa9, 0x69, + 0x0e, 0xc7, 0xd9, 0xbd, 0x87, 0xb6, 0x03, 0x9c, 0xae, 0x4e, 0x67, 0x48, 0xbf, 0x8e, 0x5a, 0x72, + 0x32, 0x20, 0x0b, 0x0a, 0x8a, 0x1b, 0xe1, 0x9e, 0x13, 0x5a, 0x63, 0x5a, 0x14, 0x35, 0x21, 0xb4, + 0xeb, 0xb3, 0x25, 0x84, 0xfd, 0x14, 0x3e, 0x2d, 0x57, 0xd3, 0x54, 0xf1, 0x6c, 0x9e, 0x70, 0x25, + 0xcd, 0xc2, 0x7d, 0xe9, 0xdb, 0x25, 0xf5, 0xf3, 0x95, 0x16, 0x99, 0xa5, 0x9a, 0xd1, 0xf4, 0xcd, + 0xab, 0x91, 0x93, 0xd8, 0x97, 0xb0, 0xa5, 0x84, 0x11, 0x19, 0x1d, 0xf7, 0x3a, 0x9f, 0x2b, 0x4d, + 0x6d, 0xb9, 0x1a, 0x75, 0x97, 0xf0, 0x11, 0xa2, 0x61, 0x0f, 0xba, 0x05, 0xdb, 0x7a, 0x96, 0x67, + 0x5a, 0x84, 0xff, 0xf2, 0x60, 0xf3, 0x40, 0x24, 0xe2, 0x83, 0x7f, 0x80, 0xd5, 0x8b, 0x51, 0x5b, + 0x7b, 0x31, 0x9e, 0x00, 0xc8, 0xc9, 0x28, 0x95, 0x5a, 0xcb, 0x6c, 0xfa, 0x5f, 0x09, 0xf7, 0xe5, + 0xe4, 0xa5, 0x35, 0x59, 0x75, 0xba, 0xc6, 0x7b, 0x3a, 0x5d, 0x73, 0xd5, 0xe9, 0x02, 0x68, 0xa6, + 0xc2, 0x28, 0x39, 0xb6, 0xbf, 0x83, 0xfc, 0xa8, 0x10, 0x91, 0x85, 0x22, 0x64, 0xc7, 0x42, 0x0f, + 0xba, 0xaf, 0x84, 0xa2, 0x00, 0x2d, 0x0b, 0xe1, 0x33, 0xe8, 0x0c, 0xae, 0xc5, 0xb8, 0xb0, 0xc0, + 0x39, 0xd0, 0xd6, 0x83, 0x77, 0xb3, 0x23, 0x58, 0xfc, 0xbd, 0xd9, 0xfd, 0xc7, 0x0a, 0xb4, 0xed, + 0x29, 0x1f, 0x94, 0x5a, 0x7a, 0xa6, 0xd3, 0x94, 0x67, 0xb1, 0xe3, 0xb6, 0x10, 0xd9, 0x63, 0xa8, + 0x71, 0x35, 0x2d, 0xa6, 0xe3, 0x3b, 0x44, 0xeb, 0xca, 0x9f, 0xdd, 0xa7, 0x6a, 0xea, 0xe6, 0x62, + 0x32, 0xbb, 0xd1, 0xcf, 0x1a, 0x37, 0xfb, 0x59, 0x7f, 0x1f, 0xfc, 0xe5, 0x96, 0xef, 0x3b, 0x2b, + 0x3f, 0x82, 0xad, 0x25, 0xd5, 0x8e, 0xdb, 0x00, 0x9a, 0x6f, 0x2d, 0xe4, 0x4e, 0x2b, 0xc4, 0xf0, + 0x6f, 0x15, 0xe8, 0x1e, 0x49, 0x6d, 0x72, 0xb5, 0xf8, 0xc0, 0x1c, 0xbe, 0x6f, 0x8e, 0xbc, 0x0d, + 0x0d, 0x3e, 0x36, 0xab, 0xd6, 0xee, 0x24, 0xf6, 0x10, 0xba, 0xa9, 0xcc, 0xec, 0xf3, 0x3d, 0xc2, + 0x1f, 0xd7, 0x8e, 0xaa, 0x4e, 0x8a, 0xe3, 0x0c, 0x57, 0xe6, 0x5c, 0xd2, 0x2f, 0xc3, 0x6e, 0xca, + 0xaf, 0xcb, 0x56, 0x4d, 0x67, 0xc5, 0xaf, 0x57, 0x56, 0x6b, 0x13, 0x6f, 0xeb, 0xe6, 0xc4, 0x7b, + 0x1f, 0xf0, 0xcc, 0x51, 0x3c, 0x57, 0xd4, 0x0b, 0x5c, 0xd9, 0xb7, 0x53, 0x99, 0x1d, 0x38, 0x88, + 0x4c, 0xf8, 0xf5, 0xca, 0x04, 0x9c, 0x09, 0xbf, 0x2e, 0x4c, 0xbe, 0x7a, 0x05, 0x75, 0xfa, 0xe7, + 0x81, 0xb5, 0xa0, 0x76, 0x72, 0x7a, 0x82, 0xbf, 0xf1, 0xdb, 0xd0, 0x3c, 0x3e, 0x39, 0x1f, 0x3c, + 0x1f, 0x44, 0x3d, 0x0f, 0x7f, 0xf0, 0x1f, 0x0e, 0x4f, 0x9f, 0x9e, 0xf7, 0x2a, 0x0c, 0xa0, 0x71, + 0x76, 0x1e, 0x1d, 0x9f, 0x3c, 0xef, 0x55, 0xd1, 0xfa, 0xfc, 0xf8, 0xe5, 0xa0, 0x57, 0x43, 0xeb, + 0xfd, 0xd3, 0xd3, 0xe1, 0xe0, 0xe9, 0x49, 0xaf, 0x4e, 0x87, 0xfc, 0x7a, 0x38, 0xec, 0x35, 0xbe, + 0x7a, 0x08, 0x9d, 0x72, 0x91, 0xa2, 0xe6, 0xf0, 0xe9, 0xf1, 0xb0, 0xb7, 0x81, 0xc7, 0x1c, 0x3f, + 0x3f, 0x39, 0x8d, 0x06, 0x3d, 0x6f, 0xef, 0x1f, 0x15, 0x68, 0x1c, 0xda, 0x17, 0xe0, 0x87, 0x50, + 0xc3, 0xa9, 0x9a, 0x51, 0xf3, 0x2d, 0xcd, 0xd7, 0xfd, 0x55, 0x39, 0x85, 0x1b, 0x3f, 0xf2, 0xd8, + 0x13, 0xa8, 0xd3, 0x8b, 0xc2, 0xa8, 0x11, 0x94, 0x9f, 0xa8, 0x7e, 0x19, 0xa1, 0xe7, 0x26, 0xdc, + 0xd8, 0xf1, 0xd8, 0x8f, 0xa1, 0x61, 0xfb, 0x1a, 0xa3, 0x5f, 0xba, 0x6b, 0x2f, 0x4a, 0x9f, 0x95, + 0x21, 0x57, 0xf0, 0x1b, 0xb8, 0xc5, 0x36, 0x01, 0xbb, 0x65, 0xad, 0x07, 0xda, 0x2d, 0x37, 0x7a, + 0xc4, 0x06, 0x7b, 0x04, 0x35, 0xac, 0x1e, 0xeb, 0x7e, 0xa9, 0x8e, 0xac, 0x53, 0xe5, 0x76, 0x11, + 0x6e, 0xb0, 0xaf, 0xa1, 0xe9, 0x32, 0x97, 0xd1, 0x69, 0xeb, 0x69, 0x7c, 0x33, 0xe2, 0x9f, 0x40, + 0xd3, 0x55, 0x85, 0xb5, 0x5e, 0xef, 0x46, 0xfd, 0x8f, 0xd7, 0xb0, 0xe2, 0x8e, 0x8b, 0x06, 0xfd, + 0x65, 0xf5, 0xcd, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x12, 0xa6, 0xdd, 0xce, 0xc2, 0x12, 0x00, + 0x00, } diff --git a/vendor/github.com/v3io/frames/rowiter.go b/vendor/github.com/v3io/frames/rowiter.go index 823b5f5dbd0..7604caa425c 100644 --- a/vendor/github.com/v3io/frames/rowiter.go +++ b/vendor/github.com/v3io/frames/rowiter.go @@ -82,7 +82,11 @@ func (it *rowIterator) init() { for i, col := range it.frame.Indices() { name := col.Name() if name == "" { - name = fmt.Sprintf("index-%d", i) + if i == 0 { + name = "idx" + } else { + name = fmt.Sprintf("idx-%d", i) + } noNames[it.numCols+i] = name } diff --git a/vendor/github.com/v3io/frames/types.go b/vendor/github.com/v3io/frames/types.go index 35f7f1f06df..5bddbff001a 100644 --- a/vendor/github.com/v3io/frames/types.go +++ b/vendor/github.com/v3io/frames/types.go @@ -343,6 +343,12 @@ const ( FailOnError = pb.ErrorOptions_FAIL ) +type VersionRequest struct { + Proto *pb.VersionRequest + Password SecretString + Token SecretString +} + // ExecRequest is execution request type ExecRequest struct { Proto *pb.ExecRequest diff --git a/vendor/github.com/v3io/v3io-go/pkg/dataplane/container.go b/vendor/github.com/v3io/v3io-go/pkg/dataplane/container.go index 1b8315efb9e..214ca02de4b 100644 --- a/vendor/github.com/v3io/v3io-go/pkg/dataplane/container.go +++ b/vendor/github.com/v3io/v3io-go/pkg/dataplane/container.go @@ -61,6 +61,9 @@ type Container interface { // PutObjectSync PutObjectSync(*PutObjectInput) error + // UpdateObjectSync + UpdateObjectSync(*UpdateObjectInput) error + // DeleteObject DeleteObject(*DeleteObjectInput, interface{}, chan *Response) (*Request, error) @@ -135,9 +138,25 @@ type Container interface { // PutRecordsSync PutRecordsSync(*PutRecordsInput) (*Response, error) + // PutChunk + PutChunk(*PutChunkInput, interface{}, chan *Response) (*Request, error) + + // PutChunkSync + PutChunkSync(input *PutChunkInput) error + // GetRecords GetRecords(*GetRecordsInput, interface{}, chan *Response) (*Request, error) // GetRecordsSync GetRecordsSync(*GetRecordsInput) (*Response, error) + + // + // OOS + // + + // PutOOSObject + PutOOSObject(*PutOOSObjectInput, interface{}, chan *Response) (*Request, error) + + // PutOOSObjectSync + PutOOSObjectSync(*PutOOSObjectInput) error } diff --git a/vendor/github.com/v3io/v3io-go/pkg/dataplane/http/container.go b/vendor/github.com/v3io/v3io-go/pkg/dataplane/http/container.go index da642cead8f..ff36b587ac5 100644 --- a/vendor/github.com/v3io/v3io-go/pkg/dataplane/http/container.go +++ b/vendor/github.com/v3io/v3io-go/pkg/dataplane/http/container.go @@ -128,6 +128,12 @@ func (c *container) PutObjectSync(putObjectInput *v3io.PutObjectInput) error { return c.session.context.PutObjectSync(putObjectInput) } +// UpdateObjectSync +func (c *container) UpdateObjectSync(updateObjectInput *v3io.UpdateObjectInput) error { + c.populateInputFields(&updateObjectInput.DataPlaneInput) + return c.session.context.UpdateObjectSync(updateObjectInput) +} + // DeleteObject func (c *container) DeleteObject(deleteObjectInput *v3io.DeleteObjectInput, context interface{}, @@ -252,6 +258,18 @@ func (c *container) PutRecordsSync(putRecordsInput *v3io.PutRecordsInput) (*v3io return c.session.context.PutRecordsSync(putRecordsInput) } +// PutChunk +func (c *container) PutChunk(putChunkInput *v3io.PutChunkInput, context interface{}, responseChan chan *v3io.Response) (*v3io.Request, error) { + c.populateInputFields(&putChunkInput.DataPlaneInput) + return c.session.context.PutChunk(putChunkInput, context, responseChan) +} + +// PutChunkSync +func (c *container) PutChunkSync(putChunkInput *v3io.PutChunkInput) error { + c.populateInputFields(&putChunkInput.DataPlaneInput) + return c.session.context.PutChunkSync(putChunkInput) +} + // GetRecords func (c *container) GetRecords(getRecordsInput *v3io.GetRecordsInput, context interface{}, responseChan chan *v3io.Response) (*v3io.Request, error) { c.populateInputFields(&getRecordsInput.DataPlaneInput) @@ -263,3 +281,17 @@ func (c *container) GetRecordsSync(getRecordsInput *v3io.GetRecordsInput) (*v3io c.populateInputFields(&getRecordsInput.DataPlaneInput) return c.session.context.GetRecordsSync(getRecordsInput) } + +// PutOOSObject +func (c *container) PutOOSObject(putOOSObjectInput *v3io.PutOOSObjectInput, + context interface{}, + responseChan chan *v3io.Response) (*v3io.Request, error) { + c.populateInputFields(&putOOSObjectInput.DataPlaneInput) + return c.session.context.PutOOSObject(putOOSObjectInput, context, responseChan) +} + +// PutOOSObjectSync +func (c *container) PutOOSObjectSync(putOOSObjectInput *v3io.PutOOSObjectInput) error { + c.populateInputFields(&putOOSObjectInput.DataPlaneInput) + return c.session.context.PutOOSObjectSync(putOOSObjectInput) +} diff --git a/vendor/github.com/v3io/v3io-go/pkg/dataplane/http/context.go b/vendor/github.com/v3io/v3io-go/pkg/dataplane/http/context.go index 38bc8ff9de4..d3a04100bd6 100644 --- a/vendor/github.com/v3io/v3io-go/pkg/dataplane/http/context.go +++ b/vendor/github.com/v3io/v3io-go/pkg/dataplane/http/context.go @@ -312,6 +312,16 @@ func (c *context) GetItemsSync(getItemsInput *v3io.GetItemsInput) (*v3io.Respons body["SortKeyRangeEnd"] = getItemsInput.SortKeyRangeEnd } + if getItemsInput.AllowObjectScatter != "" { + body["AllowObjectScatter"] = getItemsInput.AllowObjectScatter + } + if getItemsInput.ReturnData != "" { + body["ReturnData"] = getItemsInput.ReturnData + } + if getItemsInput.DataMaxSize != 0 { + body["DataMaxSize"] = getItemsInput.DataMaxSize + } + marshalledBody, err := json.Marshal(body) if err != nil { return nil, err @@ -519,6 +529,14 @@ func (c *context) GetObjectSync(getObjectInput *v3io.GetObjectInput) (*v3io.Resp headers["Range"] = fmt.Sprintf("bytes=%v-%v", getObjectInput.Offset, getObjectInput.Offset+getObjectInput.NumBytes-1) } + if getObjectInput.CtimeSec > 0 { + if headers == nil { + headers = make(map[string]string) + } + headers["ctime-sec"] = fmt.Sprintf("%d", getObjectInput.CtimeSec) + headers["ctime-nsec"] = fmt.Sprintf("%d", getObjectInput.CtimeNsec) + } + return c.sendRequest(&getObjectInput.DataPlaneInput, http.MethodGet, getObjectInput.Path, @@ -555,6 +573,28 @@ func (c *context) PutObjectSync(putObjectInput *v3io.PutObjectInput) error { return err } +// UpdateObjectSync +func (c *context) UpdateObjectSync(updateObjectInput *v3io.UpdateObjectInput) error { + headers := map[string]string{ + "X-v3io-function": "DirSetAttr", + } + + marshaledDirAttributes, err := json.Marshal(updateObjectInput.DirAttributes) + if err != nil { + return err + } + + _, err = c.sendRequest(&updateObjectInput.DataPlaneInput, + http.MethodPut, + updateObjectInput.Path, + "", + headers, + marshaledDirAttributes, + true) + + return err +} + // DeleteObject func (c *context) DeleteObject(deleteObjectInput *v3io.DeleteObjectInput, context interface{}, @@ -815,6 +855,32 @@ func (c *context) PutRecordsSync(putRecordsInput *v3io.PutRecordsInput) (*v3io.R return response, nil } +// PutChunk +func (c *context) PutChunk(putChunkInput *v3io.PutChunkInput, + context interface{}, + responseChan chan *v3io.Response) (*v3io.Request, error) { + return c.sendRequestToWorker(putChunkInput, context, responseChan) +} + +// PutChunkSync +func (c *context) PutChunkSync(putChunkInput *v3io.PutChunkInput) error { + + buffer, err := json.Marshal(putChunkInput) + if err != nil { + return err + } + + _, err = c.sendRequest(&putChunkInput.DataPlaneInput, + http.MethodPost, + putChunkInput.Path, + "", + putChunkHeaders, + buffer, + true) + + return err +} + // GetRecords func (c *context) GetRecords(getRecordsInput *v3io.GetRecordsInput, context interface{}, @@ -1006,12 +1072,21 @@ func (c *context) sendRequest(dataPlaneInput *v3io.DataPlaneInput, // "body-length", len(body)) if c.connSemaphore != nil { - c.connSemaphore.Acquire(goctx.TODO(), 1) + err = c.connSemaphore.Acquire(goctx.TODO(), 1) + if err != nil { + goto cleanup + } } - if dataPlaneInput.Timeout <= 0 { - err = c.httpClient.Do(request, response.HTTPResponse) - } else { - err = c.httpClient.DoTimeout(request, response.HTTPResponse, dataPlaneInput.Timeout) + // Retry on ErrConnectionClosed due to https://github.com/valyala/fasthttp/issues/189#issuecomment-254538245 + for i := 0; i < 8; i++ { + if dataPlaneInput.Timeout <= 0 { + err = c.httpClient.Do(request, response.HTTPResponse) + } else { + err = c.httpClient.DoTimeout(request, response.HTTPResponse, dataPlaneInput.Timeout) + } + if err != fasthttp.ErrConnectionClosed { + break + } } if c.connSemaphore != nil { c.connSemaphore.Release(1) @@ -1113,8 +1188,7 @@ func (c *context) encodeTypedAttributes(attributes map[string]interface{}) (map[ case bool: typedAttributes[attributeName]["BOOL"] = value case time.Time: - nanos := value.UnixNano() - typedAttributes[attributeName]["TS"] = fmt.Sprintf("%v:%v", nanos/1000000000, nanos%1000000000) + typedAttributes[attributeName]["TS"] = fmt.Sprintf("%v:%v", value.Unix(), value.Nanosecond()) } } @@ -1266,6 +1340,8 @@ func (c *context) workerEntry(workerIndex int) { response, err = c.GetRecordsSync(typedInput) case *v3io.PutRecordsInput: response, err = c.PutRecordsSync(typedInput) + case *v3io.PutChunkInput: + err = c.PutChunkSync(typedInput) case *v3io.SeekShardInput: response, err = c.SeekShardSync(typedInput) case *v3io.GetContainersInput: @@ -1377,6 +1453,7 @@ func (c *context) getItemsParseJSONResponse(response *v3io.Response, getItemsInp Items []map[string]map[string]interface{} NextMarker string LastItemIncluded string + Scattered string }{} // unmarshal the body into an ad hoc structure @@ -1385,8 +1462,11 @@ func (c *context) getItemsParseJSONResponse(response *v3io.Response, getItemsInp return nil, err } + lastItemIncluded, _ := strconv.ParseBool(getItemsResponse.LastItemIncluded) + scattered, _ := strconv.ParseBool(getItemsResponse.Scattered) + //validate getItems response to avoid infinite loop - if getItemsResponse.LastItemIncluded != "TRUE" && (getItemsResponse.NextMarker == "" || getItemsResponse.NextMarker == getItemsInput.Marker) { + if !lastItemIncluded && (getItemsResponse.NextMarker == "" || getItemsResponse.NextMarker == getItemsInput.Marker) { errMsg := fmt.Sprintf("Invalid getItems response: lastItemIncluded=false and nextMarker='%s', "+ "startMarker='%s', probably due to object size bigger than 2M. Query is: %+v", getItemsResponse.NextMarker, getItemsInput.Marker, getItemsInput) c.logger.Warn(errMsg) @@ -1394,7 +1474,8 @@ func (c *context) getItemsParseJSONResponse(response *v3io.Response, getItemsInp getItemsOutput := v3io.GetItemsOutput{ NextMarker: getItemsResponse.NextMarker, - Last: getItemsResponse.LastItemIncluded == "TRUE", + Last: lastItemIncluded, + Scattered: scattered, } // iterate through the items and decode them @@ -1418,9 +1499,11 @@ func (c *context) getItemsParseCAPNPResponse(response *v3io.Response, withWildca return nil, errors.Errorf("getItemsCapnp: Got only %v capnp sections. Expecting at least 2", len(capnpSections)) } cookie := string(response.HeaderPeek("X-v3io-cookie")) + scattered := string(response.HeaderPeek("X-v3io-scattered")) getItemsOutput := v3io.GetItemsOutput{ NextMarker: cookie, Last: len(cookie) == 0, + Scattered: scattered == "TRUE", } if len(capnpSections) < 2 { return nil, errors.Errorf("getItemsCapnp: Got only %v capnp sections. Expecting at least 2", len(capnpSections)) @@ -1551,3 +1634,51 @@ func trimAndParseInt(str string) (int, error) { trimmed := strings.TrimSpace(str) return strconv.Atoi(trimmed) } + +// PutOOSObject +func (c *context) PutOOSObject(putOOSObjectInput *v3io.PutOOSObjectInput, + context interface{}, + responseChan chan *v3io.Response) (*v3io.Request, error) { + return c.sendRequestToWorker(putOOSObjectInput, context, responseChan) +} + +// PutOOSObjectSync +func (c *context) PutOOSObjectSync(putOOSObjectInput *v3io.PutOOSObjectInput) error { + + var iovecSizes strings.Builder + + // concatenate header + data lengths with ',' separator + totalSize := len(putOOSObjectInput.Header) + + // heuristics: 6 chars per number + char for delimiter) * (len(Data) + 1) - 1 + iovecSizes.Grow(7*(len(putOOSObjectInput.Data)+1) - 1) + iovecSizes.WriteString(strconv.Itoa(totalSize)) + + for _, ioVec := range putOOSObjectInput.Data { + totalSize += len(ioVec) + iovecSizes.WriteString(",") + iovecSizes.WriteString(strconv.Itoa(len(ioVec))) + } + // concatenate the header + data to buffer + buffer := bytes.NewBuffer(make([]byte, 0, totalSize)) + buffer.Write(putOOSObjectInput.Header) + + for _, ioVec := range putOOSObjectInput.Data { + buffer.Write(ioVec) + } + + headers := putOOSObjectHeaders + headers["slice"] = strconv.Itoa(putOOSObjectInput.SliceID) + headers["io-vec-num"] = strconv.Itoa(len(putOOSObjectInput.Data) + 1) + headers["io-vec-sizes"] = iovecSizes.String() + + _, err := c.sendRequest(&putOOSObjectInput.DataPlaneInput, + http.MethodPut, + putOOSObjectInput.Path, + "", + headers, + buffer.Bytes(), + true) + + return err +} diff --git a/vendor/github.com/v3io/v3io-go/pkg/dataplane/http/headers.go b/vendor/github.com/v3io/v3io-go/pkg/dataplane/http/headers.go index 035eb09503a..7814a17d57d 100644 --- a/vendor/github.com/v3io/v3io-go/pkg/dataplane/http/headers.go +++ b/vendor/github.com/v3io/v3io-go/pkg/dataplane/http/headers.go @@ -12,6 +12,8 @@ const ( getRecordsFunctionName = "GetRecords" seekShardsFunctionName = "SeekShard" getClusterMDFunctionName = "GetClusterMD" + putOOSObjectFunctionName = "OosRun" + PutChunkFunctionName = "PutChunk" ) // headers for put item @@ -69,6 +71,12 @@ var putRecordsHeaders = map[string]string{ "X-v3io-function": putRecordsFunctionName, } +// headers for put chunks +var putChunkHeaders = map[string]string{ + "Content-Type": "application/json", + "X-v3io-function": PutChunkFunctionName, +} + // headers for put records var getRecordsHeaders = map[string]string{ "Content-Type": "application/json", @@ -81,6 +89,12 @@ var seekShardsHeaders = map[string]string{ "X-v3io-function": seekShardsFunctionName, } +// headers for OOS put object +var putOOSObjectHeaders = map[string]string{ + "Content-Type": "application/json", + "X-v3io-function": putOOSObjectFunctionName, +} + // map between SeekShardInputType and its encoded counterpart var seekShardsInputTypeToString = [...]string{ "TIME", diff --git a/vendor/github.com/v3io/v3io-go/pkg/dataplane/item.go b/vendor/github.com/v3io/v3io-go/pkg/dataplane/item.go index 5bce099fafb..d92e92d416a 100644 --- a/vendor/github.com/v3io/v3io-go/pkg/dataplane/item.go +++ b/vendor/github.com/v3io/v3io-go/pkg/dataplane/item.go @@ -17,7 +17,10 @@ limitations under the License. package v3io import ( + "bytes" + "encoding/binary" "strconv" + "strings" "github.com/v3io/v3io-go/pkg/errors" ) @@ -80,3 +83,57 @@ func (i Item) GetFieldUint64(name string) (uint64, error) { return 0, v3ioerrors.ErrInvalidTypeConversion } } + +// For internal use only - DO NOT USE! +func (i Item) GetShard() (int, []*ItemChunkData, *ItemChunkMetadata, *ItemCurrentChunkMetadata, error) { + const streamDataPrefix = "__data_stream[" + const streamMetadataPrefix = "__data_stream_metadata[" + const offsetPrefix = "__data_stream[0000][" + + var chunkDataArray []*ItemChunkData + chunkMetaData := ItemChunkMetadata{} + currentChunkMetadata := ItemCurrentChunkMetadata{} + var chunkID int + + for k, v := range i { + if strings.HasPrefix(k, streamDataPrefix) { + chunkID, _ = strconv.Atoi(k[len(streamDataPrefix):][:4]) + offset, _ := strconv.ParseUint(k[len(offsetPrefix):][:16], 10, 64) + data, ok := v.([]byte) + if !ok { + return 0, nil, nil, nil, v3ioerrors.ErrInvalidTypeConversion + } + streamData := ItemChunkData{Offset: offset, Data: &data} + chunkDataArray = append(chunkDataArray, &streamData) + } + + if strings.HasPrefix(k, streamMetadataPrefix) { + chunkID, _ = strconv.Atoi(k[len(streamMetadataPrefix):][:4]) + metadata, ok := v.([]byte) + if !ok { + return 0, nil, nil, nil, v3ioerrors.ErrInvalidTypeConversion + } + + buf := bytes.NewBuffer(metadata[8:64]) + err := binary.Read(buf, binary.LittleEndian, &chunkMetaData) + if err != nil { + return 0, nil, nil, nil, err + } + + buf = bytes.NewBuffer(metadata[0:1]) + var isCurrent bool + err = binary.Read(buf, binary.LittleEndian, &isCurrent) + if err != nil { + return 0, nil, nil, nil, err + } + if isCurrent { + buf = bytes.NewBuffer(metadata[64:110]) + err = binary.Read(buf, binary.LittleEndian, ¤tChunkMetadata) + if err != nil { + return 0, nil, nil, nil, err + } + } + } + } + return chunkID, chunkDataArray, &chunkMetaData, ¤tChunkMetadata, nil +} diff --git a/vendor/github.com/v3io/v3io-go/pkg/dataplane/types.go b/vendor/github.com/v3io/v3io-go/pkg/dataplane/types.go index b6a320a2580..a61003d92f3 100644 --- a/vendor/github.com/v3io/v3io-go/pkg/dataplane/types.go +++ b/vendor/github.com/v3io/v3io-go/pkg/dataplane/types.go @@ -181,9 +181,11 @@ type ContainerInfo struct { type GetObjectInput struct { DataPlaneInput - Path string - Offset int - NumBytes int + Path string + Offset int + NumBytes int + CtimeSec int + CtimeNsec int } type PutObjectInput struct { @@ -199,6 +201,24 @@ type DeleteObjectInput struct { Path string } +type UpdateObjectInput struct { + DataPlaneInput + Path string + DirAttributes *DirAttributes +} + +type DirAttributes struct { + Mode int `json:"mode,omitempty"` + UID int `json:"uid"` + GID int `json:"gid"` + AtimeSec int `json:"atime.sec,omitempty"` + AtimeNSec int `json:"atime.nsec"` + CtimeSec int `json:"ctime.sec,omitempty"` + CtimeNSec int `json:"ctime.nsec"` + MtimeSec int `json:"mtime.sec,omitempty"` + MtimeNSec int `json:"mtime.nsec"` +} + // // KV // @@ -269,6 +289,9 @@ type GetItemsInput struct { TotalSegments int SortKeyRangeStart string SortKeyRangeEnd string + AllowObjectScatter string + ReturnData string + DataMaxSize int RequestJSONResponse bool `json:"RequestJsonResponse"` } @@ -276,6 +299,7 @@ type GetItemsOutput struct { DataPlaneOutput Last bool NextMarker string + Scattered bool Items []Item } @@ -347,6 +371,33 @@ type PutRecordsOutput struct { Records []PutRecordResult } +type ChunkMetadata struct { + ChunkSeqNumber uint64 `json:"ChunkSequenceNumber"` + LengthInBytes uint64 `json:"LengthInBytes"` + FirstRecordSeqNumber uint64 `json:"FirstRecordSequenceNumber"` + FirstRecordTimeSecs uint64 `json:"FirstRecordTimeSec"` + FirstRecordTimeNSecs uint64 `json:"FirstRecordTimeNSec"` +} + +type CurrentChunkMetadata struct { + ChunkSeqNumber uint32 `json:"ChunkSequenceNumber"` + OffsetAfterJob uint64 `json:"OffsetAfterJob"` + SeqNumberAfterJob uint64 `json:"SequenceNumberAfterJob"` + FirstRecordTimeSec uint32 `json:"FirstRecordTimeSec"` + LatestRecordTimeSec uint64 `json:"LatestRecordTimeSec"` + LatestRecordTimeNSec uint64 `json:"LatestRecordTimeNSec"` +} + +type PutChunkInput struct { + DataPlaneInput `json:"-"` + Path string `json:"-"` + ChunkSeqNumber int `json:"ChunkSequenceNumber,omitempty"` + Offset uint64 `json:"Offset,omitempty"` + Data []byte `json:"Data,omitempty"` + ChunksMetadata []*ChunkMetadata `json:"Metadata,omitempty"` + CurrentChunkMetadata *CurrentChunkMetadata `json:"CurrentMetadata,omitempty"` +} + type SeekShardInput struct { DataPlaneInput Path string @@ -383,3 +434,38 @@ type GetRecordsOutput struct { RecordsBehindLatest int Records []GetRecordsResult } + +type PutOOSObjectInput struct { + DataPlaneInput + Path string + SliceID int + Header []byte + Data [][]byte +} + +type ItemChunkMetadata struct { + OSSID uint32 + OSDID uint32 + StoredHandle uint64 + ChunkSeqNumber uint64 + FirstRecordSeqNumber uint64 + FirstRecordTsSec uint64 + FirstRecordTsNSec uint64 + LengthInBytes uint64 +} + +type ItemCurrentChunkMetadata struct { + NextRecordSeqNumber uint64 + CurrentChunkLengthBytes uint64 + CurrentChunkSeqNumber uint32 + ChunkGranularity uint32 + NumStoredChunks uint16 + FirstRecordOnChunkSec uint32 + LatestRecordArrivalTimeSec uint64 + LatestRecordArrivalTimeNSec uint64 +} + +type ItemChunkData struct { + Offset uint64 + Data *[]byte +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 197649b25ec..593e1995633 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -333,15 +333,15 @@ github.com/soheilhy/cmux github.com/stretchr/testify/assert github.com/stretchr/testify/require github.com/stretchr/testify/suite -# github.com/v3io/frames v0.7.33 => github.com/v3io/frames v0.8.1 +# github.com/v3io/frames v0.8.10 => github.com/v3io/frames v0.8.10 github.com/v3io/frames github.com/v3io/frames/pb -# github.com/v3io/v3io-go v0.1.9 +# github.com/v3io/v3io-go v0.2.5-0.20210113095419-6c806b8d5186 github.com/v3io/v3io-go/pkg/dataplane github.com/v3io/v3io-go/pkg/dataplane/http github.com/v3io/v3io-go/pkg/dataplane/schemas/node/common github.com/v3io/v3io-go/pkg/errors -# github.com/v3io/v3io-tsdb v0.11.2 => github.com/v3io/v3io-tsdb v0.11.6 +# github.com/v3io/v3io-tsdb v0.11.6 => github.com/v3io/v3io-tsdb v0.11.7 github.com/v3io/v3io-tsdb/internal/pkg/performance github.com/v3io/v3io-tsdb/pkg/aggregate github.com/v3io/v3io-tsdb/pkg/appender