aboutsummaryrefslogtreecommitdiff
path: root/weed/filesys/meta_cache/meta_cache_init.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/filesys/meta_cache/meta_cache_init.go')
-rw-r--r--weed/filesys/meta_cache/meta_cache_init.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/weed/filesys/meta_cache/meta_cache_init.go b/weed/filesys/meta_cache/meta_cache_init.go
index 58bf6862e..1fbc3e532 100644
--- a/weed/filesys/meta_cache/meta_cache_init.go
+++ b/weed/filesys/meta_cache/meta_cache_init.go
@@ -2,6 +2,7 @@ package meta_cache
import (
"context"
+ "fmt"
"github.com/chrislusf/seaweedfs/weed/filer2"
"github.com/chrislusf/seaweedfs/weed/glog"
@@ -10,6 +11,7 @@ import (
)
func InitMetaCache(mc *MetaCache, client filer_pb.FilerClient, path string) error {
+ return nil
glog.V(0).Infof("synchronizing meta data ...")
filer_pb.TraverseBfs(client, util.FullPath(path), func(parentPath util.FullPath, pbEntry *filer_pb.Entry) {
entry := filer2.FromPbEntry(string(parentPath), pbEntry)
@@ -19,3 +21,27 @@ func InitMetaCache(mc *MetaCache, client filer_pb.FilerClient, path string) erro
})
return nil
}
+
+func EnsureVisited(mc *MetaCache, client filer_pb.FilerClient, dirPath util.FullPath) {
+
+ mc.visitedBoundary.EnsureVisited(dirPath, func(path util.FullPath) (childDirectories []string, err error) {
+
+ glog.V(2).Infof("ReadDirAllEntries %s ...", path)
+
+ err = filer_pb.ReadDirAllEntries(client, dirPath, "", func(pbEntry *filer_pb.Entry, isLast bool) error {
+ entry := filer2.FromPbEntry(string(dirPath), pbEntry)
+ if err := mc.InsertEntry(context.Background(), entry); err != nil {
+ glog.V(0).Infof("read %s: %v", entry.FullPath, err)
+ return err
+ }
+ if entry.IsDirectory() {
+ childDirectories = append(childDirectories, entry.Name())
+ }
+ return nil
+ })
+ if err != nil {
+ err = fmt.Errorf("list %s: %v", dirPath, err)
+ }
+ return
+ })
+}