Browse Source
Merge pull request #1586 from kmlebedev/pre_stop_remove_volumes
delete volumes from master on stop volume server
pull/1596/head
Chris Lu
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
23 additions and
1 deletions
-
weed/server/volume_grpc_client_to_master.go
-
weed/storage/store.go
|
|
@ -216,6 +216,23 @@ func (vs *VolumeServer) doHeartbeat(masterNode, masterGrpcAddress string, grpcDi |
|
|
|
case err = <-doneChan: |
|
|
|
return |
|
|
|
case <-vs.stopChan: |
|
|
|
var volumeMessages []*master_pb.VolumeInformationMessage |
|
|
|
emptyBeat := &master_pb.Heartbeat{ |
|
|
|
Ip: vs.store.Ip, |
|
|
|
Port: uint32(vs.store.Port), |
|
|
|
PublicUrl: vs.store.PublicUrl, |
|
|
|
MaxVolumeCount: uint32(0), |
|
|
|
MaxFileKey: uint64(0), |
|
|
|
DataCenter: vs.store.GetDataCenter(), |
|
|
|
Rack: vs.store.GetRack(), |
|
|
|
Volumes: volumeMessages, |
|
|
|
HasNoVolumes: len(volumeMessages) == 0, |
|
|
|
} |
|
|
|
glog.V(1).Infof("volume server %s:%d stops and deletes all volumes", vs.store.Ip, vs.store.Port) |
|
|
|
if err = stream.Send(emptyBeat); err != nil { |
|
|
|
glog.V(0).Infof("Volume Server Failed to update to master %s: %v", masterNode, err) |
|
|
|
return "", err |
|
|
|
} |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
@ -194,6 +194,12 @@ func (s *Store) SetDataCenter(dataCenter string) { |
|
|
|
func (s *Store) SetRack(rack string) { |
|
|
|
s.rack = rack |
|
|
|
} |
|
|
|
func (s *Store) GetDataCenter() string { |
|
|
|
return s.dataCenter |
|
|
|
} |
|
|
|
func (s *Store) GetRack() string { |
|
|
|
return s.rack |
|
|
|
} |
|
|
|
|
|
|
|
func (s *Store) CollectHeartbeat() *master_pb.Heartbeat { |
|
|
|
var volumeMessages []*master_pb.VolumeInformationMessage |
|
|
@ -229,7 +235,6 @@ func (s *Store) CollectHeartbeat() *master_pb.Heartbeat { |
|
|
|
} |
|
|
|
} |
|
|
|
if v.IsReadOnly() { |
|
|
|
collectionVolumeReadOnlyCount[v.Collection] = make(map[string]uint8) |
|
|
|
collectionVolumeReadOnlyCount[v.Collection]["IsReadOnly"] += 1 |
|
|
|
if v.noWriteOrDelete { |
|
|
|
collectionVolumeReadOnlyCount[v.Collection]["noWriteOrDelete"] += 1 |
|
|
|