Browse Source

replicate need to include new entry path

pull/934/head
Chris Lu 6 years ago
parent
commit
b3b42bc947
  1. 6
      other/java/client/src/main/proto/filer.proto
  2. 13
      weed/filer2/entry.go
  3. 12
      weed/filer2/filer_notify.go
  4. 6
      weed/pb/filer.proto
  5. 259
      weed/pb/filer_pb/filer.pb.go
  6. 150
      weed/pb/volume_server_pb/volume_server.pb.go
  7. 8
      weed/replication/replicator.go
  8. 2
      weed/replication/sink/azuresink/azure_sink.go
  9. 2
      weed/replication/sink/b2sink/b2_sink.go
  10. 4
      weed/replication/sink/filersink/filer_sink.go
  11. 2
      weed/replication/sink/gcssink/gcs_sink.go
  12. 2
      weed/replication/sink/replication_sink.go
  13. 2
      weed/replication/sink/s3sink/s3_sink.go

6
other/java/client/src/main/proto/filer.proto

@ -72,10 +72,16 @@ message Entry {
map<string, bytes> extended = 5; map<string, bytes> extended = 5;
} }
message FullEntry {
string dir = 1;
Entry entry = 2;
}
message EventNotification { message EventNotification {
Entry old_entry = 1; Entry old_entry = 1;
Entry new_entry = 2; Entry new_entry = 2;
bool delete_chunks = 3; bool delete_chunks = 3;
string new_parent_path = 4;
} }
message FileChunk { message FileChunk {

13
weed/filer2/entry.go

@ -52,9 +52,20 @@ func (entry *Entry) ToProtoEntry() *filer_pb.Entry {
return nil return nil
} }
return &filer_pb.Entry{ return &filer_pb.Entry{
Name: string(entry.FullPath),
Name: entry.FullPath.Name(),
IsDirectory: entry.IsDirectory(), IsDirectory: entry.IsDirectory(),
Attributes: EntryAttributeToPb(entry), Attributes: EntryAttributeToPb(entry),
Chunks: entry.Chunks, Chunks: entry.Chunks,
} }
} }
func (entry *Entry) ToProtoFullEntry() *filer_pb.FullEntry {
if entry == nil {
return nil
}
dir, _ := entry.FullPath.DirAndName()
return &filer_pb.FullEntry{
Dir: dir,
Entry: entry.ToProtoEntry(),
}
}

12
weed/filer2/filer_notify.go

@ -20,12 +20,18 @@ func (f *Filer) NotifyUpdateEvent(oldEntry, newEntry *Entry, deleteChunks bool)
glog.V(3).Infof("notifying entry update %v", key) glog.V(3).Infof("notifying entry update %v", key)
newParentPath := ""
if newEntry != nil {
newParentPath, _ = newEntry.FullPath.DirAndName()
}
notification.Queue.SendMessage( notification.Queue.SendMessage(
key, key,
&filer_pb.EventNotification{ &filer_pb.EventNotification{
OldEntry: oldEntry.ToProtoEntry(),
NewEntry: newEntry.ToProtoEntry(),
DeleteChunks: deleteChunks,
OldEntry: oldEntry.ToProtoEntry(),
NewEntry: newEntry.ToProtoEntry(),
DeleteChunks: deleteChunks,
NewParentPath: newParentPath,
}, },
) )

6
weed/pb/filer.proto

@ -72,10 +72,16 @@ message Entry {
map<string, bytes> extended = 5; map<string, bytes> extended = 5;
} }
message FullEntry {
string dir = 1;
Entry entry = 2;
}
message EventNotification { message EventNotification {
Entry old_entry = 1; Entry old_entry = 1;
Entry new_entry = 2; Entry new_entry = 2;
bool delete_chunks = 3; bool delete_chunks = 3;
string new_parent_path = 4;
} }
message FileChunk { message FileChunk {

259
weed/pb/filer_pb/filer.pb.go

@ -14,6 +14,7 @@ It has these top-level messages:
ListEntriesRequest ListEntriesRequest
ListEntriesResponse ListEntriesResponse
Entry Entry
FullEntry
EventNotification EventNotification
FileChunk FileChunk
FuseAttributes FuseAttributes
@ -210,16 +211,41 @@ func (m *Entry) GetExtended() map[string][]byte {
return nil return nil
} }
type FullEntry struct {
Dir string `protobuf:"bytes,1,opt,name=dir" json:"dir,omitempty"`
Entry *Entry `protobuf:"bytes,2,opt,name=entry" json:"entry,omitempty"`
}
func (m *FullEntry) Reset() { *m = FullEntry{} }
func (m *FullEntry) String() string { return proto.CompactTextString(m) }
func (*FullEntry) ProtoMessage() {}
func (*FullEntry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
func (m *FullEntry) GetDir() string {
if m != nil {
return m.Dir
}
return ""
}
func (m *FullEntry) GetEntry() *Entry {
if m != nil {
return m.Entry
}
return nil
}
type EventNotification struct { type EventNotification struct {
OldEntry *Entry `protobuf:"bytes,1,opt,name=old_entry,json=oldEntry" json:"old_entry,omitempty"`
NewEntry *Entry `protobuf:"bytes,2,opt,name=new_entry,json=newEntry" json:"new_entry,omitempty"`
DeleteChunks bool `protobuf:"varint,3,opt,name=delete_chunks,json=deleteChunks" json:"delete_chunks,omitempty"`
OldEntry *Entry `protobuf:"bytes,1,opt,name=old_entry,json=oldEntry" json:"old_entry,omitempty"`
NewEntry *Entry `protobuf:"bytes,2,opt,name=new_entry,json=newEntry" json:"new_entry,omitempty"`
DeleteChunks bool `protobuf:"varint,3,opt,name=delete_chunks,json=deleteChunks" json:"delete_chunks,omitempty"`
NewParentPath string `protobuf:"bytes,4,opt,name=new_parent_path,json=newParentPath" json:"new_parent_path,omitempty"`
} }
func (m *EventNotification) Reset() { *m = EventNotification{} } func (m *EventNotification) Reset() { *m = EventNotification{} }
func (m *EventNotification) String() string { return proto.CompactTextString(m) } func (m *EventNotification) String() string { return proto.CompactTextString(m) }
func (*EventNotification) ProtoMessage() {} func (*EventNotification) ProtoMessage() {}
func (*EventNotification) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
func (*EventNotification) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
func (m *EventNotification) GetOldEntry() *Entry { func (m *EventNotification) GetOldEntry() *Entry {
if m != nil { if m != nil {
@ -242,6 +268,13 @@ func (m *EventNotification) GetDeleteChunks() bool {
return false return false
} }
func (m *EventNotification) GetNewParentPath() string {
if m != nil {
return m.NewParentPath
}
return ""
}
type FileChunk struct { type FileChunk struct {
FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId" json:"file_id,omitempty"` FileId string `protobuf:"bytes,1,opt,name=file_id,json=fileId" json:"file_id,omitempty"`
Offset int64 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"` Offset int64 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"`
@ -254,7 +287,7 @@ type FileChunk struct {
func (m *FileChunk) Reset() { *m = FileChunk{} } func (m *FileChunk) Reset() { *m = FileChunk{} }
func (m *FileChunk) String() string { return proto.CompactTextString(m) } func (m *FileChunk) String() string { return proto.CompactTextString(m) }
func (*FileChunk) ProtoMessage() {} func (*FileChunk) ProtoMessage() {}
func (*FileChunk) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
func (*FileChunk) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
func (m *FileChunk) GetFileId() string { func (m *FileChunk) GetFileId() string {
if m != nil { if m != nil {
@ -317,7 +350,7 @@ type FuseAttributes struct {
func (m *FuseAttributes) Reset() { *m = FuseAttributes{} } func (m *FuseAttributes) Reset() { *m = FuseAttributes{} }
func (m *FuseAttributes) String() string { return proto.CompactTextString(m) } func (m *FuseAttributes) String() string { return proto.CompactTextString(m) }
func (*FuseAttributes) ProtoMessage() {} func (*FuseAttributes) ProtoMessage() {}
func (*FuseAttributes) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
func (*FuseAttributes) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (m *FuseAttributes) GetFileSize() uint64 { func (m *FuseAttributes) GetFileSize() uint64 {
if m != nil { if m != nil {
@ -418,7 +451,7 @@ type CreateEntryRequest struct {
func (m *CreateEntryRequest) Reset() { *m = CreateEntryRequest{} } func (m *CreateEntryRequest) Reset() { *m = CreateEntryRequest{} }
func (m *CreateEntryRequest) String() string { return proto.CompactTextString(m) } func (m *CreateEntryRequest) String() string { return proto.CompactTextString(m) }
func (*CreateEntryRequest) ProtoMessage() {} func (*CreateEntryRequest) ProtoMessage() {}
func (*CreateEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (*CreateEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
func (m *CreateEntryRequest) GetDirectory() string { func (m *CreateEntryRequest) GetDirectory() string {
if m != nil { if m != nil {
@ -440,7 +473,7 @@ type CreateEntryResponse struct {
func (m *CreateEntryResponse) Reset() { *m = CreateEntryResponse{} } func (m *CreateEntryResponse) Reset() { *m = CreateEntryResponse{} }
func (m *CreateEntryResponse) String() string { return proto.CompactTextString(m) } func (m *CreateEntryResponse) String() string { return proto.CompactTextString(m) }
func (*CreateEntryResponse) ProtoMessage() {} func (*CreateEntryResponse) ProtoMessage() {}
func (*CreateEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
func (*CreateEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
type UpdateEntryRequest struct { type UpdateEntryRequest struct {
Directory string `protobuf:"bytes,1,opt,name=directory" json:"directory,omitempty"` Directory string `protobuf:"bytes,1,opt,name=directory" json:"directory,omitempty"`
@ -450,7 +483,7 @@ type UpdateEntryRequest struct {
func (m *UpdateEntryRequest) Reset() { *m = UpdateEntryRequest{} } func (m *UpdateEntryRequest) Reset() { *m = UpdateEntryRequest{} }
func (m *UpdateEntryRequest) String() string { return proto.CompactTextString(m) } func (m *UpdateEntryRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateEntryRequest) ProtoMessage() {} func (*UpdateEntryRequest) ProtoMessage() {}
func (*UpdateEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
func (*UpdateEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
func (m *UpdateEntryRequest) GetDirectory() string { func (m *UpdateEntryRequest) GetDirectory() string {
if m != nil { if m != nil {
@ -472,7 +505,7 @@ type UpdateEntryResponse struct {
func (m *UpdateEntryResponse) Reset() { *m = UpdateEntryResponse{} } func (m *UpdateEntryResponse) Reset() { *m = UpdateEntryResponse{} }
func (m *UpdateEntryResponse) String() string { return proto.CompactTextString(m) } func (m *UpdateEntryResponse) String() string { return proto.CompactTextString(m) }
func (*UpdateEntryResponse) ProtoMessage() {} func (*UpdateEntryResponse) ProtoMessage() {}
func (*UpdateEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
func (*UpdateEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
type DeleteEntryRequest struct { type DeleteEntryRequest struct {
Directory string `protobuf:"bytes,1,opt,name=directory" json:"directory,omitempty"` Directory string `protobuf:"bytes,1,opt,name=directory" json:"directory,omitempty"`
@ -485,7 +518,7 @@ type DeleteEntryRequest struct {
func (m *DeleteEntryRequest) Reset() { *m = DeleteEntryRequest{} } func (m *DeleteEntryRequest) Reset() { *m = DeleteEntryRequest{} }
func (m *DeleteEntryRequest) String() string { return proto.CompactTextString(m) } func (m *DeleteEntryRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteEntryRequest) ProtoMessage() {} func (*DeleteEntryRequest) ProtoMessage() {}
func (*DeleteEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
func (*DeleteEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
func (m *DeleteEntryRequest) GetDirectory() string { func (m *DeleteEntryRequest) GetDirectory() string {
if m != nil { if m != nil {
@ -521,7 +554,7 @@ type DeleteEntryResponse struct {
func (m *DeleteEntryResponse) Reset() { *m = DeleteEntryResponse{} } func (m *DeleteEntryResponse) Reset() { *m = DeleteEntryResponse{} }
func (m *DeleteEntryResponse) String() string { return proto.CompactTextString(m) } func (m *DeleteEntryResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteEntryResponse) ProtoMessage() {} func (*DeleteEntryResponse) ProtoMessage() {}
func (*DeleteEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
func (*DeleteEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
type AtomicRenameEntryRequest struct { type AtomicRenameEntryRequest struct {
OldDirectory string `protobuf:"bytes,1,opt,name=old_directory,json=oldDirectory" json:"old_directory,omitempty"` OldDirectory string `protobuf:"bytes,1,opt,name=old_directory,json=oldDirectory" json:"old_directory,omitempty"`
@ -533,7 +566,7 @@ type AtomicRenameEntryRequest struct {
func (m *AtomicRenameEntryRequest) Reset() { *m = AtomicRenameEntryRequest{} } func (m *AtomicRenameEntryRequest) Reset() { *m = AtomicRenameEntryRequest{} }
func (m *AtomicRenameEntryRequest) String() string { return proto.CompactTextString(m) } func (m *AtomicRenameEntryRequest) String() string { return proto.CompactTextString(m) }
func (*AtomicRenameEntryRequest) ProtoMessage() {} func (*AtomicRenameEntryRequest) ProtoMessage() {}
func (*AtomicRenameEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
func (*AtomicRenameEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (m *AtomicRenameEntryRequest) GetOldDirectory() string { func (m *AtomicRenameEntryRequest) GetOldDirectory() string {
if m != nil { if m != nil {
@ -569,7 +602,7 @@ type AtomicRenameEntryResponse struct {
func (m *AtomicRenameEntryResponse) Reset() { *m = AtomicRenameEntryResponse{} } func (m *AtomicRenameEntryResponse) Reset() { *m = AtomicRenameEntryResponse{} }
func (m *AtomicRenameEntryResponse) String() string { return proto.CompactTextString(m) } func (m *AtomicRenameEntryResponse) String() string { return proto.CompactTextString(m) }
func (*AtomicRenameEntryResponse) ProtoMessage() {} func (*AtomicRenameEntryResponse) ProtoMessage() {}
func (*AtomicRenameEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (*AtomicRenameEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
type AssignVolumeRequest struct { type AssignVolumeRequest struct {
Count int32 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"` Count int32 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"`
@ -582,7 +615,7 @@ type AssignVolumeRequest struct {
func (m *AssignVolumeRequest) Reset() { *m = AssignVolumeRequest{} } func (m *AssignVolumeRequest) Reset() { *m = AssignVolumeRequest{} }
func (m *AssignVolumeRequest) String() string { return proto.CompactTextString(m) } func (m *AssignVolumeRequest) String() string { return proto.CompactTextString(m) }
func (*AssignVolumeRequest) ProtoMessage() {} func (*AssignVolumeRequest) ProtoMessage() {}
func (*AssignVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (*AssignVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (m *AssignVolumeRequest) GetCount() int32 { func (m *AssignVolumeRequest) GetCount() int32 {
if m != nil { if m != nil {
@ -630,7 +663,7 @@ type AssignVolumeResponse struct {
func (m *AssignVolumeResponse) Reset() { *m = AssignVolumeResponse{} } func (m *AssignVolumeResponse) Reset() { *m = AssignVolumeResponse{} }
func (m *AssignVolumeResponse) String() string { return proto.CompactTextString(m) } func (m *AssignVolumeResponse) String() string { return proto.CompactTextString(m) }
func (*AssignVolumeResponse) ProtoMessage() {} func (*AssignVolumeResponse) ProtoMessage() {}
func (*AssignVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (*AssignVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (m *AssignVolumeResponse) GetFileId() string { func (m *AssignVolumeResponse) GetFileId() string {
if m != nil { if m != nil {
@ -674,7 +707,7 @@ type LookupVolumeRequest struct {
func (m *LookupVolumeRequest) Reset() { *m = LookupVolumeRequest{} } func (m *LookupVolumeRequest) Reset() { *m = LookupVolumeRequest{} }
func (m *LookupVolumeRequest) String() string { return proto.CompactTextString(m) } func (m *LookupVolumeRequest) String() string { return proto.CompactTextString(m) }
func (*LookupVolumeRequest) ProtoMessage() {} func (*LookupVolumeRequest) ProtoMessage() {}
func (*LookupVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (*LookupVolumeRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (m *LookupVolumeRequest) GetVolumeIds() []string { func (m *LookupVolumeRequest) GetVolumeIds() []string {
if m != nil { if m != nil {
@ -690,7 +723,7 @@ type Locations struct {
func (m *Locations) Reset() { *m = Locations{} } func (m *Locations) Reset() { *m = Locations{} }
func (m *Locations) String() string { return proto.CompactTextString(m) } func (m *Locations) String() string { return proto.CompactTextString(m) }
func (*Locations) ProtoMessage() {} func (*Locations) ProtoMessage() {}
func (*Locations) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (*Locations) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
func (m *Locations) GetLocations() []*Location { func (m *Locations) GetLocations() []*Location {
if m != nil { if m != nil {
@ -707,7 +740,7 @@ type Location struct {
func (m *Location) Reset() { *m = Location{} } func (m *Location) Reset() { *m = Location{} }
func (m *Location) String() string { return proto.CompactTextString(m) } func (m *Location) String() string { return proto.CompactTextString(m) }
func (*Location) ProtoMessage() {} func (*Location) ProtoMessage() {}
func (*Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
func (*Location) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
func (m *Location) GetUrl() string { func (m *Location) GetUrl() string {
if m != nil { if m != nil {
@ -730,7 +763,7 @@ type LookupVolumeResponse struct {
func (m *LookupVolumeResponse) Reset() { *m = LookupVolumeResponse{} } func (m *LookupVolumeResponse) Reset() { *m = LookupVolumeResponse{} }
func (m *LookupVolumeResponse) String() string { return proto.CompactTextString(m) } func (m *LookupVolumeResponse) String() string { return proto.CompactTextString(m) }
func (*LookupVolumeResponse) ProtoMessage() {} func (*LookupVolumeResponse) ProtoMessage() {}
func (*LookupVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
func (*LookupVolumeResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
func (m *LookupVolumeResponse) GetLocationsMap() map[string]*Locations { func (m *LookupVolumeResponse) GetLocationsMap() map[string]*Locations {
if m != nil { if m != nil {
@ -746,7 +779,7 @@ type DeleteCollectionRequest struct {
func (m *DeleteCollectionRequest) Reset() { *m = DeleteCollectionRequest{} } func (m *DeleteCollectionRequest) Reset() { *m = DeleteCollectionRequest{} }
func (m *DeleteCollectionRequest) String() string { return proto.CompactTextString(m) } func (m *DeleteCollectionRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteCollectionRequest) ProtoMessage() {} func (*DeleteCollectionRequest) ProtoMessage() {}
func (*DeleteCollectionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
func (*DeleteCollectionRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
func (m *DeleteCollectionRequest) GetCollection() string { func (m *DeleteCollectionRequest) GetCollection() string {
if m != nil { if m != nil {
@ -761,7 +794,7 @@ type DeleteCollectionResponse struct {
func (m *DeleteCollectionResponse) Reset() { *m = DeleteCollectionResponse{} } func (m *DeleteCollectionResponse) Reset() { *m = DeleteCollectionResponse{} }
func (m *DeleteCollectionResponse) String() string { return proto.CompactTextString(m) } func (m *DeleteCollectionResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteCollectionResponse) ProtoMessage() {} func (*DeleteCollectionResponse) ProtoMessage() {}
func (*DeleteCollectionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
func (*DeleteCollectionResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
type StatisticsRequest struct { type StatisticsRequest struct {
Replication string `protobuf:"bytes,1,opt,name=replication" json:"replication,omitempty"` Replication string `protobuf:"bytes,1,opt,name=replication" json:"replication,omitempty"`
@ -772,7 +805,7 @@ type StatisticsRequest struct {
func (m *StatisticsRequest) Reset() { *m = StatisticsRequest{} } func (m *StatisticsRequest) Reset() { *m = StatisticsRequest{} }
func (m *StatisticsRequest) String() string { return proto.CompactTextString(m) } func (m *StatisticsRequest) String() string { return proto.CompactTextString(m) }
func (*StatisticsRequest) ProtoMessage() {} func (*StatisticsRequest) ProtoMessage() {}
func (*StatisticsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
func (*StatisticsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
func (m *StatisticsRequest) GetReplication() string { func (m *StatisticsRequest) GetReplication() string {
if m != nil { if m != nil {
@ -807,7 +840,7 @@ type StatisticsResponse struct {
func (m *StatisticsResponse) Reset() { *m = StatisticsResponse{} } func (m *StatisticsResponse) Reset() { *m = StatisticsResponse{} }
func (m *StatisticsResponse) String() string { return proto.CompactTextString(m) } func (m *StatisticsResponse) String() string { return proto.CompactTextString(m) }
func (*StatisticsResponse) ProtoMessage() {} func (*StatisticsResponse) ProtoMessage() {}
func (*StatisticsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
func (*StatisticsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
func (m *StatisticsResponse) GetReplication() string { func (m *StatisticsResponse) GetReplication() string {
if m != nil { if m != nil {
@ -857,6 +890,7 @@ func init() {
proto.RegisterType((*ListEntriesRequest)(nil), "filer_pb.ListEntriesRequest") proto.RegisterType((*ListEntriesRequest)(nil), "filer_pb.ListEntriesRequest")
proto.RegisterType((*ListEntriesResponse)(nil), "filer_pb.ListEntriesResponse") proto.RegisterType((*ListEntriesResponse)(nil), "filer_pb.ListEntriesResponse")
proto.RegisterType((*Entry)(nil), "filer_pb.Entry") proto.RegisterType((*Entry)(nil), "filer_pb.Entry")
proto.RegisterType((*FullEntry)(nil), "filer_pb.FullEntry")
proto.RegisterType((*EventNotification)(nil), "filer_pb.EventNotification") proto.RegisterType((*EventNotification)(nil), "filer_pb.EventNotification")
proto.RegisterType((*FileChunk)(nil), "filer_pb.FileChunk") proto.RegisterType((*FileChunk)(nil), "filer_pb.FileChunk")
proto.RegisterType((*FuseAttributes)(nil), "filer_pb.FuseAttributes") proto.RegisterType((*FuseAttributes)(nil), "filer_pb.FuseAttributes")
@ -1252,92 +1286,95 @@ var _SeaweedFiler_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("filer.proto", fileDescriptor0) } func init() { proto.RegisterFile("filer.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 1391 bytes of a gzipped FileDescriptorProto
// 1435 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6e, 0xdc, 0x44, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6e, 0xdc, 0x44,
0x14, 0xae, 0xf7, 0x2f, 0xf1, 0xd9, 0xdd, 0x92, 0x4c, 0x02, 0x75, 0x37, 0x49, 0xd9, 0x3a, 0x14,
0xa5, 0xa2, 0x8a, 0xaa, 0xc2, 0x45, 0x4b, 0x85, 0x44, 0x9b, 0xa6, 0x52, 0xa5, 0xb4, 0x45, 0x4e,
0x8b, 0x84, 0x90, 0xb0, 0x1c, 0x7b, 0xb2, 0x1d, 0xc5, 0x6b, 0x2f, 0x9e, 0x71, 0xd2, 0xf2, 0x08,
0xdc, 0x70, 0xc3, 0x15, 0x12, 0x17, 0x5c, 0xf1, 0x16, 0xdc, 0xf0, 0x14, 0xbc, 0x04, 0xcf, 0x80,
0xce, 0xcc, 0xd8, 0x3b, 0x5e, 0x3b, 0x29, 0x08, 0xf5, 0x6e, 0xe6, 0xfc, 0x7e, 0xe7, 0xcc, 0xf9,
0xb1, 0xa1, 0x7f, 0xcc, 0x62, 0x9a, 0xed, 0xce, 0xb2, 0x54, 0xa4, 0x64, 0x59, 0x5e, 0xfc, 0xd9,
0x91, 0xfb, 0x1c, 0x36, 0x0e, 0xd2, 0xf4, 0x24, 0x9f, 0x3d, 0x62, 0x19, 0x0d, 0x45, 0x9a, 0xbd,
0xd9, 0x4f, 0x44, 0xf6, 0xc6, 0xa3, 0xdf, 0xe7, 0x94, 0x0b, 0xb2, 0x09, 0x76, 0x54, 0x30, 0x1c,
0x6b, 0x6c, 0xed, 0xd8, 0xde, 0x9c, 0x40, 0x08, 0x74, 0x92, 0x60, 0x4a, 0x9d, 0x96, 0x64, 0xc8,
0xb3, 0xbb, 0x0f, 0x9b, 0xcd, 0x06, 0xf9, 0x2c, 0x4d, 0x38, 0x25, 0x37, 0xa0, 0x4b, 0x91, 0x20,
0xad, 0xf5, 0xef, 0xbc, 0xb7, 0x5b, 0x40, 0xd9, 0x55, 0x72, 0x8a, 0xeb, 0xfe, 0x61, 0x01, 0x39,
0x60, 0x5c, 0x20, 0x91, 0x51, 0xfe, 0xef, 0xf0, 0x7c, 0x00, 0xbd, 0x59, 0x46, 0x8f, 0xd9, 0x6b,
0x8d, 0x48, 0xdf, 0xc8, 0x2d, 0x58, 0xe5, 0x22, 0xc8, 0xc4, 0xe3, 0x2c, 0x9d, 0x3e, 0x66, 0x31,
0x7d, 0x86, 0xa0, 0xdb, 0x52, 0xa4, 0xce, 0x20, 0xbb, 0x40, 0x58, 0x12, 0xc6, 0x39, 0x67, 0xa7,
0xf4, 0xb0, 0xe0, 0x3a, 0x9d, 0xb1, 0xb5, 0xb3, 0xec, 0x35, 0x70, 0xc8, 0x3a, 0x74, 0x63, 0x36,
0x65, 0xc2, 0xe9, 0x8e, 0xad, 0x9d, 0xa1, 0xa7, 0x2e, 0xee, 0x97, 0xb0, 0x56, 0xc1, 0xaf, 0xc3,
0xbf, 0x09, 0x4b, 0x54, 0x91, 0x1c, 0x6b, 0xdc, 0x6e, 0x4a, 0x40, 0xc1, 0x77, 0x7f, 0x6d, 0x41,
0x57, 0x92, 0xca, 0x3c, 0x5b, 0xf3, 0x3c, 0x93, 0xeb, 0x30, 0x60, 0xdc, 0x9f, 0x27, 0xa3, 0x25,
0xf1, 0xf5, 0x19, 0x2f, 0xf3, 0x4e, 0x3e, 0x81, 0x5e, 0xf8, 0x2a, 0x4f, 0x4e, 0xb8, 0xd3, 0x96,
0xae, 0xd6, 0xe6, 0xae, 0x30, 0xd8, 0x3d, 0xe4, 0x79, 0x5a, 0x84, 0xdc, 0x05, 0x08, 0x84, 0xc8,
0xd8, 0x51, 0x2e, 0x28, 0x97, 0xd1, 0xf6, 0xef, 0x38, 0x86, 0x42, 0xce, 0xe9, 0x83, 0x92, 0xef,
0x19, 0xb2, 0xe4, 0x1e, 0x2c, 0xd3, 0xd7, 0x82, 0x26, 0x11, 0x8d, 0x9c, 0xae, 0x74, 0xb4, 0xb5,
0x10, 0xd3, 0xee, 0xbe, 0xe6, 0xab, 0x08, 0x4b, 0xf1, 0xd1, 0x7d, 0x18, 0x56, 0x58, 0x64, 0x05,
0xda, 0x27, 0xb4, 0x78, 0x59, 0x3c, 0x62, 0x76, 0x4f, 0x83, 0x38, 0x57, 0x45, 0x36, 0xf0, 0xd4,
0xe5, 0xf3, 0xd6, 0x5d, 0xcb, 0xfd, 0xd9, 0x82, 0xd5, 0xfd, 0x53, 0x9a, 0x88, 0x67, 0xa9, 0x60,
0xc7, 0x2c, 0x0c, 0x04, 0x4b, 0x13, 0x72, 0x0b, 0xec, 0x34, 0x8e, 0xfc, 0x0b, 0x6b, 0x6c, 0x39,
0x8d, 0xb5, 0xbf, 0x5b, 0x60, 0x27, 0xf4, 0x4c, 0x4b, 0xb7, 0xce, 0x91, 0x4e, 0xe8, 0x99, 0x92,
0xde, 0x86, 0x61, 0x44, 0x63, 0x2a, 0xa8, 0x5f, 0xe6, 0x15, 0x93, 0x3e, 0x50, 0x44, 0x99, 0x4f,
0xee, 0xfe, 0x66, 0x81, 0x5d, 0xa6, 0x97, 0x5c, 0x81, 0x25, 0x34, 0xe7, 0xb3, 0x48, 0x07, 0xd5,
0xc3, 0xeb, 0x93, 0x08, 0x6b, 0x35, 0x3d, 0x3e, 0xe6, 0x54, 0x48, 0xb7, 0x6d, 0x4f, 0xdf, 0xf0,
0xad, 0x39, 0xfb, 0x41, 0x95, 0x67, 0xc7, 0x93, 0x67, 0xcc, 0xc1, 0x54, 0xb0, 0x29, 0x95, 0xcf,
0xd2, 0xf6, 0xd4, 0x85, 0xac, 0x41, 0x97, 0xfa, 0x22, 0x98, 0xc8, 0xba, 0xb3, 0xbd, 0x0e, 0x7d,
0x11, 0x4c, 0xc8, 0x47, 0x70, 0x99, 0xa7, 0x79, 0x16, 0x52, 0xbf, 0x70, 0xdb, 0x93, 0xdc, 0x81,
0xa2, 0x3e, 0x96, 0xce, 0xdd, 0xbf, 0x5b, 0x70, 0xb9, 0xfa, 0xa2, 0x64, 0x03, 0x6c, 0xa9, 0x21,
0x9d, 0x5b, 0xd2, 0xb9, 0x9c, 0x12, 0x87, 0x15, 0x00, 0x2d, 0x13, 0x40, 0xa1, 0x32, 0x4d, 0x23,
0x85, 0x77, 0xa8, 0x54, 0x9e, 0xa6, 0x11, 0xc5, 0x97, 0xcc, 0x59, 0x24, 0x11, 0x0f, 0x3d, 0x3c,
0x22, 0x65, 0xc2, 0x22, 0xdd, 0x25, 0x78, 0xc4, 0x1c, 0x84, 0x99, 0xb4, 0xdb, 0x53, 0x39, 0x50,
0x37, 0xcc, 0xc1, 0x14, 0xa9, 0x4b, 0x2a, 0x30, 0x3c, 0x93, 0x31, 0xf4, 0x33, 0x3a, 0x8b, 0xf5,
0x33, 0x3b, 0xcb, 0x92, 0x65, 0x92, 0xc8, 0x35, 0x80, 0x30, 0x8d, 0x63, 0x1a, 0x4a, 0x01, 0x5b,
0x0a, 0x18, 0x14, 0x7c, 0x0a, 0x21, 0x62, 0x9f, 0xd3, 0xd0, 0x81, 0xb1, 0xb5, 0xd3, 0xf5, 0x7a,
0x42, 0xc4, 0x87, 0x34, 0xc4, 0x38, 0x72, 0x4e, 0x33, 0x5f, 0xf6, 0x58, 0x5f, 0xea, 0x2d, 0x23,
0x41, 0x4e, 0x83, 0x2d, 0x80, 0x49, 0x96, 0xe6, 0x33, 0xc5, 0x1d, 0x8c, 0xdb, 0x38, 0x72, 0x24,
0x45, 0xb2, 0x6f, 0xc0, 0x65, 0xfe, 0x66, 0x1a, 0xb3, 0xe4, 0xc4, 0x17, 0x41, 0x36, 0xa1, 0xc2,
0x19, 0x4a, 0x03, 0x43, 0x4d, 0x7d, 0x21, 0x89, 0xee, 0x37, 0x40, 0xf6, 0x32, 0x1a, 0x08, 0xfa,
0x1f, 0xa6, 0x6b, 0x39, 0x29, 0x5b, 0x17, 0x4e, 0xca, 0xf7, 0x61, 0xad, 0x62, 0x5a, 0x0d, 0x1a,
0xf4, 0xf8, 0x72, 0x16, 0xbd, 0x2b, 0x8f, 0x15, 0xd3, 0xda, 0xe3, 0x4f, 0x16, 0x90, 0x47, 0xb2,
0x13, 0xfe, 0xdf, 0x0a, 0xc1, 0x1a, 0xc6, 0xd1, 0xa6, 0x3a, 0x2d, 0x0a, 0x44, 0xa0, 0x87, 0xef,
0x80, 0x71, 0x65, 0xff, 0x51, 0x20, 0x02, 0x3d, 0x00, 0x33, 0x1a, 0xe6, 0x19, 0xce, 0x63, 0x59,
0x57, 0x72, 0x00, 0x7a, 0x05, 0x09, 0x81, 0x56, 0x00, 0x69, 0xa0, 0xbf, 0x58, 0xe0, 0x3c, 0x10,
0xe9, 0x94, 0x85, 0x1e, 0x45, 0x87, 0x15, 0xb8, 0xdb, 0x30, 0xc4, 0xf9, 0xb1, 0x08, 0x79, 0x90,
0xc6, 0xd1, 0x7c, 0xb2, 0x5e, 0x05, 0x1c, 0x21, 0xbe, 0x81, 0x7c, 0x29, 0x8d, 0x23, 0x59, 0x10,
0xdb, 0x30, 0xc4, 0x89, 0x32, 0xd7, 0x57, 0x7b, 0x66, 0x90, 0xd0, 0xb3, 0x8a, 0x3e, 0x0a, 0x49,
0xfd, 0x8e, 0xd2, 0x4f, 0xe8, 0x19, 0xea, 0xbb, 0x1b, 0x70, 0xb5, 0x01, 0x9b, 0x46, 0xfe, 0xbb,
0x05, 0x6b, 0x0f, 0x38, 0x67, 0x93, 0xe4, 0xeb, 0x34, 0xce, 0xa7, 0xb4, 0x00, 0xbd, 0x0e, 0xdd,
0x30, 0xcd, 0x13, 0x21, 0xc1, 0x76, 0x3d, 0x75, 0x59, 0x68, 0x88, 0x56, 0xad, 0x21, 0x16, 0x5a,
0xaa, 0x5d, 0x6f, 0x29, 0xa3, 0x65, 0x3a, 0x95, 0x96, 0xf9, 0x10, 0xfa, 0xf8, 0x30, 0x7e, 0x48,
0x13, 0x41, 0x33, 0x3d, 0x81, 0x00, 0x49, 0x7b, 0x92, 0xe2, 0xfe, 0x68, 0xc1, 0x7a, 0x15, 0xa9,
0x5e, 0x80, 0xe7, 0x0e, 0x44, 0x1c, 0x18, 0x59, 0xac, 0x61, 0xe2, 0x11, 0x5b, 0x6f, 0x96, 0x1f,
0xc5, 0x2c, 0xf4, 0x91, 0xa1, 0xe0, 0xd9, 0x8a, 0xf2, 0x32, 0x8b, 0xe7, 0x41, 0x77, 0xcc, 0xa0,
0x09, 0x74, 0x82, 0x5c, 0xbc, 0x2a, 0x86, 0x22, 0x9e, 0xdd, 0xcf, 0x60, 0x4d, 0x7d, 0x93, 0x54,
0xb3, 0xb6, 0x05, 0x70, 0x2a, 0x09, 0x3e, 0x8b, 0xd4, 0x3a, 0xb6, 0x3d, 0x5b, 0x51, 0x9e, 0x44,
0xdc, 0xfd, 0x02, 0xec, 0x83, 0x54, 0x25, 0x82, 0x93, 0xdb, 0x60, 0xc7, 0xc5, 0x45, 0x6f, 0x6e,
0x32, 0x6f, 0x8f, 0x42, 0xce, 0x9b, 0x0b, 0xb9, 0xf7, 0x61, 0xb9, 0x20, 0x17, 0xb1, 0x59, 0xe7,
0xc5, 0xd6, 0x5a, 0x88, 0xcd, 0xfd, 0xd3, 0x82, 0xf5, 0x2a, 0x64, 0x9d, 0xbe, 0x97, 0x30, 0x2c,
0x5d, 0xf8, 0xd3, 0x60, 0xa6, 0xb1, 0xdc, 0x36, 0xb1, 0xd4, 0xd5, 0x4a, 0x80, 0xfc, 0x69, 0x30,
0x53, 0x25, 0x35, 0x88, 0x0d, 0xd2, 0xe8, 0x05, 0xac, 0xd6, 0x44, 0x1a, 0x96, 0xf1, 0x4d, 0x73,
0x19, 0x57, 0x3e, 0x28, 0x4a, 0x6d, 0x73, 0x43, 0xdf, 0x83, 0x2b, 0xaa, 0xff, 0xf6, 0xca, 0xa2,
0x2b, 0x72, 0x5f, 0xad, 0x4d, 0x6b, 0xb1, 0x36, 0xdd, 0x11, 0x38, 0x75, 0x55, 0xdd, 0x05, 0x13,
0x58, 0x3d, 0x14, 0x81, 0x60, 0x5c, 0xb0, 0xb0, 0xfc, 0x32, 0x5c, 0x28, 0x66, 0xeb, 0x6d, 0xfb,
0xa1, 0xde, 0x0e, 0x2b, 0xd0, 0x16, 0xa2, 0xa8, 0x33, 0x3c, 0xe2, 0x2b, 0x10, 0xd3, 0x93, 0x7e,
0x83, 0x77, 0xe0, 0x0a, 0xeb, 0x41, 0xa4, 0x22, 0x88, 0xd5, 0xfe, 0xed, 0xc8, 0xfd, 0x6b, 0x4b,
0x8a, 0x5c, 0xc0, 0x6a, 0x45, 0x45, 0x8a, 0xdb, 0x55, 0xdb, 0x19, 0x09, 0x92, 0xb9, 0x05, 0x20,
0x5b, 0x4a, 0x75, 0x43, 0x4f, 0xe9, 0x22, 0x65, 0x0f, 0x09, 0x77, 0xfe, 0xea, 0xc1, 0xe0, 0x90,
0x06, 0x67, 0x94, 0x46, 0xb8, 0xfe, 0x33, 0x32, 0x29, 0x6a, 0xab, 0xfa, 0x89, 0x4e, 0x6e, 0x2c,
0x16, 0x51, 0xe3, 0x3f, 0xc1, 0xe8, 0xe3, 0xb7, 0x89, 0xe9, 0x67, 0xba, 0x44, 0x0e, 0xa0, 0x6f,
0x7c, 0x03, 0x93, 0x4d, 0x43, 0xb1, 0xf6, 0x69, 0x3f, 0xda, 0x3a, 0x87, 0x6b, 0x5a, 0x33, 0x16,
0x9d, 0x69, 0xad, 0xbe, 0x5a, 0x4d, 0x6b, 0x4d, 0xdb, 0x51, 0x5a, 0x33, 0x96, 0x98, 0x69, 0xad,
0xbe, 0x36, 0x4d, 0x6b, 0x4d, 0x9b, 0x4f, 0x5a, 0x33, 0x36, 0x8d, 0x69, 0xad, 0xbe, 0x11, 0x4d,
0x6b, 0x4d, 0xeb, 0xe9, 0x12, 0xf9, 0x0e, 0x56, 0x6b, 0x3b, 0x80, 0xb8, 0x73, 0xad, 0xf3, 0x96,
0xd7, 0x68, 0xfb, 0x42, 0x99, 0xd2, 0xfe, 0x73, 0x18, 0x98, 0xb3, 0x99, 0x18, 0x80, 0x1a, 0xb6,
0xcb, 0xe8, 0xda, 0x79, 0x6c, 0xd3, 0xa0, 0x39, 0x76, 0x4c, 0x83, 0x0d, 0x83, 0xd7, 0x34, 0xd8,
0x34, 0xad, 0xdc, 0x4b, 0xe4, 0x5b, 0x58, 0x59, 0x6c, 0x7f, 0x72, 0x7d, 0x31, 0x6d, 0xb5, 0xa9,
0x32, 0x72, 0x2f, 0x12, 0x29, 0x8d, 0x3f, 0x01, 0x98, 0x77, 0x35, 0xd9, 0x98, 0xeb, 0xd4, 0xa6,
0xca, 0x68, 0xb3, 0x99, 0x59, 0x98, 0x7a, 0x78, 0x0d, 0x56, 0xb8, 0x6a, 0xad, 0x63, 0xbe, 0x1b,
0xc6, 0x8c, 0x26, 0xe2, 0x21, 0xc8, 0x2e, 0xfb, 0x0a, 0x7f, 0xb4, 0x8f, 0x7a, 0xf2, 0x7f, 0xfb,
0xd3, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xf3, 0x11, 0xc9, 0xda, 0x7e, 0x0f, 0x00, 0x00,
0x14, 0xae, 0xf7, 0x2f, 0xeb, 0xb3, 0xbb, 0x6d, 0x32, 0x09, 0x74, 0xbb, 0x49, 0xca, 0xd6, 0xa1,
0x55, 0x2a, 0xaa, 0xa8, 0x2a, 0x5c, 0xb4, 0x54, 0x48, 0xb4, 0xf9, 0x91, 0x2a, 0xa5, 0x3f, 0x72,
0x5a, 0x24, 0x84, 0x84, 0xe5, 0xd8, 0x93, 0xcd, 0x28, 0xb3, 0xf6, 0xe2, 0x19, 0x27, 0x0d, 0x8f,
0xc0, 0x0d, 0xf7, 0x48, 0x5c, 0x70, 0xc5, 0x4b, 0x20, 0x6e, 0x78, 0x0a, 0x5e, 0x82, 0x67, 0x40,
0x67, 0xc6, 0xf6, 0x8e, 0xd7, 0x9b, 0xb4, 0x08, 0xf5, 0x6e, 0xe6, 0x3b, 0x73, 0xce, 0xf9, 0xe6,
0xcc, 0xf9, 0xb1, 0xa1, 0x73, 0xc4, 0x38, 0x4d, 0xb6, 0x26, 0x49, 0x2c, 0x63, 0xd2, 0x56, 0x1b,
0x6f, 0x72, 0xe8, 0xbc, 0x84, 0xd5, 0xfd, 0x38, 0x3e, 0x49, 0x27, 0x3b, 0x2c, 0xa1, 0x81, 0x8c,
0x93, 0xf3, 0xdd, 0x48, 0x26, 0xe7, 0x2e, 0xfd, 0x21, 0xa5, 0x42, 0x92, 0x35, 0xb0, 0xc3, 0x5c,
0xd0, 0xb7, 0x86, 0xd6, 0xa6, 0xed, 0x4e, 0x01, 0x42, 0xa0, 0x11, 0xf9, 0x63, 0xda, 0xaf, 0x29,
0x81, 0x5a, 0x3b, 0xbb, 0xb0, 0x36, 0xdf, 0xa0, 0x98, 0xc4, 0x91, 0xa0, 0xe4, 0x36, 0x34, 0x29,
0x02, 0xca, 0x5a, 0xe7, 0xc1, 0xb5, 0xad, 0x9c, 0xca, 0x96, 0x3e, 0xa7, 0xa5, 0xce, 0x9f, 0x16,
0x90, 0x7d, 0x26, 0x24, 0x82, 0x8c, 0x8a, 0xf7, 0xe3, 0xf3, 0x31, 0xb4, 0x26, 0x09, 0x3d, 0x62,
0x6f, 0x33, 0x46, 0xd9, 0x8e, 0xdc, 0x83, 0x25, 0x21, 0xfd, 0x44, 0xee, 0x25, 0xf1, 0x78, 0x8f,
0x71, 0xfa, 0x02, 0x49, 0xd7, 0xd5, 0x91, 0xaa, 0x80, 0x6c, 0x01, 0x61, 0x51, 0xc0, 0x53, 0xc1,
0x4e, 0xe9, 0x41, 0x2e, 0xed, 0x37, 0x86, 0xd6, 0x66, 0xdb, 0x9d, 0x23, 0x21, 0x2b, 0xd0, 0xe4,
0x6c, 0xcc, 0x64, 0xbf, 0x39, 0xb4, 0x36, 0x7b, 0xae, 0xde, 0x38, 0x5f, 0xc3, 0x72, 0x89, 0x7f,
0x76, 0xfd, 0xbb, 0xb0, 0x40, 0x35, 0xd4, 0xb7, 0x86, 0xf5, 0x79, 0x01, 0xc8, 0xe5, 0xce, 0xaf,
0x35, 0x68, 0x2a, 0xa8, 0x88, 0xb3, 0x35, 0x8d, 0x33, 0xb9, 0x05, 0x5d, 0x26, 0xbc, 0x69, 0x30,
0x6a, 0x8a, 0x5f, 0x87, 0x89, 0x22, 0xee, 0xe4, 0x33, 0x68, 0x05, 0xc7, 0x69, 0x74, 0x22, 0xfa,
0x75, 0xe5, 0x6a, 0x79, 0xea, 0x0a, 0x2f, 0xbb, 0x8d, 0x32, 0x37, 0x3b, 0x42, 0x1e, 0x02, 0xf8,
0x52, 0x26, 0xec, 0x30, 0x95, 0x54, 0xa8, 0xdb, 0x76, 0x1e, 0xf4, 0x0d, 0x85, 0x54, 0xd0, 0x27,
0x85, 0xdc, 0x35, 0xce, 0x92, 0x47, 0xd0, 0xa6, 0x6f, 0x25, 0x8d, 0x42, 0x1a, 0xf6, 0x9b, 0xca,
0xd1, 0xfa, 0xcc, 0x9d, 0xb6, 0x76, 0x33, 0xb9, 0xbe, 0x61, 0x71, 0x7c, 0xf0, 0x18, 0x7a, 0x25,
0x11, 0x59, 0x84, 0xfa, 0x09, 0xcd, 0x5f, 0x16, 0x97, 0x18, 0xdd, 0x53, 0x9f, 0xa7, 0x3a, 0xc9,
0xba, 0xae, 0xde, 0x7c, 0x59, 0x7b, 0x68, 0x39, 0x3b, 0x60, 0xef, 0xa5, 0x9c, 0x17, 0x8a, 0x21,
0x4b, 0x72, 0xc5, 0x90, 0x25, 0xd3, 0x44, 0xab, 0x5d, 0x9a, 0x68, 0x7f, 0x58, 0xb0, 0xb4, 0x7b,
0x4a, 0x23, 0xf9, 0x22, 0x96, 0xec, 0x88, 0x05, 0xbe, 0x64, 0x71, 0x44, 0xee, 0x81, 0x1d, 0xf3,
0xd0, 0xbb, 0x34, 0x53, 0xdb, 0x31, 0xcf, 0x58, 0xdf, 0x03, 0x3b, 0xa2, 0x67, 0xde, 0xa5, 0xee,
0xda, 0x11, 0x3d, 0xd3, 0xa7, 0x37, 0xa0, 0x17, 0x52, 0x4e, 0x25, 0xf5, 0x8a, 0xd7, 0xc1, 0xa7,
0xeb, 0x6a, 0x70, 0x5b, 0x3f, 0xc7, 0x1d, 0xb8, 0x86, 0x26, 0x27, 0x7e, 0x42, 0x23, 0xe9, 0x4d,
0x7c, 0x79, 0xac, 0xde, 0xc4, 0x76, 0x7b, 0x11, 0x3d, 0x7b, 0xa5, 0xd0, 0x57, 0xbe, 0x3c, 0x76,
0x7e, 0xb3, 0xc0, 0x2e, 0x1e, 0x93, 0x5c, 0x87, 0x05, 0x74, 0xeb, 0xb1, 0x30, 0x8b, 0x44, 0x0b,
0xb7, 0xcf, 0x42, 0xac, 0x8c, 0xf8, 0xe8, 0x48, 0x50, 0xa9, 0xe8, 0xd5, 0xdd, 0x6c, 0x87, 0x99,
0x25, 0xd8, 0x8f, 0xba, 0x18, 0x1a, 0xae, 0x5a, 0x63, 0xc4, 0xc7, 0x92, 0x8d, 0xa9, 0x72, 0x58,
0x77, 0xf5, 0x86, 0x2c, 0x43, 0x93, 0x7a, 0xd2, 0x1f, 0xa9, 0x2c, 0xb7, 0xdd, 0x06, 0x7d, 0xed,
0x8f, 0xc8, 0xa7, 0x70, 0x55, 0xc4, 0x69, 0x12, 0x50, 0x2f, 0x77, 0xdb, 0x52, 0xd2, 0xae, 0x46,
0xf7, 0x94, 0x73, 0xe7, 0x9f, 0x1a, 0x5c, 0x2d, 0xe7, 0x0f, 0x59, 0x05, 0x5b, 0x69, 0x28, 0xe7,
0x96, 0x72, 0xae, 0x7a, 0xd2, 0x41, 0x89, 0x40, 0xcd, 0x24, 0x90, 0xab, 0x8c, 0xe3, 0x50, 0xf3,
0xed, 0x69, 0x95, 0xe7, 0x71, 0x48, 0xf1, 0xf9, 0x53, 0x16, 0x2a, 0xc6, 0x3d, 0x17, 0x97, 0x88,
0x8c, 0x58, 0x98, 0xd5, 0x24, 0x2e, 0x31, 0x06, 0x41, 0xa2, 0xec, 0xb6, 0x74, 0x0c, 0xf4, 0x0e,
0x63, 0x30, 0x46, 0x74, 0x41, 0x5f, 0x0c, 0xd7, 0x64, 0x08, 0x9d, 0x84, 0x4e, 0x78, 0x96, 0x0e,
0xfd, 0xb6, 0x12, 0x99, 0x10, 0xb9, 0x09, 0x10, 0xc4, 0x9c, 0xd3, 0x40, 0x1d, 0xb0, 0xd5, 0x01,
0x03, 0xc1, 0xa7, 0x90, 0x92, 0x7b, 0x82, 0x06, 0x7d, 0x18, 0x5a, 0x9b, 0x4d, 0xb7, 0x25, 0x25,
0x3f, 0xa0, 0x01, 0xde, 0x23, 0x15, 0x34, 0xf1, 0x54, 0x45, 0x77, 0x94, 0x5e, 0x1b, 0x01, 0xd5,
0x7b, 0xd6, 0x01, 0x46, 0x49, 0x9c, 0x4e, 0xb4, 0xb4, 0x3b, 0xac, 0x63, 0x83, 0x53, 0x88, 0x12,
0xdf, 0x86, 0xab, 0xe2, 0x7c, 0xcc, 0x59, 0x74, 0xe2, 0x49, 0x3f, 0x19, 0x51, 0xd9, 0xef, 0xe9,
0xa4, 0xc8, 0xd0, 0xd7, 0x0a, 0x74, 0xbe, 0x05, 0xb2, 0x9d, 0x50, 0x5f, 0xd2, 0xff, 0xd0, 0xcb,
0xdf, 0xb3, 0x5c, 0x3e, 0x82, 0xe5, 0x92, 0x69, 0xdd, 0xd6, 0xd0, 0xe3, 0x9b, 0x49, 0xf8, 0xa1,
0x3c, 0x96, 0x4c, 0x67, 0x1e, 0x7f, 0xb6, 0x80, 0xec, 0xa8, 0x8a, 0xf9, 0x7f, 0x03, 0x0b, 0x73,
0x18, 0x1b, 0xa9, 0xae, 0xc8, 0xd0, 0x97, 0x7e, 0xd6, 0xea, 0xbb, 0x4c, 0x68, 0xfb, 0x3b, 0xbe,
0xf4, 0xb3, 0x76, 0x9b, 0xd0, 0x20, 0x4d, 0xb0, 0xfb, 0xab, 0xbc, 0x52, 0xed, 0xd6, 0xcd, 0x21,
0x24, 0x5a, 0x22, 0x94, 0x11, 0xfd, 0xc5, 0x82, 0xfe, 0x13, 0x19, 0x8f, 0x59, 0xe0, 0x52, 0x74,
0x58, 0xa2, 0xbb, 0x01, 0x3d, 0xec, 0x33, 0xb3, 0x94, 0xbb, 0x31, 0x0f, 0xa7, 0x7d, 0xfc, 0x06,
0x60, 0xab, 0xf1, 0x0c, 0xe6, 0x0b, 0x31, 0x0f, 0x55, 0x42, 0x6c, 0x00, 0xf6, 0x03, 0x43, 0x5f,
0x4f, 0xb5, 0x6e, 0x44, 0xcf, 0x4a, 0xfa, 0x78, 0x48, 0xe9, 0xeb, 0x26, 0xb2, 0x10, 0xd1, 0x33,
0xd4, 0x77, 0x56, 0xe1, 0xc6, 0x1c, 0x6e, 0x19, 0xf3, 0xdf, 0x2d, 0x58, 0x7e, 0x22, 0x04, 0x1b,
0x45, 0xdf, 0xc4, 0x3c, 0x1d, 0xd3, 0x9c, 0xf4, 0x0a, 0x34, 0x83, 0x38, 0x8d, 0xa4, 0x22, 0xdb,
0x74, 0xf5, 0x66, 0xa6, 0x20, 0x6a, 0x95, 0x82, 0x98, 0x29, 0xa9, 0x7a, 0xb5, 0xa4, 0x8c, 0x92,
0x69, 0x94, 0x4a, 0xe6, 0x13, 0xe8, 0xe0, 0xc3, 0x78, 0x01, 0x8d, 0x24, 0x4d, 0xb2, 0x0e, 0x04,
0x08, 0x6d, 0x2b, 0xc4, 0xf9, 0xc9, 0x82, 0x95, 0x32, 0xd3, 0x6c, 0xdc, 0x5e, 0xd8, 0x10, 0xb1,
0x61, 0x24, 0x3c, 0xa3, 0x89, 0x4b, 0x2c, 0xbd, 0x49, 0x7a, 0xc8, 0x59, 0xe0, 0xa1, 0x40, 0xd3,
0xb3, 0x35, 0xf2, 0x26, 0xe1, 0xd3, 0x4b, 0x37, 0xcc, 0x4b, 0x13, 0x68, 0xf8, 0xa9, 0x3c, 0xce,
0x9b, 0x22, 0xae, 0x9d, 0x2f, 0x60, 0x59, 0x7f, 0x01, 0x95, 0xa3, 0xb6, 0x0e, 0x70, 0xaa, 0x00,
0x8f, 0x85, 0x7a, 0xf8, 0xdb, 0xae, 0xad, 0x91, 0x67, 0xa1, 0x70, 0xbe, 0x02, 0x7b, 0x3f, 0xd6,
0x81, 0x10, 0xe4, 0x3e, 0xd8, 0x3c, 0xdf, 0x64, 0xdf, 0x09, 0x64, 0x5a, 0x1e, 0xf9, 0x39, 0x77,
0x7a, 0xc8, 0x79, 0x0c, 0xed, 0x1c, 0xce, 0xef, 0x66, 0x5d, 0x74, 0xb7, 0xda, 0xcc, 0xdd, 0x9c,
0xbf, 0x2c, 0x58, 0x29, 0x53, 0xce, 0xc2, 0xf7, 0x06, 0x7a, 0x85, 0x0b, 0x6f, 0xec, 0x4f, 0x32,
0x2e, 0xf7, 0x4d, 0x2e, 0x55, 0xb5, 0x82, 0xa0, 0x78, 0xee, 0x4f, 0x74, 0x4a, 0x75, 0xb9, 0x01,
0x0d, 0x5e, 0xc3, 0x52, 0xe5, 0xc8, 0x9c, 0xd1, 0x7f, 0xd7, 0x1c, 0xfd, 0xa5, 0xcf, 0x97, 0x42,
0xdb, 0xfc, 0x1e, 0x78, 0x04, 0xd7, 0x75, 0xfd, 0x6d, 0x17, 0x49, 0x97, 0xc7, 0xbe, 0x9c, 0x9b,
0xd6, 0x6c, 0x6e, 0x3a, 0x03, 0xe8, 0x57, 0x55, 0xb3, 0x2a, 0x18, 0xc1, 0xd2, 0x81, 0xf4, 0x25,
0x13, 0x92, 0x05, 0xc5, 0x77, 0xe8, 0x4c, 0x32, 0x5b, 0xef, 0x9a, 0x0f, 0xd5, 0x72, 0x58, 0x84,
0xba, 0x94, 0x79, 0x9e, 0xe1, 0x12, 0x5f, 0x81, 0x98, 0x9e, 0xb2, 0x37, 0xf8, 0x00, 0xae, 0x30,
0x1f, 0x64, 0x2c, 0x7d, 0xae, 0xe7, 0x6f, 0x43, 0xcd, 0x5f, 0x5b, 0x21, 0x6a, 0x00, 0xeb, 0x11,
0x15, 0x6a, 0x69, 0x53, 0x4f, 0x67, 0x04, 0x94, 0x70, 0x1d, 0x40, 0x95, 0x94, 0xae, 0x86, 0x96,
0xd6, 0x45, 0x64, 0x1b, 0x81, 0x07, 0x7f, 0xb7, 0xa0, 0x7b, 0x40, 0xfd, 0x33, 0x4a, 0x43, 0x1c,
0xff, 0x09, 0x19, 0xe5, 0xb9, 0x55, 0xfe, 0x21, 0x20, 0xb7, 0x67, 0x93, 0x68, 0xee, 0x1f, 0xc8,
0xe0, 0xce, 0xbb, 0x8e, 0x65, 0xcf, 0x74, 0x85, 0xec, 0x43, 0xc7, 0xf8, 0xe2, 0x26, 0x6b, 0x86,
0x62, 0xe5, 0x47, 0x62, 0xb0, 0x7e, 0x81, 0xd4, 0xb4, 0x66, 0x0c, 0x3a, 0xd3, 0x5a, 0x75, 0xb4,
0x9a, 0xd6, 0xe6, 0x4d, 0x47, 0x65, 0xcd, 0x18, 0x62, 0xa6, 0xb5, 0xea, 0xd8, 0x34, 0xad, 0xcd,
0x9b, 0x7c, 0xca, 0x9a, 0x31, 0x69, 0x4c, 0x6b, 0xd5, 0x89, 0x68, 0x5a, 0x9b, 0x37, 0x9e, 0xae,
0x90, 0xef, 0x61, 0xa9, 0x32, 0x03, 0x88, 0x33, 0xd5, 0xba, 0x68, 0x78, 0x0d, 0x36, 0x2e, 0x3d,
0x53, 0xd8, 0x7f, 0x09, 0x5d, 0xb3, 0x37, 0x13, 0x83, 0xd0, 0x9c, 0xe9, 0x32, 0xb8, 0x79, 0x91,
0xd8, 0x34, 0x68, 0xb6, 0x1d, 0xd3, 0xe0, 0x9c, 0xc6, 0x6b, 0x1a, 0x9c, 0xd7, 0xad, 0x9c, 0x2b,
0xe4, 0x3b, 0x58, 0x9c, 0x2d, 0x7f, 0x72, 0x6b, 0x36, 0x6c, 0x95, 0xae, 0x32, 0x70, 0x2e, 0x3b,
0x52, 0x18, 0x7f, 0x06, 0x30, 0xad, 0x6a, 0xb2, 0x3a, 0xd5, 0xa9, 0x74, 0x95, 0xc1, 0xda, 0x7c,
0x61, 0x6e, 0xea, 0xe9, 0x4d, 0x58, 0x14, 0xba, 0xb4, 0x8e, 0xc4, 0x56, 0xc0, 0x19, 0x8d, 0xe4,
0x53, 0x50, 0x55, 0xf6, 0x0a, 0x7f, 0xeb, 0x0f, 0x5b, 0xea, 0xef, 0xfe, 0xf3, 0x7f, 0x03, 0x00,
0x00, 0xff, 0xff, 0x34, 0x05, 0x1f, 0x0d, 0xec, 0x0f, 0x00, 0x00,
} }

150
weed/pb/volume_server_pb/volume_server.pb.go

@ -1441,79 +1441,79 @@ var _VolumeServer_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("volume_server.proto", fileDescriptor0) } func init() { proto.RegisterFile("volume_server.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 1169 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x58, 0x4b, 0x73, 0xdc, 0x44,
0x10, 0xb6, 0xb2, 0xbb, 0x7e, 0xf4, 0xae, 0xe3, 0x65, 0xfc, 0x92, 0xe5, 0x60, 0x36, 0x03, 0x4e,
0xd6, 0x89, 0x63, 0xc0, 0x29, 0x20, 0xe1, 0x04, 0xd8, 0xa4, 0xf0, 0x21, 0xa4, 0x4a, 0x26, 0x29,
0xaa, 0xa0, 0x4a, 0x35, 0x96, 0x66, 0x6d, 0x95, 0xb5, 0x1a, 0x45, 0x1a, 0x39, 0x31, 0x7f, 0x87,
0x1b, 0x57, 0xae, 0xfc, 0x17, 0x7e, 0x08, 0x17, 0x6a, 0x1e, 0x92, 0x57, 0x8f, 0xcd, 0x8a, 0xc7,
0x6d, 0xd4, 0xd3, 0xfd, 0x75, 0xf7, 0x4c, 0x77, 0xcf, 0x57, 0x82, 0xd5, 0x2b, 0x16, 0xa4, 0x63,
0xea, 0x24, 0x34, 0xbe, 0xa2, 0xf1, 0x41, 0x14, 0x33, 0xce, 0x50, 0xbf, 0x20, 0x74, 0xa2, 0x33,
0xfc, 0x31, 0xa0, 0x6f, 0x08, 0x77, 0x2f, 0x8e, 0x69, 0x40, 0x39, 0xb5, 0xe9, 0xeb, 0x94, 0x26,
0x1c, 0x6d, 0xc1, 0xe2, 0xc8, 0x0f, 0xa8, 0xe3, 0x7b, 0x89, 0x69, 0x0c, 0x5a, 0xc3, 0x25, 0x7b,
0x41, 0x7c, 0x9f, 0x78, 0x09, 0x7e, 0x01, 0xab, 0x05, 0x83, 0x24, 0x62, 0x61, 0x42, 0xd1, 0x13,
0x58, 0x88, 0x69, 0x92, 0x06, 0x5c, 0x19, 0x74, 0x0f, 0x77, 0x0e, 0xca, 0xbe, 0x0e, 0x72, 0x93,
0x34, 0xe0, 0x76, 0xa6, 0x8e, 0x7d, 0xe8, 0x4d, 0x6e, 0xa0, 0x4d, 0x58, 0xd0, 0xbe, 0x4d, 0x63,
0x60, 0x0c, 0x97, 0xec, 0x79, 0xe5, 0x1a, 0x6d, 0xc0, 0x7c, 0xc2, 0x09, 0x4f, 0x13, 0xf3, 0xd6,
0xc0, 0x18, 0x76, 0x6c, 0xfd, 0x85, 0xd6, 0xa0, 0x43, 0xe3, 0x98, 0xc5, 0x66, 0x4b, 0xaa, 0xab,
0x0f, 0x84, 0xa0, 0x9d, 0xf8, 0xbf, 0x50, 0xb3, 0x3d, 0x30, 0x86, 0xcb, 0xb6, 0x5c, 0xe3, 0x05,
0xe8, 0x7c, 0x3b, 0x8e, 0xf8, 0x35, 0xfe, 0x02, 0xcc, 0x57, 0xc4, 0x4d, 0xd3, 0xf1, 0x2b, 0x19,
0xe3, 0xd1, 0x05, 0x75, 0x2f, 0xb3, 0xdc, 0xb7, 0x61, 0x49, 0x47, 0xae, 0x23, 0x58, 0xb6, 0x17,
0x95, 0xe0, 0xc4, 0xc3, 0x5f, 0xc1, 0x56, 0x8d, 0xa1, 0x3e, 0x83, 0x0f, 0x61, 0xf9, 0x9c, 0xc4,
0x67, 0xe4, 0x9c, 0x3a, 0x31, 0xe1, 0x3e, 0x93, 0xd6, 0x86, 0xdd, 0xd3, 0x42, 0x5b, 0xc8, 0xf0,
0x4f, 0x60, 0x15, 0x10, 0xd8, 0x38, 0x22, 0x2e, 0x6f, 0xe2, 0x1c, 0x0d, 0xa0, 0x1b, 0xc5, 0x94,
0x04, 0x01, 0x73, 0x09, 0xa7, 0xf2, 0x14, 0x5a, 0xf6, 0xa4, 0x08, 0xbf, 0x0f, 0xdb, 0xb5, 0xe0,
0x2a, 0x40, 0xfc, 0xa4, 0x14, 0x3d, 0x1b, 0x8f, 0xfd, 0x46, 0xae, 0xf1, 0x9d, 0x4a, 0xd4, 0xd2,
0x52, 0xe3, 0x3e, 0x2d, 0xed, 0x06, 0x94, 0x84, 0x69, 0xd4, 0x08, 0xb8, 0x1c, 0x71, 0x66, 0x9a,
0x23, 0x6f, 0xaa, 0xe2, 0x38, 0x62, 0x41, 0x40, 0x5d, 0xee, 0xb3, 0x30, 0x83, 0xdd, 0x01, 0x70,
0x73, 0xa1, 0x2e, 0x95, 0x09, 0x09, 0xb6, 0xc0, 0xac, 0x9a, 0x6a, 0xd8, 0xdf, 0x0c, 0x58, 0xff,
0x5a, 0x1f, 0x9a, 0x72, 0xdc, 0xe8, 0x02, 0x8a, 0x2e, 0x6f, 0x95, 0x5d, 0x96, 0x2f, 0xa8, 0x55,
0xb9, 0x20, 0xa1, 0x11, 0xd3, 0x28, 0xf0, 0x5d, 0x22, 0x21, 0xda, 0x12, 0x62, 0x52, 0x84, 0xfa,
0xd0, 0xe2, 0x3c, 0x30, 0x3b, 0x72, 0x47, 0x2c, 0xb1, 0x09, 0x1b, 0xe5, 0x58, 0x75, 0x1a, 0x9f,
0xc3, 0xa6, 0x92, 0x9c, 0x5e, 0x87, 0xee, 0xa9, 0xec, 0x86, 0x46, 0x87, 0xfe, 0x97, 0x01, 0x66,
0xd5, 0x50, 0x57, 0xf1, 0x7f, 0x3d, 0x81, 0x7f, 0x9a, 0x1f, 0xfa, 0x00, 0xba, 0x9c, 0xf8, 0x81,
0xc3, 0x46, 0xa3, 0x84, 0x72, 0x73, 0x7e, 0x60, 0x0c, 0xdb, 0x36, 0x08, 0xd1, 0x0b, 0x29, 0x41,
0x7b, 0xd0, 0x77, 0x55, 0x25, 0x3b, 0x31, 0xbd, 0xf2, 0x13, 0x81, 0xbc, 0x20, 0x03, 0x5b, 0x71,
0xb3, 0x0a, 0x57, 0x62, 0x84, 0x61, 0xd9, 0xf7, 0xde, 0x3a, 0x72, 0x80, 0xc8, 0xf6, 0x5f, 0x94,
0x68, 0x5d, 0xdf, 0x7b, 0xfb, 0xcc, 0x0f, 0xe8, 0xa9, 0x98, 0x02, 0xdf, 0xc1, 0xaa, 0x4a, 0xfe,
0x19, 0x0b, 0x02, 0xf6, 0xa6, 0xd1, 0xcd, 0xaf, 0x41, 0x27, 0xf1, 0x43, 0x57, 0x35, 0x5d, 0xdb,
0x56, 0x1f, 0xf8, 0x29, 0xac, 0x15, 0x91, 0xf4, 0x11, 0xde, 0x85, 0x9e, 0x8c, 0xc0, 0x65, 0x21,
0xa7, 0x21, 0x97, 0x68, 0x3d, 0xbb, 0x2b, 0x64, 0x47, 0x4a, 0x84, 0x3f, 0x05, 0xa4, 0x4c, 0x9f,
0xb3, 0x34, 0x6c, 0xd6, 0x83, 0xeb, 0x59, 0xdc, 0xda, 0x44, 0x17, 0xc1, 0xe3, 0x2c, 0x88, 0x97,
0xe1, 0xb8, 0x31, 0xd6, 0x26, 0xac, 0x97, 0x8c, 0x34, 0xda, 0x61, 0xe6, 0xa4, 0xf8, 0x20, 0xbc,
0x13, 0x6c, 0x23, 0x8b, 0xa0, 0xf8, 0x26, 0xe0, 0xdf, 0x0d, 0xd8, 0xb0, 0xf5, 0xd5, 0xff, 0xcf,
0x6d, 0x36, 0x59, 0x64, 0xad, 0xa9, 0x45, 0xd6, 0xbe, 0x29, 0xb2, 0x21, 0xf4, 0x13, 0x96, 0xc6,
0x2e, 0x75, 0x3c, 0xc2, 0x89, 0x13, 0x32, 0x8f, 0xea, 0x1a, 0xbc, 0xad, 0xe4, 0xc7, 0x84, 0x93,
0xef, 0x99, 0x47, 0xf1, 0x16, 0x6c, 0x56, 0x82, 0xd6, 0x09, 0x85, 0xb0, 0x72, 0xc4, 0xa2, 0x6b,
0x51, 0x49, 0x0d, 0x13, 0xe9, 0xfa, 0x89, 0x93, 0x15, 0xa4, 0xcc, 0x64, 0xd1, 0x5e, 0xf2, 0x93,
0x13, 0x55, 0x8d, 0x7a, 0xdf, 0x23, 0x5c, 0xed, 0xb7, 0xb2, 0xfd, 0x63, 0xc2, 0xc5, 0x3e, 0xfe,
0x0c, 0xfa, 0x37, 0xfe, 0x9a, 0xd7, 0xd6, 0x97, 0xb0, 0x6d, 0x53, 0xe2, 0xe9, 0xd2, 0x14, 0x65,
0xdf, 0x7c, 0x34, 0xfc, 0x69, 0xc0, 0x9d, 0x7a, 0xe3, 0x26, 0xe3, 0x61, 0x1f, 0x50, 0xde, 0x7e,
0xdc, 0x1f, 0xd3, 0x84, 0x93, 0x71, 0xa4, 0x7b, 0xa6, 0xaf, 0x7b, 0xf0, 0x87, 0x4c, 0x5e, 0x6d,
0xd6, 0x56, 0xa5, 0x59, 0x05, 0x62, 0x76, 0x3e, 0x13, 0x88, 0x6d, 0x85, 0xe8, 0xa9, 0x73, 0x2a,
0x20, 0xe6, 0xda, 0x12, 0xb1, 0xa3, 0x10, 0xb5, 0xa2, 0x6c, 0xff, 0x1f, 0x01, 0x8e, 0xfd, 0xe4,
0x52, 0xa5, 0x25, 0x2a, 0xc5, 0xf3, 0x63, 0xfd, 0x7c, 0x88, 0xa5, 0x90, 0x90, 0x20, 0xd0, 0x41,
0x8b, 0xa5, 0xa0, 0x12, 0x69, 0x42, 0x3d, 0x1d, 0x9e, 0x5c, 0x0b, 0xd9, 0x28, 0xa6, 0x54, 0x47,
0x22, 0xd7, 0xf8, 0x57, 0x03, 0x96, 0x9e, 0xd3, 0xb1, 0x46, 0xde, 0x01, 0x38, 0x67, 0x31, 0x4b,
0xb9, 0x1f, 0xd2, 0x44, 0x3a, 0xe8, 0xd8, 0x13, 0x92, 0x7f, 0xef, 0x47, 0x52, 0x1b, 0x1a, 0x8c,
0x74, 0x72, 0x72, 0x2d, 0x64, 0x17, 0x94, 0x44, 0x7a, 0x7a, 0xca, 0xb5, 0x1c, 0x5a, 0x9c, 0xb8,
0x97, 0x72, 0x58, 0x8a, 0xa1, 0x25, 0x3e, 0x0e, 0xff, 0xe8, 0x41, 0x4f, 0x0f, 0x7f, 0xc9, 0xcc,
0xd0, 0xcf, 0xd0, 0x9d, 0x60, 0x74, 0xe8, 0xa3, 0x2a, 0x71, 0xab, 0x32, 0x44, 0x6b, 0x77, 0x86,
0x96, 0xee, 0x98, 0x39, 0x14, 0xc2, 0x7b, 0x15, 0xc6, 0x84, 0x1e, 0x54, 0xad, 0xa7, 0xf1, 0x31,
0xeb, 0x61, 0x23, 0xdd, 0xdc, 0x1f, 0x87, 0xd5, 0x1a, 0x0a, 0x84, 0xf6, 0x67, 0xa0, 0x14, 0x68,
0x98, 0xf5, 0xa8, 0xa1, 0x76, 0xee, 0xf5, 0x35, 0xa0, 0x2a, 0x3f, 0x42, 0x0f, 0x67, 0xc2, 0xdc,
0xf0, 0x2f, 0x6b, 0xbf, 0x99, 0xf2, 0xd4, 0x44, 0x15, 0x73, 0x9a, 0x99, 0x68, 0x81, 0x9b, 0xcd,
0x4c, 0xb4, 0x44, 0xc7, 0xe6, 0xd0, 0x25, 0xf4, 0xcb, 0xac, 0x0a, 0xed, 0x4d, 0xa3, 0xfa, 0x15,
0xd2, 0x66, 0x3d, 0x68, 0xa2, 0x9a, 0x3b, 0xa3, 0x70, 0xbb, 0xc8, 0x7c, 0xd0, 0xfd, 0xaa, 0x7d,
0x2d, 0x8f, 0xb3, 0x86, 0xb3, 0x15, 0x27, 0x73, 0x2a, 0xb3, 0xa1, 0xba, 0x9c, 0xa6, 0x50, 0xad,
0xba, 0x9c, 0xa6, 0x91, 0x2b, 0x3c, 0x87, 0x48, 0xd6, 0x7d, 0x8a, 0x33, 0xa0, 0xdd, 0x69, 0xd6,
0x05, 0x76, 0x62, 0xdd, 0x9b, 0xa5, 0x96, 0x39, 0xf8, 0xc4, 0x10, 0x0d, 0x3d, 0x41, 0x14, 0xea,
0x1a, 0xba, 0x4a, 0x3d, 0xac, 0xdd, 0x19, 0x5a, 0x79, 0x02, 0x67, 0xb0, 0x5c, 0xa0, 0x0e, 0x68,
0x6a, 0x68, 0x45, 0x42, 0x62, 0xdd, 0x9f, 0xa9, 0x97, 0xfb, 0x70, 0xb2, 0x43, 0xd2, 0x33, 0x69,
0x6a, 0x70, 0xc5, 0xa1, 0x74, 0x6f, 0x96, 0x5a, 0xee, 0xe0, 0x02, 0x56, 0x4a, 0x8f, 0x3c, 0xaa,
0xa9, 0x98, 0x7a, 0xf2, 0x62, 0xed, 0x35, 0xd0, 0xcc, 0x3d, 0xbd, 0x81, 0xb5, 0xba, 0xf7, 0x14,
0x3d, 0xaa, 0x03, 0x99, 0xfa, 0x68, 0x5b, 0x07, 0x4d, 0xd5, 0x73, 0xc7, 0x2f, 0x61, 0x31, 0x23,
0x0f, 0xe8, 0x6e, 0xd5, 0xba, 0x44, 0x64, 0x2c, 0xfc, 0x2e, 0x95, 0x9b, 0xe2, 0x3a, 0x9b, 0x97,
0x7f, 0x12, 0x1e, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x6a, 0xdf, 0xd7, 0x82, 0x60, 0x10, 0x00,
0x00,
// 1183 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x58, 0x5b, 0x73, 0xdb, 0xc4,
0x17, 0x8f, 0x6a, 0x3b, 0x89, 0x8f, 0x9d, 0xc6, 0xff, 0xcd, 0x4d, 0x51, 0xda, 0xfc, 0xdd, 0x85,
0xb4, 0x4e, 0x9b, 0x06, 0x48, 0x07, 0x68, 0x79, 0x02, 0x12, 0x3a, 0xe4, 0xa1, 0x74, 0x46, 0xa1,
0x1d, 0x66, 0x60, 0x46, 0xb3, 0x91, 0x36, 0x89, 0x26, 0xb2, 0x56, 0x95, 0x56, 0x69, 0xc3, 0xd7,
0xe1, 0x8d, 0x57, 0x5e, 0xf9, 0x66, 0xcc, 0x30, 0xcc, 0x5e, 0xa4, 0x58, 0x17, 0xd7, 0xe2, 0xf2,
0xb6, 0x3a, 0x7b, 0xce, 0xef, 0x5c, 0xf6, 0x9c, 0xdd, 0x9f, 0x0d, 0x2b, 0x57, 0x2c, 0x48, 0xc7,
0xd4, 0x49, 0x68, 0x7c, 0x45, 0xe3, 0xfd, 0x28, 0x66, 0x9c, 0xa1, 0x41, 0x41, 0xe8, 0x44, 0xa7,
0xf8, 0x23, 0x40, 0x5f, 0x13, 0xee, 0x5e, 0x1c, 0xd1, 0x80, 0x72, 0x6a, 0xd3, 0x37, 0x29, 0x4d,
0x38, 0xda, 0x84, 0xc5, 0x33, 0x3f, 0xa0, 0x8e, 0xef, 0x25, 0xa6, 0x31, 0x6c, 0x8d, 0xba, 0xf6,
0x82, 0xf8, 0x3e, 0xf6, 0x12, 0xfc, 0x12, 0x56, 0x0a, 0x06, 0x49, 0xc4, 0xc2, 0x84, 0xa2, 0xa7,
0xb0, 0x10, 0xd3, 0x24, 0x0d, 0xb8, 0x32, 0xe8, 0x1d, 0x6c, 0xef, 0x97, 0x7d, 0xed, 0xe7, 0x26,
0x69, 0xc0, 0xed, 0x4c, 0x1d, 0xfb, 0xd0, 0x9f, 0xdc, 0x40, 0x1b, 0xb0, 0xa0, 0x7d, 0x9b, 0xc6,
0xd0, 0x18, 0x75, 0xed, 0x79, 0xe5, 0x1a, 0xad, 0xc3, 0x7c, 0xc2, 0x09, 0x4f, 0x13, 0xf3, 0xd6,
0xd0, 0x18, 0x75, 0x6c, 0xfd, 0x85, 0x56, 0xa1, 0x43, 0xe3, 0x98, 0xc5, 0x66, 0x4b, 0xaa, 0xab,
0x0f, 0x84, 0xa0, 0x9d, 0xf8, 0x3f, 0x53, 0xb3, 0x3d, 0x34, 0x46, 0x4b, 0xb6, 0x5c, 0xe3, 0x05,
0xe8, 0x7c, 0x33, 0x8e, 0xf8, 0x35, 0xfe, 0x1c, 0xcc, 0xd7, 0xc4, 0x4d, 0xd3, 0xf1, 0x6b, 0x19,
0xe3, 0xe1, 0x05, 0x75, 0x2f, 0xb3, 0xdc, 0xb7, 0xa0, 0xab, 0x23, 0xd7, 0x11, 0x2c, 0xd9, 0x8b,
0x4a, 0x70, 0xec, 0xe1, 0x2f, 0x61, 0xb3, 0xc6, 0x50, 0xd7, 0xe0, 0x03, 0x58, 0x3a, 0x27, 0xf1,
0x29, 0x39, 0xa7, 0x4e, 0x4c, 0xb8, 0xcf, 0xa4, 0xb5, 0x61, 0xf7, 0xb5, 0xd0, 0x16, 0x32, 0xfc,
0x23, 0x58, 0x05, 0x04, 0x36, 0x8e, 0x88, 0xcb, 0x9b, 0x38, 0x47, 0x43, 0xe8, 0x45, 0x31, 0x25,
0x41, 0xc0, 0x5c, 0xc2, 0xa9, 0xac, 0x42, 0xcb, 0x9e, 0x14, 0xe1, 0xbb, 0xb0, 0x55, 0x0b, 0xae,
0x02, 0xc4, 0x4f, 0x4b, 0xd1, 0xb3, 0xf1, 0xd8, 0x6f, 0xe4, 0x1a, 0xdf, 0xa9, 0x44, 0x2d, 0x2d,
0x35, 0xee, 0xb3, 0xd2, 0x6e, 0x40, 0x49, 0x98, 0x46, 0x8d, 0x80, 0xcb, 0x11, 0x67, 0xa6, 0x39,
0xf2, 0x86, 0x6a, 0x8e, 0x43, 0x16, 0x04, 0xd4, 0xe5, 0x3e, 0x0b, 0x33, 0xd8, 0x6d, 0x00, 0x37,
0x17, 0xea, 0x56, 0x99, 0x90, 0x60, 0x0b, 0xcc, 0xaa, 0xa9, 0x86, 0xfd, 0xd5, 0x80, 0xb5, 0xaf,
0x74, 0xd1, 0x94, 0xe3, 0x46, 0x07, 0x50, 0x74, 0x79, 0xab, 0xec, 0xb2, 0x7c, 0x40, 0xad, 0xca,
0x01, 0x09, 0x8d, 0x98, 0x46, 0x81, 0xef, 0x12, 0x09, 0xd1, 0x96, 0x10, 0x93, 0x22, 0x34, 0x80,
0x16, 0xe7, 0x81, 0xd9, 0x91, 0x3b, 0x62, 0x89, 0x4d, 0x58, 0x2f, 0xc7, 0xaa, 0xd3, 0xf8, 0x0c,
0x36, 0x94, 0xe4, 0xe4, 0x3a, 0x74, 0x4f, 0xe4, 0x34, 0x34, 0x2a, 0xfa, 0x1f, 0x06, 0x98, 0x55,
0x43, 0xdd, 0xc5, 0xff, 0xb6, 0x02, 0x7f, 0x37, 0x3f, 0xf4, 0x7f, 0xe8, 0x71, 0xe2, 0x07, 0x0e,
0x3b, 0x3b, 0x4b, 0x28, 0x37, 0xe7, 0x87, 0xc6, 0xa8, 0x6d, 0x83, 0x10, 0xbd, 0x94, 0x12, 0xb4,
0x0b, 0x03, 0x57, 0x75, 0xb2, 0x13, 0xd3, 0x2b, 0x3f, 0x11, 0xc8, 0x0b, 0x32, 0xb0, 0x65, 0x37,
0xeb, 0x70, 0x25, 0x46, 0x18, 0x96, 0x7c, 0xef, 0x9d, 0x23, 0x2f, 0x10, 0x39, 0xfe, 0x8b, 0x12,
0xad, 0xe7, 0x7b, 0xef, 0x9e, 0xfb, 0x01, 0x3d, 0x11, 0xb7, 0xc0, 0xb7, 0xb0, 0xa2, 0x92, 0x7f,
0xce, 0x82, 0x80, 0xbd, 0x6d, 0x74, 0xf2, 0xab, 0xd0, 0x49, 0xfc, 0xd0, 0x55, 0x43, 0xd7, 0xb6,
0xd5, 0x07, 0x7e, 0x06, 0xab, 0x45, 0x24, 0x5d, 0xc2, 0x7b, 0xd0, 0x97, 0x11, 0xb8, 0x2c, 0xe4,
0x34, 0xe4, 0x12, 0xad, 0x6f, 0xf7, 0x84, 0xec, 0x50, 0x89, 0xf0, 0x27, 0x80, 0x94, 0xe9, 0x0b,
0x96, 0x86, 0xcd, 0x66, 0x70, 0x2d, 0x8b, 0x5b, 0x9b, 0xe8, 0x26, 0x78, 0x92, 0x05, 0xf1, 0x2a,
0x1c, 0x37, 0xc6, 0xda, 0x80, 0xb5, 0x92, 0x91, 0x46, 0x3b, 0xc8, 0x9c, 0x14, 0x1f, 0x84, 0xf7,
0x82, 0xad, 0x67, 0x11, 0x14, 0xdf, 0x04, 0xfc, 0x9b, 0x01, 0xeb, 0xb6, 0x3e, 0xfa, 0xff, 0x78,
0xcc, 0x26, 0x9b, 0xac, 0x35, 0xb5, 0xc9, 0xda, 0x37, 0x4d, 0x36, 0x82, 0x41, 0xc2, 0xd2, 0xd8,
0xa5, 0x8e, 0x47, 0x38, 0x71, 0x42, 0xe6, 0x51, 0xdd, 0x83, 0xb7, 0x95, 0xfc, 0x88, 0x70, 0xf2,
0x1d, 0xf3, 0x28, 0xde, 0x84, 0x8d, 0x4a, 0xd0, 0x3a, 0xa1, 0x10, 0x96, 0x0f, 0x59, 0x74, 0x2d,
0x3a, 0xa9, 0x61, 0x22, 0x3d, 0x3f, 0x71, 0xb2, 0x86, 0x94, 0x99, 0x2c, 0xda, 0x5d, 0x3f, 0x39,
0x56, 0xdd, 0xa8, 0xf7, 0x3d, 0xc2, 0xd5, 0x7e, 0x2b, 0xdb, 0x3f, 0x22, 0x5c, 0xec, 0xe3, 0x4f,
0x61, 0x70, 0xe3, 0xaf, 0x79, 0x6f, 0x7d, 0x01, 0x5b, 0x36, 0x25, 0x9e, 0x6e, 0x4d, 0xd1, 0xf6,
0xcd, 0xaf, 0x86, 0x3f, 0x0d, 0xb8, 0x53, 0x6f, 0xdc, 0xe4, 0x7a, 0xd8, 0x03, 0x94, 0x8f, 0x1f,
0xf7, 0xc7, 0x34, 0xe1, 0x64, 0x1c, 0xe9, 0x99, 0x19, 0xe8, 0x19, 0xfc, 0x3e, 0x93, 0x57, 0x87,
0xb5, 0x55, 0x19, 0x56, 0x81, 0x98, 0xd5, 0x67, 0x02, 0xb1, 0xad, 0x10, 0x3d, 0x55, 0xa7, 0x02,
0x62, 0xae, 0x2d, 0x11, 0x3b, 0x0a, 0x51, 0x2b, 0x4a, 0xc4, 0xbb, 0x00, 0xba, 0x80, 0x69, 0x98,
0xdd, 0x36, 0x5d, 0x55, 0xbe, 0x34, 0xe4, 0xf8, 0x07, 0x80, 0x23, 0x3f, 0xb9, 0x54, 0x59, 0x8b,
0x46, 0xf2, 0xfc, 0x58, 0xbf, 0x2e, 0x62, 0x29, 0x24, 0x24, 0x08, 0x74, 0x4e, 0x62, 0x29, 0x98,
0x46, 0x9a, 0x50, 0x4f, 0x47, 0x2f, 0xd7, 0x42, 0x76, 0x16, 0x53, 0xaa, 0x03, 0x95, 0x6b, 0xfc,
0x8b, 0x01, 0xdd, 0x17, 0x74, 0xac, 0x91, 0xb7, 0x01, 0xce, 0x59, 0xcc, 0x52, 0xee, 0x87, 0x34,
0x91, 0x0e, 0x3a, 0xf6, 0x84, 0xe4, 0x9f, 0xfb, 0x91, 0xcc, 0x87, 0x06, 0x67, 0x3a, 0x77, 0xb9,
0x16, 0xb2, 0x0b, 0x4a, 0x22, 0x9d, 0xae, 0x5c, 0xcb, 0x3b, 0x8d, 0x13, 0xf7, 0x52, 0xde, 0xa5,
0xe2, 0x4e, 0x13, 0x1f, 0x07, 0xbf, 0xf7, 0xa1, 0xaf, 0xdf, 0x06, 0x49, 0xdc, 0xd0, 0x4f, 0xd0,
0x9b, 0x20, 0x7c, 0xe8, 0xc3, 0x2a, 0xaf, 0xab, 0x12, 0x48, 0x6b, 0x67, 0x86, 0x96, 0x1e, 0xa8,
0x39, 0x14, 0xc2, 0xff, 0x2a, 0x84, 0x0a, 0x3d, 0xac, 0x5a, 0x4f, 0xa3, 0x6b, 0xd6, 0xa3, 0x46,
0xba, 0xb9, 0x3f, 0x0e, 0x2b, 0x35, 0x0c, 0x09, 0xed, 0xcd, 0x40, 0x29, 0xb0, 0x34, 0xeb, 0x71,
0x43, 0xed, 0xdc, 0xeb, 0x1b, 0x40, 0x55, 0xfa, 0x84, 0x1e, 0xcd, 0x84, 0xb9, 0xa1, 0x67, 0xd6,
0x5e, 0x33, 0xe5, 0xa9, 0x89, 0x2a, 0x62, 0x35, 0x33, 0xd1, 0x02, 0x75, 0x9b, 0x99, 0x68, 0x89,
0xad, 0xcd, 0xa1, 0x4b, 0x18, 0x94, 0x49, 0x17, 0xda, 0x9d, 0xf6, 0x4b, 0xa0, 0xc2, 0xe9, 0xac,
0x87, 0x4d, 0x54, 0x73, 0x67, 0x14, 0x6e, 0x17, 0x89, 0x11, 0x7a, 0x50, 0xb5, 0xaf, 0xa5, 0x79,
0xd6, 0x68, 0xb6, 0xe2, 0x64, 0x4e, 0x65, 0xb2, 0x54, 0x97, 0xd3, 0x14, 0x26, 0x56, 0x97, 0xd3,
0x34, 0xee, 0x85, 0xe7, 0x10, 0xc9, 0xa6, 0x4f, 0x51, 0x0a, 0xb4, 0x33, 0xcd, 0xba, 0x40, 0x5e,
0xac, 0xfb, 0xb3, 0xd4, 0x32, 0x07, 0x1f, 0x1b, 0x62, 0xa0, 0x27, 0x78, 0x44, 0xdd, 0x40, 0x57,
0x99, 0x89, 0xb5, 0x33, 0x43, 0x2b, 0x4f, 0xe0, 0x14, 0x96, 0x0a, 0xcc, 0x02, 0x4d, 0x0d, 0xad,
0xc8, 0x57, 0xac, 0x07, 0x33, 0xf5, 0x72, 0x1f, 0x4e, 0x56, 0x24, 0x7d, 0x27, 0x4d, 0x0d, 0xae,
0x78, 0x29, 0xdd, 0x9f, 0xa5, 0x96, 0x3b, 0xb8, 0x80, 0xe5, 0x12, 0x07, 0x40, 0x35, 0x1d, 0x53,
0xcf, 0x6d, 0xac, 0xdd, 0x06, 0x9a, 0xb9, 0xa7, 0xb7, 0xb0, 0x5a, 0xf7, 0xdc, 0xa2, 0xc7, 0x75,
0x20, 0x53, 0xdf, 0x74, 0x6b, 0xbf, 0xa9, 0x7a, 0xee, 0xf8, 0x15, 0x2c, 0x66, 0xdc, 0x02, 0xdd,
0xab, 0x5a, 0x97, 0x78, 0x8e, 0x85, 0xdf, 0xa7, 0x72, 0xd3, 0x5c, 0xa7, 0xf3, 0xf2, 0x8f, 0x86,
0x27, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x8c, 0xa8, 0xce, 0x0c, 0x7f, 0x10, 0x00, 0x00,
} }

8
weed/replication/replicator.go

@ -2,6 +2,7 @@ package replication
import ( import (
"context" "context"
"fmt"
"path/filepath" "path/filepath"
"strings" "strings"
@ -51,12 +52,17 @@ func (r *Replicator) Replicate(ctx context.Context, key string, message *filer_p
return nil return nil
} }
foundExisting, err := r.sink.UpdateEntry(ctx, key, message.OldEntry, message.NewEntry, message.DeleteChunks)
foundExisting, err := r.sink.UpdateEntry(ctx, key, message.OldEntry, message.NewParentPath, message.NewEntry, message.DeleteChunks)
if foundExisting { if foundExisting {
glog.V(4).Infof("updated %v", key) glog.V(4).Infof("updated %v", key)
return err return err
} }
err = r.sink.DeleteEntry(ctx, key, message.OldEntry.IsDirectory, false)
if err != nil {
return fmt.Errorf("delete old entry %v: %v", key, err)
}
glog.V(4).Infof("creating missing %v", key) glog.V(4).Infof("creating missing %v", key)
return r.sink.CreateEntry(ctx, key, message.NewEntry) return r.sink.CreateEntry(ctx, key, message.NewEntry)
} }

2
weed/replication/sink/azuresink/azure_sink.go

@ -132,7 +132,7 @@ func (g *AzureSink) CreateEntry(ctx context.Context, key string, entry *filer_pb
} }
func (g *AzureSink) UpdateEntry(ctx context.Context, key string, oldEntry, newEntry *filer_pb.Entry, deleteIncludeChunks bool) (foundExistingEntry bool, err error) {
func (g *AzureSink) UpdateEntry(ctx context.Context, key string, oldEntry *filer_pb.Entry, newParentPath string, newEntry *filer_pb.Entry, deleteIncludeChunks bool) (foundExistingEntry bool, err error) {
key = cleanKey(key) key = cleanKey(key)
// TODO improve efficiency // TODO improve efficiency
return false, nil return false, nil

2
weed/replication/sink/b2sink/b2_sink.go

@ -124,7 +124,7 @@ func (g *B2Sink) CreateEntry(ctx context.Context, key string, entry *filer_pb.En
} }
func (g *B2Sink) UpdateEntry(ctx context.Context, key string, oldEntry, newEntry *filer_pb.Entry, deleteIncludeChunks bool) (foundExistingEntry bool, err error) {
func (g *B2Sink) UpdateEntry(ctx context.Context, key string, oldEntry *filer_pb.Entry, newParentPath string, newEntry *filer_pb.Entry, deleteIncludeChunks bool) (foundExistingEntry bool, err error) {
key = cleanKey(key) key = cleanKey(key)

4
weed/replication/sink/filersink/filer_sink.go

@ -133,7 +133,7 @@ func (fs *FilerSink) CreateEntry(ctx context.Context, key string, entry *filer_p
}) })
} }
func (fs *FilerSink) UpdateEntry(ctx context.Context, key string, oldEntry, newEntry *filer_pb.Entry, deleteIncludeChunks bool) (foundExistingEntry bool, err error) {
func (fs *FilerSink) UpdateEntry(ctx context.Context, key string, oldEntry *filer_pb.Entry, newParentPath string, newEntry *filer_pb.Entry, deleteIncludeChunks bool) (foundExistingEntry bool, err error) {
dir, name := filer2.FullPath(key).DirAndName() dir, name := filer2.FullPath(key).DirAndName()
@ -194,7 +194,7 @@ func (fs *FilerSink) UpdateEntry(ctx context.Context, key string, oldEntry, newE
return true, fs.withFilerClient(ctx, func(client filer_pb.SeaweedFilerClient) error { return true, fs.withFilerClient(ctx, func(client filer_pb.SeaweedFilerClient) error {
request := &filer_pb.UpdateEntryRequest{ request := &filer_pb.UpdateEntryRequest{
Directory: dir,
Directory: newParentPath,
Entry: existingEntry, Entry: existingEntry,
} }

2
weed/replication/sink/gcssink/gcs_sink.go

@ -119,7 +119,7 @@ func (g *GcsSink) CreateEntry(ctx context.Context, key string, entry *filer_pb.E
} }
func (g *GcsSink) UpdateEntry(ctx context.Context, key string, oldEntry, newEntry *filer_pb.Entry, deleteIncludeChunks bool) (foundExistingEntry bool, err error) {
func (g *GcsSink) UpdateEntry(ctx context.Context, key string, oldEntry *filer_pb.Entry, newParentPath string, newEntry *filer_pb.Entry, deleteIncludeChunks bool) (foundExistingEntry bool, err error) {
// TODO improve efficiency // TODO improve efficiency
return false, nil return false, nil
} }

2
weed/replication/sink/replication_sink.go

@ -12,7 +12,7 @@ type ReplicationSink interface {
Initialize(configuration util.Configuration) error Initialize(configuration util.Configuration) error
DeleteEntry(ctx context.Context, key string, isDirectory, deleteIncludeChunks bool) error DeleteEntry(ctx context.Context, key string, isDirectory, deleteIncludeChunks bool) error
CreateEntry(ctx context.Context, key string, entry *filer_pb.Entry) error CreateEntry(ctx context.Context, key string, entry *filer_pb.Entry) error
UpdateEntry(ctx context.Context, key string, oldEntry, newEntry *filer_pb.Entry, deleteIncludeChunks bool) (foundExistingEntry bool, err error)
UpdateEntry(ctx context.Context, key string, oldEntry *filer_pb.Entry, newParentPath string, newEntry *filer_pb.Entry, deleteIncludeChunks bool) (foundExistingEntry bool, err error)
GetSinkToDirectory() string GetSinkToDirectory() string
SetSourceFiler(s *source.FilerSource) SetSourceFiler(s *source.FilerSource)
} }

2
weed/replication/sink/s3sink/s3_sink.go

@ -130,7 +130,7 @@ func (s3sink *S3Sink) CreateEntry(ctx context.Context, key string, entry *filer_
} }
func (s3sink *S3Sink) UpdateEntry(ctx context.Context, key string, oldEntry, newEntry *filer_pb.Entry, deleteIncludeChunks bool) (foundExistingEntry bool, err error) {
func (s3sink *S3Sink) UpdateEntry(ctx context.Context, key string, oldEntry *filer_pb.Entry, newParentPath string, newEntry *filer_pb.Entry, deleteIncludeChunks bool) (foundExistingEntry bool, err error) {
key = cleanKey(key) key = cleanKey(key)
// TODO improve efficiency // TODO improve efficiency
return false, nil return false, nil

Loading…
Cancel
Save