diff options
Diffstat (limited to 'weed/filer/filer_notify_read.go')
| -rw-r--r-- | weed/filer/filer_notify_read.go | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/weed/filer/filer_notify_read.go b/weed/filer/filer_notify_read.go index 115a925e9..ac2c763e6 100644 --- a/weed/filer/filer_notify_read.go +++ b/weed/filer/filer_notify_read.go @@ -4,15 +4,16 @@ import ( "container/heap" "context" "fmt" - "github.com/seaweedfs/seaweedfs/weed/pb/filer_pb" - "github.com/seaweedfs/seaweedfs/weed/util/log_buffer" - "github.com/seaweedfs/seaweedfs/weed/wdclient" - "google.golang.org/protobuf/proto" "io" "math" "strings" "time" + "github.com/seaweedfs/seaweedfs/weed/pb/filer_pb" + "github.com/seaweedfs/seaweedfs/weed/util/log_buffer" + "github.com/seaweedfs/seaweedfs/weed/wdclient" + "google.golang.org/protobuf/proto" + "github.com/seaweedfs/seaweedfs/weed/glog" "github.com/seaweedfs/seaweedfs/weed/util" ) @@ -39,6 +40,19 @@ func (f *Filer) collectPersistedLogBuffer(startPosition log_buffer.MessagePositi } +func (f *Filer) HasPersistedLogFiles(startPosition log_buffer.MessagePosition) (bool, error) { + startDate := fmt.Sprintf("%04d-%02d-%02d", startPosition.Year(), startPosition.Month(), startPosition.Day()) + dayEntries, _, listDayErr := f.ListDirectoryEntries(context.Background(), SystemLogDir, startDate, true, 1, "", "", "") + + if listDayErr != nil { + return false, fmt.Errorf("fail to list log by day: %v", listDayErr) + } + if len(dayEntries) == 0 { + return false, nil + } + return true, nil +} + // ---------- type LogEntryItem struct { Entry *filer_pb.LogEntry @@ -103,7 +117,7 @@ func (o *OrderedLogVisitor) GetNext() (logEntry *filer_pb.LogEntry, err error) { if nextErr != nil { if nextErr == io.EOF { // do nothing since the filer has no more log entries - }else { + } else { return nil, fmt.Errorf("failed to get next log entry: %v", nextErr) } } else { @@ -230,7 +244,7 @@ func (c *LogFileEntryCollector) collectMore(v *OrderedLogVisitor) (err error) { if nextErr != nil { if nextErr == io.EOF { // do nothing since the filer has no more log entries - }else { + } else { return fmt.Errorf("failed to get next log entry for %v: %v", entryName, err) } } else { |
