Browse Source

remove filer grpc API GetEntryAttributes

pull/747/head
Chris Lu 6 years ago
parent
commit
60c1ada4c1
  1. 10
      weed/filesys/dir.go
  2. 23
      weed/pb/filer.proto
  3. 317
      weed/pb/filer_pb/filer.pb.go
  4. 19
      weed/server/filer_grpc_server.go

10
weed/filesys/dir.go

@ -54,19 +54,21 @@ func (dir *Dir) Attr(context context.Context, attr *fuse.Attr) error {
err := dir.wfs.withFilerClient(func(client filer_pb.SeaweedFilerClient) error {
request := &filer_pb.GetEntryAttributesRequest{
request := &filer_pb.LookupDirectoryEntryRequest{
Directory: parent,
Name: name,
ParentDir: parent,
}
glog.V(1).Infof("read dir %s attr: %v", dir.Path, request)
resp, err := client.GetEntryAttributes(context, request)
resp, err := client.LookupDirectoryEntry(context, request)
if err != nil {
glog.V(0).Infof("read dir %s attr %v: %v", dir.Path, request, err)
return err
}
dir.attributes = resp.Attributes
if resp.Entry!=nil {
dir.attributes = resp.Entry.Attributes
}
return nil
})

23
weed/pb/filer.proto

@ -12,9 +12,6 @@ service SeaweedFiler {
rpc ListEntries (ListEntriesRequest) returns (ListEntriesResponse) {
}
rpc GetEntryAttributes (GetEntryAttributesRequest) returns (GetEntryAttributesResponse) {
}
rpc CreateEntry (CreateEntryRequest) returns (CreateEntryResponse) {
}
@ -94,26 +91,6 @@ message FuseAttributes {
int32 ttl_sec = 10;
}
message GetEntryAttributesRequest {
string name = 1;
string parent_dir = 2;
string file_id = 3;
}
message GetEntryAttributesResponse {
FuseAttributes attributes = 1;
repeated FileChunk chunks = 2;
map<string, bytes> extended = 3;
}
message GetFileContentRequest {
string file_id = 1;
}
message GetFileContentResponse {
bytes content = 1;
}
message CreateEntryRequest {
string directory = 1;
Entry entry = 2;

317
weed/pb/filer_pb/filer.pb.go

@ -17,10 +17,6 @@ It has these top-level messages:
EventNotification
FileChunk
FuseAttributes
GetEntryAttributesRequest
GetEntryAttributesResponse
GetFileContentRequest
GetFileContentResponse
CreateEntryRequest
CreateEntryResponse
UpdateEntryRequest
@ -386,102 +382,6 @@ func (m *FuseAttributes) GetTtlSec() int32 {
return 0
}
type GetEntryAttributesRequest struct {
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
ParentDir string `protobuf:"bytes,2,opt,name=parent_dir,json=parentDir" json:"parent_dir,omitempty"`
FileId string `protobuf:"bytes,3,opt,name=file_id,json=fileId" json:"file_id,omitempty"`
}
func (m *GetEntryAttributesRequest) Reset() { *m = GetEntryAttributesRequest{} }
func (m *GetEntryAttributesRequest) String() string { return proto.CompactTextString(m) }
func (*GetEntryAttributesRequest) ProtoMessage() {}
func (*GetEntryAttributesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (m *GetEntryAttributesRequest) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *GetEntryAttributesRequest) GetParentDir() string {
if m != nil {
return m.ParentDir
}
return ""
}
func (m *GetEntryAttributesRequest) GetFileId() string {
if m != nil {
return m.FileId
}
return ""
}
type GetEntryAttributesResponse struct {
Attributes *FuseAttributes `protobuf:"bytes,1,opt,name=attributes" json:"attributes,omitempty"`
Chunks []*FileChunk `protobuf:"bytes,2,rep,name=chunks" json:"chunks,omitempty"`
Extended map[string][]byte `protobuf:"bytes,3,rep,name=extended" json:"extended,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (m *GetEntryAttributesResponse) Reset() { *m = GetEntryAttributesResponse{} }
func (m *GetEntryAttributesResponse) String() string { return proto.CompactTextString(m) }
func (*GetEntryAttributesResponse) ProtoMessage() {}
func (*GetEntryAttributesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
func (m *GetEntryAttributesResponse) GetAttributes() *FuseAttributes {
if m != nil {
return m.Attributes
}
return nil
}
func (m *GetEntryAttributesResponse) GetChunks() []*FileChunk {
if m != nil {
return m.Chunks
}
return nil
}
func (m *GetEntryAttributesResponse) GetExtended() map[string][]byte {
if m != nil {
return m.Extended
}
return nil
}
type GetFileContentRequest struct {
FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId" json:"file_id,omitempty"`
}
func (m *GetFileContentRequest) Reset() { *m = GetFileContentRequest{} }
func (m *GetFileContentRequest) String() string { return proto.CompactTextString(m) }
func (*GetFileContentRequest) ProtoMessage() {}
func (*GetFileContentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
func (m *GetFileContentRequest) GetFileId() string {
if m != nil {
return m.FileId
}
return ""
}
type GetFileContentResponse struct {
Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
}
func (m *GetFileContentResponse) Reset() { *m = GetFileContentResponse{} }
func (m *GetFileContentResponse) String() string { return proto.CompactTextString(m) }
func (*GetFileContentResponse) ProtoMessage() {}
func (*GetFileContentResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
func (m *GetFileContentResponse) GetContent() []byte {
if m != nil {
return m.Content
}
return nil
}
type CreateEntryRequest struct {
Directory string `protobuf:"bytes,1,opt,name=directory" json:"directory,omitempty"`
Entry *Entry `protobuf:"bytes,2,opt,name=entry" json:"entry,omitempty"`
@ -490,7 +390,7 @@ type CreateEntryRequest struct {
func (m *CreateEntryRequest) Reset() { *m = CreateEntryRequest{} }
func (m *CreateEntryRequest) String() string { return proto.CompactTextString(m) }
func (*CreateEntryRequest) ProtoMessage() {}
func (*CreateEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
func (*CreateEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (m *CreateEntryRequest) GetDirectory() string {
if m != nil {
@ -512,7 +412,7 @@ type CreateEntryResponse struct {
func (m *CreateEntryResponse) Reset() { *m = CreateEntryResponse{} }
func (m *CreateEntryResponse) String() string { return proto.CompactTextString(m) }
func (*CreateEntryResponse) ProtoMessage() {}
func (*CreateEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
func (*CreateEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
type UpdateEntryRequest struct {
Directory string `protobuf:"bytes,1,opt,name=directory" json:"directory,omitempty"`
@ -522,7 +422,7 @@ type UpdateEntryRequest struct {
func (m *UpdateEntryRequest) Reset() { *m = UpdateEntryRequest{} }
func (m *UpdateEntryRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateEntryRequest) ProtoMessage() {}
func (*UpdateEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
func (*UpdateEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
func (m *UpdateEntryRequest) GetDirectory() string {
if m != nil {
@ -544,7 +444,7 @@ type UpdateEntryResponse struct {
func (m *UpdateEntryResponse) Reset() { *m = UpdateEntryResponse{} }
func (m *UpdateEntryResponse) String() string { return proto.CompactTextString(m) }
func (*UpdateEntryResponse) ProtoMessage() {}
func (*UpdateEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (*UpdateEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
type DeleteEntryRequest struct {
Directory string `protobuf:"bytes,1,opt,name=directory" json:"directory,omitempty"`
@ -557,7 +457,7 @@ type DeleteEntryRequest struct {
func (m *DeleteEntryRequest) Reset() { *m = DeleteEntryRequest{} }
func (m *DeleteEntryRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteEntryRequest) ProtoMessage() {}
func (*DeleteEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (*DeleteEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
func (m *DeleteEntryRequest) GetDirectory() string {
if m != nil {
@ -600,7 +500,7 @@ type DeleteEntryResponse struct {
func (m *DeleteEntryResponse) Reset() { *m = DeleteEntryResponse{} }
func (m *DeleteEntryResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteEntryResponse) ProtoMessage() {}
func (*DeleteEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (*DeleteEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
type AssignVolumeRequest struct {
Count int32 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"`
@ -613,7 +513,7 @@ type AssignVolumeRequest struct {
func (m *AssignVolumeRequest) Reset() { *m = AssignVolumeRequest{} }
func (m *AssignVolumeRequest) String() string { return proto.CompactTextString(m) }
func (*AssignVolumeRequest) ProtoMessage() {}
func (*AssignVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (*AssignVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
func (m *AssignVolumeRequest) GetCount() int32 {
if m != nil {
@ -660,7 +560,7 @@ type AssignVolumeResponse struct {
func (m *AssignVolumeResponse) Reset() { *m = AssignVolumeResponse{} }
func (m *AssignVolumeResponse) String() string { return proto.CompactTextString(m) }
func (*AssignVolumeResponse) ProtoMessage() {}
func (*AssignVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (*AssignVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (m *AssignVolumeResponse) GetFileId() string {
if m != nil {
@ -697,7 +597,7 @@ type LookupVolumeRequest struct {
func (m *LookupVolumeRequest) Reset() { *m = LookupVolumeRequest{} }
func (m *LookupVolumeRequest) String() string { return proto.CompactTextString(m) }
func (*LookupVolumeRequest) ProtoMessage() {}
func (*LookupVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
func (*LookupVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (m *LookupVolumeRequest) GetVolumeIds() []string {
if m != nil {
@ -713,7 +613,7 @@ type Locations struct {
func (m *Locations) Reset() { *m = Locations{} }
func (m *Locations) String() string { return proto.CompactTextString(m) }
func (*Locations) ProtoMessage() {}
func (*Locations) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
func (*Locations) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (m *Locations) GetLocations() []*Location {
if m != nil {
@ -730,7 +630,7 @@ type Location struct {
func (m *Location) Reset() { *m = Location{} }
func (m *Location) String() string { return proto.CompactTextString(m) }
func (*Location) ProtoMessage() {}
func (*Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
func (*Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (m *Location) GetUrl() string {
if m != nil {
@ -753,7 +653,7 @@ type LookupVolumeResponse struct {
func (m *LookupVolumeResponse) Reset() { *m = LookupVolumeResponse{} }
func (m *LookupVolumeResponse) String() string { return proto.CompactTextString(m) }
func (*LookupVolumeResponse) ProtoMessage() {}
func (*LookupVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
func (*LookupVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (m *LookupVolumeResponse) GetLocationsMap() map[string]*Locations {
if m != nil {
@ -769,7 +669,7 @@ type DeleteCollectionRequest struct {
func (m *DeleteCollectionRequest) Reset() { *m = DeleteCollectionRequest{} }
func (m *DeleteCollectionRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteCollectionRequest) ProtoMessage() {}
func (*DeleteCollectionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
func (*DeleteCollectionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
func (m *DeleteCollectionRequest) GetCollection() string {
if m != nil {
@ -784,7 +684,7 @@ type DeleteCollectionResponse struct {
func (m *DeleteCollectionResponse) Reset() { *m = DeleteCollectionResponse{} }
func (m *DeleteCollectionResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteCollectionResponse) ProtoMessage() {}
func (*DeleteCollectionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
func (*DeleteCollectionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
func init() {
proto.RegisterType((*LookupDirectoryEntryRequest)(nil), "filer_pb.LookupDirectoryEntryRequest")
@ -795,10 +695,6 @@ func init() {
proto.RegisterType((*EventNotification)(nil), "filer_pb.EventNotification")
proto.RegisterType((*FileChunk)(nil), "filer_pb.FileChunk")
proto.RegisterType((*FuseAttributes)(nil), "filer_pb.FuseAttributes")
proto.RegisterType((*GetEntryAttributesRequest)(nil), "filer_pb.GetEntryAttributesRequest")
proto.RegisterType((*GetEntryAttributesResponse)(nil), "filer_pb.GetEntryAttributesResponse")
proto.RegisterType((*GetFileContentRequest)(nil), "filer_pb.GetFileContentRequest")
proto.RegisterType((*GetFileContentResponse)(nil), "filer_pb.GetFileContentResponse")
proto.RegisterType((*CreateEntryRequest)(nil), "filer_pb.CreateEntryRequest")
proto.RegisterType((*CreateEntryResponse)(nil), "filer_pb.CreateEntryResponse")
proto.RegisterType((*UpdateEntryRequest)(nil), "filer_pb.UpdateEntryRequest")
@ -828,7 +724,6 @@ const _ = grpc.SupportPackageIsVersion4
type SeaweedFilerClient interface {
LookupDirectoryEntry(ctx context.Context, in *LookupDirectoryEntryRequest, opts ...grpc.CallOption) (*LookupDirectoryEntryResponse, error)
ListEntries(ctx context.Context, in *ListEntriesRequest, opts ...grpc.CallOption) (*ListEntriesResponse, error)
GetEntryAttributes(ctx context.Context, in *GetEntryAttributesRequest, opts ...grpc.CallOption) (*GetEntryAttributesResponse, error)
CreateEntry(ctx context.Context, in *CreateEntryRequest, opts ...grpc.CallOption) (*CreateEntryResponse, error)
UpdateEntry(ctx context.Context, in *UpdateEntryRequest, opts ...grpc.CallOption) (*UpdateEntryResponse, error)
DeleteEntry(ctx context.Context, in *DeleteEntryRequest, opts ...grpc.CallOption) (*DeleteEntryResponse, error)
@ -863,15 +758,6 @@ func (c *seaweedFilerClient) ListEntries(ctx context.Context, in *ListEntriesReq
return out, nil
}
func (c *seaweedFilerClient) GetEntryAttributes(ctx context.Context, in *GetEntryAttributesRequest, opts ...grpc.CallOption) (*GetEntryAttributesResponse, error) {
out := new(GetEntryAttributesResponse)
err := grpc.Invoke(ctx, "/filer_pb.SeaweedFiler/GetEntryAttributes", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *seaweedFilerClient) CreateEntry(ctx context.Context, in *CreateEntryRequest, opts ...grpc.CallOption) (*CreateEntryResponse, error) {
out := new(CreateEntryResponse)
err := grpc.Invoke(ctx, "/filer_pb.SeaweedFiler/CreateEntry", in, out, c.cc, opts...)
@ -931,7 +817,6 @@ func (c *seaweedFilerClient) DeleteCollection(ctx context.Context, in *DeleteCol
type SeaweedFilerServer interface {
LookupDirectoryEntry(context.Context, *LookupDirectoryEntryRequest) (*LookupDirectoryEntryResponse, error)
ListEntries(context.Context, *ListEntriesRequest) (*ListEntriesResponse, error)
GetEntryAttributes(context.Context, *GetEntryAttributesRequest) (*GetEntryAttributesResponse, error)
CreateEntry(context.Context, *CreateEntryRequest) (*CreateEntryResponse, error)
UpdateEntry(context.Context, *UpdateEntryRequest) (*UpdateEntryResponse, error)
DeleteEntry(context.Context, *DeleteEntryRequest) (*DeleteEntryResponse, error)
@ -980,24 +865,6 @@ func _SeaweedFiler_ListEntries_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
func _SeaweedFiler_GetEntryAttributes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetEntryAttributesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(SeaweedFilerServer).GetEntryAttributes(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/filer_pb.SeaweedFiler/GetEntryAttributes",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(SeaweedFilerServer).GetEntryAttributes(ctx, req.(*GetEntryAttributesRequest))
}
return interceptor(ctx, in, info, handler)
}
func _SeaweedFiler_CreateEntry_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateEntryRequest)
if err := dec(in); err != nil {
@ -1118,10 +985,6 @@ var _SeaweedFiler_serviceDesc = grpc.ServiceDesc{
MethodName: "ListEntries",
Handler: _SeaweedFiler_ListEntries_Handler,
},
{
MethodName: "GetEntryAttributes",
Handler: _SeaweedFiler_GetEntryAttributes_Handler,
},
{
MethodName: "CreateEntry",
Handler: _SeaweedFiler_CreateEntry_Handler,
@ -1154,84 +1017,76 @@ var _SeaweedFiler_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("filer.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 1251 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x57, 0x5f, 0x6f, 0xd4, 0x46,
0x10, 0xc7, 0xbe, 0x3f, 0x39, 0xcf, 0xdd, 0x51, 0xd8, 0x0b, 0xe0, 0x1e, 0x84, 0x1e, 0x06, 0xaa,
0xa0, 0xa2, 0x08, 0xa5, 0x7d, 0x80, 0xa2, 0x4a, 0x45, 0x49, 0x40, 0x48, 0x01, 0x24, 0x07, 0x2a,
0x55, 0x7d, 0xb0, 0x1c, 0x7b, 0x72, 0x5d, 0xc5, 0x67, 0x5f, 0xed, 0x75, 0x42, 0xfa, 0x15, 0xfa,
0xd2, 0x4a, 0x7d, 0xed, 0x43, 0x9f, 0xfa, 0xde, 0x0f, 0xd0, 0x97, 0x7e, 0xb1, 0x6a, 0xff, 0xd8,
0xb7, 0x3e, 0xfb, 0x02, 0xa8, 0xe2, 0xcd, 0x3b, 0x33, 0x3b, 0xf3, 0x9b, 0xd9, 0x99, 0xdf, 0xae,
0xa1, 0x7f, 0x44, 0x23, 0x4c, 0xb7, 0xe6, 0x69, 0xc2, 0x12, 0xd2, 0x13, 0x0b, 0x6f, 0x7e, 0xe8,
0xbc, 0x82, 0xeb, 0xfb, 0x49, 0x72, 0x9c, 0xcf, 0x77, 0x69, 0x8a, 0x01, 0x4b, 0xd2, 0xb3, 0xbd,
0x98, 0xa5, 0x67, 0x2e, 0xfe, 0x94, 0x63, 0xc6, 0xc8, 0x0d, 0xb0, 0xc2, 0x42, 0x61, 0x1b, 0x13,
0x63, 0xd3, 0x72, 0x17, 0x02, 0x42, 0xa0, 0x1d, 0xfb, 0x33, 0xb4, 0x4d, 0xa1, 0x10, 0xdf, 0xce,
0x1e, 0xdc, 0x68, 0x76, 0x98, 0xcd, 0x93, 0x38, 0x43, 0x72, 0x17, 0x3a, 0xc8, 0x05, 0xc2, 0x5b,
0x7f, 0xfb, 0x93, 0xad, 0x02, 0xca, 0x96, 0xb4, 0x93, 0x5a, 0xe7, 0x1f, 0x03, 0xc8, 0x3e, 0xcd,
0x18, 0x17, 0x52, 0xcc, 0xde, 0x0f, 0xcf, 0x55, 0xe8, 0xce, 0x53, 0x3c, 0xa2, 0x6f, 0x15, 0x22,
0xb5, 0x22, 0xf7, 0xe1, 0x72, 0xc6, 0xfc, 0x94, 0x3d, 0x4d, 0x93, 0xd9, 0x53, 0x1a, 0xe1, 0x4b,
0x0e, 0xba, 0x25, 0x4c, 0xea, 0x0a, 0xb2, 0x05, 0x84, 0xc6, 0x41, 0x94, 0x67, 0xf4, 0x04, 0x0f,
0x0a, 0xad, 0xdd, 0x9e, 0x18, 0x9b, 0x3d, 0xb7, 0x41, 0x43, 0xd6, 0xa1, 0x13, 0xd1, 0x19, 0x65,
0x76, 0x67, 0x62, 0x6c, 0x0e, 0x5d, 0xb9, 0x70, 0xbe, 0x85, 0x51, 0x05, 0xbf, 0x4a, 0xff, 0x1e,
0xac, 0xa1, 0x14, 0xd9, 0xc6, 0xa4, 0xd5, 0x54, 0x80, 0x42, 0xef, 0xfc, 0x61, 0x42, 0x47, 0x88,
0xca, 0x3a, 0x1b, 0x8b, 0x3a, 0x93, 0x5b, 0x30, 0xa0, 0x99, 0xb7, 0x28, 0x86, 0x29, 0xf0, 0xf5,
0x69, 0x56, 0xd6, 0x9d, 0x7c, 0x01, 0xdd, 0xe0, 0xc7, 0x3c, 0x3e, 0xce, 0xec, 0x96, 0x08, 0x35,
0x5a, 0x84, 0xe2, 0xc9, 0xee, 0x70, 0x9d, 0xab, 0x4c, 0xc8, 0x43, 0x00, 0x9f, 0xb1, 0x94, 0x1e,
0xe6, 0x0c, 0x33, 0x91, 0x6d, 0x7f, 0xdb, 0xd6, 0x36, 0xe4, 0x19, 0x3e, 0x29, 0xf5, 0xae, 0x66,
0x4b, 0x1e, 0x41, 0x0f, 0xdf, 0x32, 0x8c, 0x43, 0x0c, 0xed, 0x8e, 0x08, 0xb4, 0xb1, 0x94, 0xd3,
0xd6, 0x9e, 0xd2, 0xcb, 0x0c, 0x4b, 0xf3, 0xf1, 0x63, 0x18, 0x56, 0x54, 0xe4, 0x12, 0xb4, 0x8e,
0xb1, 0x38, 0x59, 0xfe, 0xc9, 0xab, 0x7b, 0xe2, 0x47, 0xb9, 0x6c, 0xb2, 0x81, 0x2b, 0x17, 0x5f,
0x9b, 0x0f, 0x0d, 0xe7, 0x77, 0x03, 0x2e, 0xef, 0x9d, 0x60, 0xcc, 0x5e, 0x26, 0x8c, 0x1e, 0xd1,
0xc0, 0x67, 0x34, 0x89, 0xc9, 0x7d, 0xb0, 0x92, 0x28, 0xf4, 0xce, 0xed, 0xb1, 0x5e, 0x12, 0xa9,
0x78, 0xf7, 0xc1, 0x8a, 0xf1, 0x54, 0x59, 0x9b, 0x2b, 0xac, 0x63, 0x3c, 0x95, 0xd6, 0xb7, 0x61,
0x18, 0x62, 0x84, 0x0c, 0xbd, 0xb2, 0xae, 0xbc, 0xe8, 0x03, 0x29, 0x14, 0xf5, 0xcc, 0x9c, 0x3f,
0x0d, 0xb0, 0xca, 0xf2, 0x92, 0x6b, 0xb0, 0xc6, 0xdd, 0x79, 0x34, 0x54, 0x49, 0x75, 0xf9, 0xf2,
0x79, 0xc8, 0x7b, 0x35, 0x39, 0x3a, 0xca, 0x90, 0x89, 0xb0, 0x2d, 0x57, 0xad, 0xf8, 0x59, 0x67,
0xf4, 0x67, 0xd9, 0x9e, 0x6d, 0x57, 0x7c, 0xf3, 0x1a, 0xcc, 0x18, 0x9d, 0xa1, 0x38, 0x96, 0x96,
0x2b, 0x17, 0x64, 0x04, 0x1d, 0xf4, 0x98, 0x3f, 0x15, 0x7d, 0x67, 0xb9, 0x6d, 0x7c, 0xed, 0x4f,
0xc9, 0x1d, 0xb8, 0x98, 0x25, 0x79, 0x1a, 0xa0, 0x57, 0x84, 0xed, 0x0a, 0xed, 0x40, 0x4a, 0x9f,
0x8a, 0xe0, 0xce, 0x2f, 0x26, 0x5c, 0xac, 0x9e, 0x28, 0xb9, 0x0e, 0x96, 0xd8, 0x21, 0x82, 0x1b,
0x22, 0xb8, 0x60, 0x89, 0x83, 0x0a, 0x00, 0x53, 0x07, 0x50, 0x6c, 0x99, 0x25, 0xa1, 0xc4, 0x3b,
0x94, 0x5b, 0x5e, 0x24, 0x21, 0xf2, 0x93, 0xcc, 0x69, 0x28, 0x10, 0x0f, 0x5d, 0xfe, 0xc9, 0x25,
0x53, 0x1a, 0xaa, 0x29, 0xe1, 0x9f, 0xbc, 0x06, 0x41, 0x2a, 0xfc, 0x76, 0x65, 0x0d, 0xe4, 0x8a,
0xd7, 0x60, 0xc6, 0xa5, 0x6b, 0x32, 0x31, 0xfe, 0x4d, 0x26, 0xd0, 0x4f, 0x71, 0x1e, 0xa9, 0x63,
0xb6, 0x7b, 0x42, 0xa5, 0x8b, 0xc8, 0x4d, 0x80, 0x20, 0x89, 0x22, 0x0c, 0x84, 0x81, 0x25, 0x0c,
0x34, 0x09, 0x3f, 0x0a, 0xc6, 0x22, 0x2f, 0xc3, 0xc0, 0x86, 0x89, 0xb1, 0xd9, 0x71, 0xbb, 0x8c,
0x45, 0x07, 0x18, 0x38, 0x53, 0xf8, 0xf4, 0x19, 0x8a, 0x49, 0x3d, 0xd3, 0x5a, 0x5c, 0x31, 0x4e,
0xd3, 0xec, 0x6d, 0x00, 0xcc, 0xfd, 0x14, 0x63, 0xc6, 0xe7, 0x4f, 0x71, 0x8d, 0x25, 0x25, 0xbb,
0x34, 0xd5, 0xcf, 0xbc, 0xa5, 0x9f, 0xb9, 0xf3, 0xab, 0x09, 0xe3, 0xa6, 0x48, 0x8a, 0x1b, 0xaa,
0x23, 0x68, 0x7c, 0xc0, 0x08, 0x2e, 0x26, 0xdd, 0x7c, 0xf7, 0xa4, 0xbf, 0xd4, 0xe6, 0x55, 0x12,
0xc3, 0xf6, 0xc2, 0x7c, 0x35, 0xbc, 0x8f, 0x33, 0xc4, 0x0f, 0xe0, 0xca, 0x33, 0x64, 0x02, 0x64,
0x12, 0x33, 0x8c, 0x59, 0x51, 0xf7, 0x55, 0x83, 0xe3, 0x6c, 0xc3, 0xd5, 0xe5, 0x1d, 0xaa, 0x7e,
0x36, 0xac, 0x05, 0x52, 0x24, 0xb6, 0x0c, 0xdc, 0x62, 0xe9, 0x7c, 0x0f, 0x64, 0x27, 0x45, 0x9f,
0xe1, 0x07, 0x5c, 0x6e, 0xe5, 0x45, 0x65, 0x9e, 0x7b, 0x51, 0x5d, 0x81, 0x51, 0xc5, 0xb5, 0xc4,
0xc2, 0x23, 0xbe, 0x99, 0x87, 0x1f, 0x2b, 0x62, 0xc5, 0xb5, 0x8a, 0xf8, 0xb7, 0x01, 0x64, 0x57,
0x10, 0xd1, 0xff, 0xbb, 0xc1, 0x6b, 0x37, 0x4b, 0xab, 0x7e, 0xb3, 0xdc, 0x81, 0x8b, 0xdc, 0x44,
0x72, 0x61, 0xe8, 0x33, 0x5f, 0x5d, 0x8f, 0x03, 0x9a, 0x49, 0x08, 0xbb, 0x3e, 0xf3, 0x95, 0xa3,
0x14, 0x83, 0x3c, 0xe5, 0x37, 0xa6, 0x98, 0x7c, 0xe1, 0xc8, 0x2d, 0x44, 0x3c, 0x97, 0x0a, 0x66,
0x95, 0xcb, 0x5f, 0x06, 0x8c, 0x9e, 0x64, 0x19, 0x9d, 0xc6, 0xdf, 0x25, 0x51, 0x3e, 0xc3, 0x22,
0x99, 0x75, 0xe8, 0x04, 0x49, 0xae, 0xce, 0xb7, 0xe3, 0xca, 0xc5, 0xd2, 0xe0, 0x9b, 0xb5, 0xc1,
0x5f, 0xa2, 0x8e, 0x56, 0x9d, 0x3a, 0x34, 0x6a, 0x68, 0xeb, 0xd4, 0x40, 0x3e, 0x83, 0x3e, 0x4f,
0xcf, 0x0b, 0x30, 0x66, 0x98, 0x2a, 0xa6, 0x05, 0x2e, 0xda, 0x11, 0x12, 0xe7, 0x04, 0xd6, 0xab,
0x40, 0x55, 0x2f, 0xae, 0xe4, 0x7d, 0xce, 0x8b, 0x69, 0xa4, 0x50, 0xf2, 0x4f, 0xc1, 0x26, 0xf9,
0x61, 0x44, 0x03, 0x8f, 0x2b, 0x5a, 0x8a, 0x4d, 0x84, 0xe4, 0x4d, 0x1a, 0x2d, 0x72, 0x6e, 0x6b,
0x39, 0x3b, 0x5f, 0xc1, 0x48, 0x3e, 0xb3, 0xaa, 0x05, 0xda, 0x00, 0x38, 0x11, 0x02, 0x8f, 0x86,
0xf2, 0x85, 0x61, 0xb9, 0x96, 0x94, 0x3c, 0x0f, 0x33, 0xe7, 0x1b, 0xb0, 0xf6, 0x13, 0x99, 0x73,
0x46, 0x1e, 0x80, 0x15, 0x15, 0x0b, 0xf5, 0x18, 0x21, 0x8b, 0x96, 0x2b, 0xec, 0xdc, 0x85, 0x91,
0xf3, 0x18, 0x7a, 0x85, 0xb8, 0xc8, 0xc3, 0x58, 0x95, 0x87, 0xb9, 0x94, 0x87, 0xf3, 0xaf, 0x01,
0xeb, 0x55, 0xc8, 0xaa, 0x54, 0x6f, 0x60, 0x58, 0x86, 0xf0, 0x66, 0xfe, 0x5c, 0x61, 0x79, 0xa0,
0x63, 0xa9, 0x6f, 0x2b, 0x01, 0x66, 0x2f, 0xfc, 0xb9, 0xec, 0x9e, 0x41, 0xa4, 0x89, 0xc6, 0xaf,
0xe1, 0x72, 0xcd, 0xa4, 0x81, 0x9a, 0xee, 0xe9, 0xd4, 0x54, 0x61, 0xce, 0x72, 0xb7, 0xce, 0x57,
0x8f, 0xe0, 0x9a, 0x6c, 0xd8, 0x9d, 0xb2, 0xbf, 0x8a, 0xda, 0x57, 0xdb, 0xd0, 0x58, 0x6e, 0x43,
0x67, 0x0c, 0x76, 0x7d, 0xab, 0x4c, 0x66, 0xfb, 0xb7, 0x2e, 0x0c, 0x0e, 0xd0, 0x3f, 0x45, 0x0c,
0x39, 0xb3, 0xa5, 0x64, 0x5a, 0x14, 0xab, 0xfa, 0x8c, 0x26, 0x77, 0x97, 0xab, 0xd2, 0xf8, 0x6e,
0x1f, 0x7f, 0xfe, 0x2e, 0x33, 0x35, 0x68, 0x17, 0xc8, 0x3e, 0xf4, 0xb5, 0x77, 0x2a, 0xb9, 0xa1,
0x6d, 0xac, 0x3d, 0xbf, 0xc7, 0x1b, 0x2b, 0xb4, 0xa5, 0x37, 0x1f, 0x48, 0xfd, 0x06, 0x21, 0xb7,
0xcf, 0xbf, 0x5f, 0xa4, 0xef, 0x3b, 0xef, 0x73, 0x09, 0x49, 0xc0, 0x1a, 0xe1, 0xea, 0x80, 0xeb,
0x14, 0xaf, 0x03, 0x6e, 0x62, 0x69, 0xe1, 0x4d, 0x23, 0x53, 0xdd, 0x5b, 0x9d, 0xbe, 0x75, 0x6f,
0x4d, 0x0c, 0x2c, 0xbc, 0x69, 0x74, 0xa6, 0x7b, 0xab, 0x33, 0xb3, 0xee, 0xad, 0x89, 0x03, 0x2f,
0x90, 0x57, 0x30, 0xd0, 0xb9, 0x85, 0x68, 0x1b, 0x1a, 0xc8, 0x71, 0x7c, 0x73, 0x95, 0x5a, 0x77,
0xa8, 0x8f, 0x92, 0xee, 0xb0, 0x81, 0x4c, 0x74, 0x87, 0x4d, 0x13, 0xe8, 0x5c, 0x20, 0x3f, 0xc0,
0xa5, 0xe5, 0x96, 0x26, 0xb7, 0x96, 0xd3, 0xaa, 0x4d, 0xca, 0xd8, 0x39, 0xcf, 0xa4, 0x70, 0x7e,
0xd8, 0x15, 0xff, 0xaa, 0x5f, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x08, 0x7d, 0x7a, 0x7c, 0xba,
0x0e, 0x00, 0x00,
// 1129 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x57, 0x4d, 0x6f, 0xdc, 0xc4,
0x1b, 0x8f, 0xf7, 0x2d, 0xeb, 0x67, 0x77, 0xf3, 0x6f, 0x66, 0xf3, 0xa7, 0xd6, 0x36, 0x29, 0x5b,
0xd3, 0xa2, 0x54, 0x44, 0x51, 0x15, 0x38, 0xb4, 0x54, 0x48, 0x54, 0x79, 0x91, 0x2a, 0xa5, 0xad,
0xe4, 0x34, 0x48, 0x88, 0x83, 0xe5, 0xd8, 0x4f, 0xc2, 0x28, 0x5e, 0x7b, 0xf1, 0x8c, 0x93, 0x96,
0xaf, 0xc0, 0x95, 0x2b, 0x07, 0x4e, 0xdc, 0x38, 0xf0, 0x01, 0xb8, 0xf0, 0xc5, 0xd0, 0xbc, 0xd8,
0x3b, 0x5e, 0x3b, 0x01, 0x84, 0xb8, 0xcd, 0xf3, 0x32, 0xcf, 0xdb, 0xfc, 0xe6, 0x37, 0x36, 0x0c,
0xce, 0x69, 0x8c, 0xd9, 0xee, 0x3c, 0x4b, 0x79, 0x4a, 0xfa, 0x52, 0xf0, 0xe7, 0x67, 0xee, 0x1b,
0xb8, 0x77, 0x9c, 0xa6, 0x97, 0xf9, 0xfc, 0x80, 0x66, 0x18, 0xf2, 0x34, 0x7b, 0x7f, 0x98, 0xf0,
0xec, 0xbd, 0x87, 0xdf, 0xe5, 0xc8, 0x38, 0xd9, 0x04, 0x3b, 0x2a, 0x0c, 0x8e, 0x35, 0xb5, 0xb6,
0x6d, 0x6f, 0xa1, 0x20, 0x04, 0x3a, 0x49, 0x30, 0x43, 0xa7, 0x25, 0x0d, 0x72, 0xed, 0x1e, 0xc2,
0x66, 0x73, 0x40, 0x36, 0x4f, 0x13, 0x86, 0xe4, 0x11, 0x74, 0x51, 0x28, 0x64, 0xb4, 0xc1, 0xde,
0xff, 0x76, 0x8b, 0x52, 0x76, 0x95, 0x9f, 0xb2, 0xba, 0xbf, 0x5b, 0x40, 0x8e, 0x29, 0xe3, 0x42,
0x49, 0x91, 0xfd, 0xbd, 0x7a, 0x3e, 0x80, 0xde, 0x3c, 0xc3, 0x73, 0xfa, 0x4e, 0x57, 0xa4, 0x25,
0xb2, 0x03, 0xeb, 0x8c, 0x07, 0x19, 0x3f, 0xca, 0xd2, 0xd9, 0x11, 0x8d, 0xf1, 0xb5, 0x28, 0xba,
0x2d, 0x5d, 0xea, 0x06, 0xb2, 0x0b, 0x84, 0x26, 0x61, 0x9c, 0x33, 0x7a, 0x85, 0x27, 0x85, 0xd5,
0xe9, 0x4c, 0xad, 0xed, 0xbe, 0xd7, 0x60, 0x21, 0x1b, 0xd0, 0x8d, 0xe9, 0x8c, 0x72, 0xa7, 0x3b,
0xb5, 0xb6, 0x47, 0x9e, 0x12, 0xdc, 0x2f, 0x61, 0x5c, 0xa9, 0x5f, 0xb7, 0xff, 0x18, 0x56, 0x51,
0xa9, 0x1c, 0x6b, 0xda, 0x6e, 0x1a, 0x40, 0x61, 0x77, 0x7f, 0x6a, 0x41, 0x57, 0xaa, 0xca, 0x39,
0x5b, 0x8b, 0x39, 0x93, 0x07, 0x30, 0xa4, 0xcc, 0x5f, 0x0c, 0xa3, 0x25, 0xeb, 0x1b, 0x50, 0x56,
0xce, 0x9d, 0x7c, 0x02, 0xbd, 0xf0, 0xdb, 0x3c, 0xb9, 0x64, 0x4e, 0x5b, 0xa6, 0x1a, 0x2f, 0x52,
0x89, 0x66, 0xf7, 0x85, 0xcd, 0xd3, 0x2e, 0xe4, 0x29, 0x40, 0xc0, 0x79, 0x46, 0xcf, 0x72, 0x8e,
0x4c, 0x76, 0x3b, 0xd8, 0x73, 0x8c, 0x0d, 0x39, 0xc3, 0x17, 0xa5, 0xdd, 0x33, 0x7c, 0xc9, 0x33,
0xe8, 0xe3, 0x3b, 0x8e, 0x49, 0x84, 0x91, 0xd3, 0x95, 0x89, 0xb6, 0x96, 0x7a, 0xda, 0x3d, 0xd4,
0x76, 0xd5, 0x61, 0xe9, 0x3e, 0x79, 0x0e, 0xa3, 0x8a, 0x89, 0xdc, 0x81, 0xf6, 0x25, 0x16, 0x27,
0x2b, 0x96, 0x62, 0xba, 0x57, 0x41, 0x9c, 0x2b, 0x90, 0x0d, 0x3d, 0x25, 0x7c, 0xde, 0x7a, 0x6a,
0xb9, 0x3f, 0x5a, 0xb0, 0x7e, 0x78, 0x85, 0x09, 0x7f, 0x9d, 0x72, 0x7a, 0x4e, 0xc3, 0x80, 0xd3,
0x34, 0x21, 0x3b, 0x60, 0xa7, 0x71, 0xe4, 0xdf, 0x8a, 0xb1, 0x7e, 0x1a, 0xeb, 0x7c, 0x3b, 0x60,
0x27, 0x78, 0xad, 0xbd, 0x5b, 0x37, 0x78, 0x27, 0x78, 0xad, 0xbc, 0x3f, 0x82, 0x51, 0x84, 0x31,
0x72, 0xf4, 0xcb, 0xb9, 0x8a, 0xa1, 0x0f, 0x95, 0x52, 0xce, 0x93, 0xb9, 0x3f, 0x5b, 0x60, 0x97,
0xe3, 0x25, 0x77, 0x61, 0x55, 0x84, 0xf3, 0x69, 0xa4, 0x9b, 0xea, 0x09, 0xf1, 0x65, 0x24, 0xb0,
0x9a, 0x9e, 0x9f, 0x33, 0xe4, 0x32, 0x6d, 0xdb, 0xd3, 0x92, 0x38, 0x6b, 0x46, 0xbf, 0x57, 0xf0,
0xec, 0x78, 0x72, 0x2d, 0x66, 0x30, 0xe3, 0x74, 0x86, 0xf2, 0x58, 0xda, 0x9e, 0x12, 0xc8, 0x18,
0xba, 0xe8, 0xf3, 0xe0, 0x42, 0xe2, 0xce, 0xf6, 0x3a, 0xf8, 0x36, 0xb8, 0x20, 0x0f, 0x61, 0x8d,
0xa5, 0x79, 0x16, 0xa2, 0x5f, 0xa4, 0xed, 0x49, 0xeb, 0x50, 0x69, 0x8f, 0x64, 0x72, 0xf7, 0x87,
0x16, 0xac, 0x55, 0x4f, 0x94, 0xdc, 0x03, 0x5b, 0xee, 0x90, 0xc9, 0x2d, 0x99, 0x5c, 0xb2, 0xc4,
0x49, 0xa5, 0x80, 0x96, 0x59, 0x40, 0xb1, 0x65, 0x96, 0x46, 0xaa, 0xde, 0x91, 0xda, 0xf2, 0x2a,
0x8d, 0x50, 0x9c, 0x64, 0x4e, 0x23, 0x59, 0xf1, 0xc8, 0x13, 0x4b, 0xa1, 0xb9, 0xa0, 0x91, 0xbe,
0x25, 0x62, 0x29, 0x66, 0x10, 0x66, 0x32, 0x6e, 0x4f, 0xcd, 0x40, 0x49, 0x62, 0x06, 0x33, 0xa1,
0x5d, 0x55, 0x8d, 0x89, 0x35, 0x99, 0xc2, 0x20, 0xc3, 0x79, 0xac, 0x8f, 0xd9, 0xe9, 0x4b, 0x93,
0xa9, 0x22, 0xf7, 0x01, 0xc2, 0x34, 0x8e, 0x31, 0x94, 0x0e, 0xb6, 0x74, 0x30, 0x34, 0xe2, 0x28,
0x38, 0x8f, 0x7d, 0x86, 0xa1, 0x03, 0x53, 0x6b, 0xbb, 0xeb, 0xf5, 0x38, 0x8f, 0x4f, 0x30, 0x74,
0xbf, 0x06, 0xb2, 0x9f, 0x61, 0xc0, 0xf1, 0x1f, 0x50, 0x5f, 0x49, 0x63, 0xad, 0x5b, 0x69, 0xec,
0xff, 0x30, 0xae, 0x84, 0x56, 0x2c, 0x20, 0x32, 0x9e, 0xce, 0xa3, 0xff, 0x2a, 0x63, 0x25, 0xb4,
0xce, 0xf8, 0x9b, 0x05, 0xe4, 0x40, 0xc2, 0xf4, 0xdf, 0xf1, 0x7b, 0x8d, 0x77, 0xda, 0x75, 0xde,
0x79, 0x08, 0x6b, 0xc2, 0x45, 0xdd, 0x94, 0x28, 0xe0, 0x81, 0x26, 0xcf, 0x21, 0x65, 0xaa, 0x84,
0x83, 0x80, 0x07, 0x3a, 0x50, 0x86, 0x61, 0x9e, 0x09, 0x3e, 0x95, 0xb8, 0x90, 0x81, 0xbc, 0x42,
0x25, 0x7a, 0xa9, 0xd4, 0xac, 0x7b, 0xf9, 0xc5, 0x82, 0xf1, 0x0b, 0xc6, 0xe8, 0x45, 0xf2, 0x55,
0x1a, 0xe7, 0x33, 0x2c, 0x9a, 0xd9, 0x80, 0x6e, 0x98, 0xe6, 0x09, 0x97, 0x8d, 0x74, 0x3d, 0x25,
0x2c, 0xc1, 0xa2, 0x55, 0x83, 0xc5, 0x12, 0xb0, 0xda, 0x75, 0x60, 0x19, 0xc0, 0xe9, 0x98, 0xc0,
0x21, 0x1f, 0xc2, 0x40, 0xb4, 0xe7, 0x87, 0x98, 0x70, 0xcc, 0xf4, 0x3d, 0x04, 0xa1, 0xda, 0x97,
0x1a, 0xf7, 0x0a, 0x36, 0xaa, 0x85, 0xea, 0x57, 0xe0, 0x46, 0x56, 0x10, 0xb7, 0x26, 0x8b, 0x75,
0x95, 0x62, 0x49, 0xb6, 0x00, 0xe6, 0xf9, 0x59, 0x4c, 0x43, 0x5f, 0x18, 0x54, 0x75, 0xb6, 0xd2,
0x9c, 0x66, 0xf1, 0xa2, 0xe7, 0x8e, 0xd1, 0xb3, 0xfb, 0x19, 0x8c, 0xd5, 0x23, 0x5c, 0x1d, 0xd0,
0x16, 0xc0, 0x95, 0x54, 0xf8, 0x34, 0x52, 0xef, 0x8f, 0xed, 0xd9, 0x4a, 0xf3, 0x32, 0x62, 0xee,
0x17, 0x60, 0x1f, 0xa7, 0xaa, 0x67, 0x46, 0x9e, 0x80, 0x1d, 0x17, 0x82, 0x7e, 0xaa, 0xc8, 0x02,
0x72, 0x85, 0x9f, 0xb7, 0x70, 0x72, 0x9f, 0x43, 0xbf, 0x50, 0x17, 0x7d, 0x58, 0x37, 0xf5, 0xd1,
0x5a, 0xea, 0xc3, 0xfd, 0xc3, 0x82, 0x8d, 0x6a, 0xc9, 0x7a, 0x54, 0xa7, 0x30, 0x2a, 0x53, 0xf8,
0xb3, 0x60, 0xae, 0x6b, 0x79, 0x62, 0xd6, 0x52, 0xdf, 0x56, 0x16, 0xc8, 0x5e, 0x05, 0x73, 0x85,
0x9e, 0x61, 0x6c, 0xa8, 0x26, 0x6f, 0x61, 0xbd, 0xe6, 0xd2, 0xf0, 0xfa, 0x3c, 0x36, 0x5f, 0x9f,
0xca, 0x0b, 0x5a, 0xee, 0x36, 0x9f, 0xa4, 0x67, 0x70, 0x57, 0x01, 0x76, 0xbf, 0xc4, 0x57, 0x31,
0xfb, 0x2a, 0x0c, 0xad, 0x65, 0x18, 0xba, 0x13, 0x70, 0xea, 0x5b, 0x55, 0x33, 0x7b, 0xbf, 0x76,
0x61, 0x78, 0x82, 0xc1, 0x35, 0x62, 0x24, 0x08, 0x3c, 0x23, 0x17, 0xc5, 0xb0, 0xaa, 0x1f, 0x59,
0xe4, 0xd1, 0xf2, 0x54, 0x1a, 0xbf, 0xea, 0x26, 0x1f, 0xff, 0x95, 0x9b, 0xbe, 0x68, 0x2b, 0xe4,
0x18, 0x06, 0xc6, 0x57, 0x0c, 0xd9, 0x34, 0x36, 0xd6, 0x3e, 0xce, 0x26, 0x5b, 0x37, 0x58, 0xcd,
0x68, 0x06, 0x1b, 0x9a, 0xd1, 0xea, 0xfc, 0x6b, 0x46, 0x6b, 0xa2, 0x50, 0x19, 0xcd, 0x60, 0x3a,
0x33, 0x5a, 0x9d, 0x5b, 0xcd, 0x68, 0x4d, 0xf4, 0x28, 0xa3, 0x19, 0x5c, 0x63, 0x46, 0xab, 0xd3,
0xa6, 0x19, 0xad, 0x89, 0xa0, 0x56, 0xc8, 0x1b, 0x18, 0x9a, 0x17, 0x9f, 0x18, 0x1b, 0x1a, 0x98,
0x6b, 0x72, 0xff, 0x26, 0xb3, 0x19, 0xd0, 0xc4, 0xb9, 0x19, 0xb0, 0xe1, 0xa6, 0x9b, 0x01, 0x9b,
0xae, 0x87, 0xbb, 0x42, 0xbe, 0x81, 0x3b, 0xcb, 0x78, 0x23, 0x0f, 0x96, 0xdb, 0xaa, 0xc1, 0x78,
0xe2, 0xde, 0xe6, 0x52, 0x04, 0x3f, 0xeb, 0xc9, 0xdf, 0x8c, 0x4f, 0xff, 0x0c, 0x00, 0x00, 0xff,
0xff, 0x04, 0x12, 0x06, 0xcd, 0x75, 0x0c, 0x00, 0x00,
}

19
weed/server/filer_grpc_server.go

@ -78,25 +78,6 @@ func (fs *FilerServer) ListEntries(ctx context.Context, req *filer_pb.ListEntrie
return resp, nil
}
func (fs *FilerServer) GetEntryAttributes(ctx context.Context, req *filer_pb.GetEntryAttributesRequest) (*filer_pb.GetEntryAttributesResponse, error) {
fullpath := filer2.NewFullPath(req.ParentDir, req.Name)
entry, err := fs.filer.FindEntry(fullpath)
if err != nil {
return nil, fmt.Errorf("FindEntry %s: %v", fullpath, err)
}
attributes := filer2.EntryAttributeToPb(entry)
glog.V(3).Infof("GetEntryAttributes %v size %d chunks %d: %+v", fullpath, attributes.FileSize, len(entry.Chunks), attributes)
return &filer_pb.GetEntryAttributesResponse{
Attributes: attributes,
Chunks: entry.Chunks,
}, nil
}
func (fs *FilerServer) LookupVolume(ctx context.Context, req *filer_pb.LookupVolumeRequest) (*filer_pb.LookupVolumeResponse, error) {
resp := &filer_pb.LookupVolumeResponse{

Loading…
Cancel
Save