diff options
Diffstat (limited to 'weed/server/volume_grpc_admin.go')
| -rw-r--r-- | weed/server/volume_grpc_admin.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/weed/server/volume_grpc_admin.go b/weed/server/volume_grpc_admin.go index aace63fd8..8fa6e27f0 100644 --- a/weed/server/volume_grpc_admin.go +++ b/weed/server/volume_grpc_admin.go @@ -148,6 +148,19 @@ func (vs *VolumeServer) VolumeMarkReadonly(ctx context.Context, req *volume_serv resp := &volume_server_pb.VolumeMarkReadonlyResponse{} + if grpcErr := pb.WithMasterClient(false, vs.GetMaster(), vs.grpcDialOption, false, func(client master_pb.SeaweedClient) error { + _, err := client.VolumeMarkReadonly(context.Background(), &master_pb.VolumeMarkReadonlyRequest{ + VolumeId: req.VolumeId, + }) + if err != nil { + return fmt.Errorf("set volume %d to read only on master: %v", req.VolumeId, err) + } + return nil + }); grpcErr != nil { + glog.V(0).Infof("connect to %s: %v", vs.GetMaster(), grpcErr) + return resp, fmt.Errorf("grpc VolumeMarkReadonly with master %s: %v", vs.GetMaster(), grpcErr) + } + err := vs.store.MarkVolumeReadonly(needle.VolumeId(req.VolumeId)) if err != nil { @@ -163,6 +176,19 @@ func (vs *VolumeServer) VolumeMarkWritable(ctx context.Context, req *volume_serv resp := &volume_server_pb.VolumeMarkWritableResponse{} + if grpcErr := pb.WithMasterClient(false, vs.GetMaster(), vs.grpcDialOption, false, func(client master_pb.SeaweedClient) error { + _, err := client.VolumeMarkWritable(context.Background(), &master_pb.VolumeMarkWritableRequest{ + VolumeId: req.VolumeId, + }) + if err != nil { + return fmt.Errorf("set volume %d to writable on master: %v", req.VolumeId, err) + } + return nil + }); grpcErr != nil { + glog.V(0).Infof("connect to %s: %v", vs.GetMaster(), grpcErr) + return resp, fmt.Errorf("grpc VolumeMarkWritable with master %s: %v", vs.GetMaster(), grpcErr) + } + err := vs.store.MarkVolumeWritable(needle.VolumeId(req.VolumeId)) if err != nil { |
