diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-08-15 12:38:26 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-08-15 12:38:26 -0700 |
| commit | 49b5e47bd13032a720e0236e65f92eb96933838b (patch) | |
| tree | 22242a51add017df6191ce885e078089b0f802f7 /weed/command/filer_remote_sync.go | |
| parent | fda2fc47b1bed30b606539c8caad5e289376382f (diff) | |
| download | seaweedfs-49b5e47bd13032a720e0236e65f92eb96933838b.tar.xz seaweedfs-49b5e47bd13032a720e0236e65f92eb96933838b.zip | |
retry forever with filer.remote.sync, and some refactoring
Diffstat (limited to 'weed/command/filer_remote_sync.go')
| -rw-r--r-- | weed/command/filer_remote_sync.go | 42 |
1 files changed, 16 insertions, 26 deletions
diff --git a/weed/command/filer_remote_sync.go b/weed/command/filer_remote_sync.go index 8b20957e4..41b9c67e8 100644 --- a/weed/command/filer_remote_sync.go +++ b/weed/command/filer_remote_sync.go @@ -70,43 +70,33 @@ func runFilerRemoteSynchronize(cmd *Command, args []string) bool { grpcDialOption := security.LoadClientTLS(util.GetViper(), "grpc.client") remoteSyncOptions.grpcDialOption = grpcDialOption + dir := *remoteSyncOptions.dir + filerAddress := *remoteSyncOptions.filerAddress + // read filer remote storage mount mappings - mappings, readErr := filer.ReadMountMappings(grpcDialOption, *remoteSyncOptions.filerAddress) - if readErr != nil { - fmt.Printf("read mount mapping: %v", readErr) + _, _, remoteStorageMountLocation, storageConf, detectErr := filer.DetectMountInfo(grpcDialOption, filerAddress, dir) + if detectErr != nil { + fmt.Printf("read mount info: %v", detectErr) return false } filerSource := &source.FilerSource{} filerSource.DoInitialize( - *remoteSyncOptions.filerAddress, - pb.ServerToGrpcAddress(*remoteSyncOptions.filerAddress), + filerAddress, + pb.ServerToGrpcAddress(filerAddress), "/", // does not matter *remoteSyncOptions.readChunkFromFiler, ) - var found bool - for dir, remoteStorageMountLocation := range mappings.Mappings { - if *remoteSyncOptions.dir == dir { - found = true - storageConf, readErr := filer.ReadRemoteStorageConf(grpcDialOption, *remoteSyncOptions.filerAddress, remoteStorageMountLocation.Name) - if readErr != nil { - fmt.Printf("read remote storage configuration for %s: %v", dir, readErr) - continue - } - fmt.Printf("synchronize %s to remote storage...\n", *remoteSyncOptions.dir) - if err := util.Retry("filer.remote.sync "+dir, func() error { - return followUpdatesAndUploadToRemote(&remoteSyncOptions, filerSource, dir, storageConf, remoteStorageMountLocation) - }); err != nil { - fmt.Printf("synchronize %s: %v\n", *remoteSyncOptions.dir, err) - } - break + fmt.Printf("synchronize %s to remote storage...\n", dir) + util.RetryForever("filer.remote.sync "+dir, func() error { + return followUpdatesAndUploadToRemote(&remoteSyncOptions, filerSource, dir, storageConf, remoteStorageMountLocation) + }, func(err error) bool { + if err != nil { + fmt.Printf("synchronize %s: %v\n", dir, err) } - } - if !found { - fmt.Printf("directory %s is not mounted to any remote storage\n", *remoteSyncOptions.dir) - return false - } + return true + }) return true } |
