remove filer grpc API GetEntryAttributes

This commit is contained in:
Chris Lu 2018-09-25 09:18:06 -07:00
parent 578f8a6dec
commit 60c1ada4c1
4 changed files with 92 additions and 277 deletions

View file

@ -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
})

View file

@ -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;

View file

@ -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,
}

View file

@ -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{