aboutsummaryrefslogtreecommitdiff
path: root/weed/operation/sync_volume.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2018-10-15 01:19:15 -0700
committerChris Lu <chris.lu@gmail.com>2018-10-15 01:19:15 -0700
commitfda771c83fd2702dc791244065b5886e5a3b9df2 (patch)
treee566188618dc37cbc451fa57fb5046e7f5676798 /weed/operation/sync_volume.go
parentb423bb9e2def089f57406ce8476c08f3de8436e9 (diff)
downloadseaweedfs-fda771c83fd2702dc791244065b5886e5a3b9df2.tar.xz
seaweedfs-fda771c83fd2702dc791244065b5886e5a3b9df2.zip
migrate volume sync status to grpc API on volume server
Diffstat (limited to 'weed/operation/sync_volume.go')
-rw-r--r--weed/operation/sync_volume.go39
1 files changed, 11 insertions, 28 deletions
diff --git a/weed/operation/sync_volume.go b/weed/operation/sync_volume.go
index d4434b318..390d5b504 100644
--- a/weed/operation/sync_volume.go
+++ b/weed/operation/sync_volume.go
@@ -1,41 +1,24 @@
package operation
import (
- "encoding/json"
- "fmt"
+ "context"
"net/url"
- "github.com/chrislusf/seaweedfs/weed/glog"
+ "github.com/chrislusf/seaweedfs/weed/pb/volume_server_pb"
. "github.com/chrislusf/seaweedfs/weed/storage/types"
"github.com/chrislusf/seaweedfs/weed/util"
)
-type SyncVolumeResponse struct {
- Replication string `json:"Replication,omitempty"`
- Ttl string `json:"Ttl,omitempty"`
- TailOffset uint64 `json:"TailOffset,omitempty"`
- CompactRevision uint16 `json:"CompactRevision,omitempty"`
- IdxFileSize uint64 `json:"IdxFileSize,omitempty"`
- Error string `json:"error,omitempty"`
-}
+func GetVolumeSyncStatus(server string, vid uint32) (resp *volume_server_pb.VolumeSyncStatusResponse, err error) {
-func GetVolumeSyncStatus(server string, vid string) (*SyncVolumeResponse, error) {
- values := make(url.Values)
- values.Add("volume", vid)
- jsonBlob, err := util.Post("http://"+server+"/admin/sync/status", values)
- glog.V(2).Info("sync volume result :", string(jsonBlob))
- if err != nil {
- return nil, err
- }
- var ret SyncVolumeResponse
- err = json.Unmarshal(jsonBlob, &ret)
- if err != nil {
- return nil, err
- }
- if ret.Error != "" {
- return nil, fmt.Errorf("Volume %s get sync status error: %s", vid, ret.Error)
- }
- return &ret, nil
+ WithVolumeServerClient(server, func(client volume_server_pb.VolumeServerClient) error {
+ resp, err = client.VolumeSyncStatus(context.Background(), &volume_server_pb.VolumeSyncStatusRequest{
+ VolumdId: vid,
+ })
+ return nil
+ })
+
+ return
}
func GetVolumeIdxEntries(server string, vid string, eachEntryFn func(key NeedleId, offset Offset, size uint32)) error {