|
|
@ -93,31 +93,20 @@ func runFilerRemoteSynchronize(cmd *Command, args []string) bool { |
|
|
|
*remoteSyncOptions.readChunkFromFiler, |
|
|
|
) |
|
|
|
|
|
|
|
if dir != "" { |
|
|
|
fmt.Printf("synchronize %s to remote storage...\n", dir) |
|
|
|
util.RetryForever("filer.remote.sync "+dir, func() error { |
|
|
|
return followUpdatesAndUploadToRemote(&remoteSyncOptions, filerSource, dir) |
|
|
|
}, func(err error) bool { |
|
|
|
storageName := *remoteSyncOptions.createBucketAt |
|
|
|
if storageName != "" { |
|
|
|
|
|
|
|
remoteSyncOptions.bucketsDir = "/buckets" |
|
|
|
// check buckets again
|
|
|
|
remoteSyncOptions.WithFilerClient(func(filerClient filer_pb.SeaweedFilerClient) error { |
|
|
|
resp, err := filerClient.GetFilerConfiguration(context.Background(), &filer_pb.GetFilerConfigurationRequest{}) |
|
|
|
if err != nil { |
|
|
|
glog.Errorf("synchronize %s: %v", dir, err) |
|
|
|
return err |
|
|
|
} |
|
|
|
return true |
|
|
|
remoteSyncOptions.bucketsDir = resp.DirBuckets |
|
|
|
return nil |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
remoteSyncOptions.bucketsDir = "/buckets" |
|
|
|
// check buckets again
|
|
|
|
remoteSyncOptions.WithFilerClient(func(filerClient filer_pb.SeaweedFilerClient) error { |
|
|
|
resp, err := filerClient.GetFilerConfiguration(context.Background(), &filer_pb.GetFilerConfigurationRequest{}) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
remoteSyncOptions.bucketsDir = resp.DirBuckets |
|
|
|
return nil |
|
|
|
}) |
|
|
|
|
|
|
|
storageName := *remoteSyncOptions.createBucketAt |
|
|
|
if storageName != "" { |
|
|
|
fmt.Printf("synchronize %s, default new bucket creation in %s ...\n", remoteSyncOptions.bucketsDir, storageName) |
|
|
|
util.RetryForever("filer.remote.sync buckets "+storageName, func() error { |
|
|
|
return remoteSyncOptions.followBucketUpdatesAndUploadToRemote(filerSource) |
|
|
@ -129,5 +118,17 @@ func runFilerRemoteSynchronize(cmd *Command, args []string) bool { |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
if dir != "" { |
|
|
|
fmt.Printf("synchronize %s to remote storage...\n", dir) |
|
|
|
util.RetryForever("filer.remote.sync "+dir, func() error { |
|
|
|
return followUpdatesAndUploadToRemote(&remoteSyncOptions, filerSource, dir) |
|
|
|
}, func(err error) bool { |
|
|
|
if err != nil { |
|
|
|
glog.Errorf("synchronize %s: %v", dir, err) |
|
|
|
} |
|
|
|
return true |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
return true |
|
|
|
} |