diff options
| author | Chris Lu <chris.lu@gmail.com> | 2019-04-20 11:35:20 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2019-04-20 11:35:23 -0700 |
| commit | 6fc1f53018685e6842c68883af67128fbc0bd522 (patch) | |
| tree | d909cc811e9259a20d4c88f9cc1cd763fde55396 /weed/topology/topology.go | |
| parent | 61720e6f75f4fccadff7f5fab7320b9c9237ae87 (diff) | |
| download | seaweedfs-6fc1f53018685e6842c68883af67128fbc0bd522.tar.xz seaweedfs-6fc1f53018685e6842c68883af67128fbc0bd522.zip | |
shell: add command volume.move
Diffstat (limited to 'weed/topology/topology.go')
| -rw-r--r-- | weed/topology/topology.go | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/weed/topology/topology.go b/weed/topology/topology.go index 5426ec7e3..c7dfffff0 100644 --- a/weed/topology/topology.go +++ b/weed/topology/topology.go @@ -171,7 +171,7 @@ func (t *Topology) SyncDataNodeRegistration(volumes []*master_pb.VolumeInformati } } newVolumes, deletedVolumes = dn.UpdateVolumes(volumeInfos) - for _, v := range volumeInfos { + for _, v := range newVolumes { t.RegisterVolumeLayout(v, dn) } for _, v := range deletedVolumes { @@ -179,3 +179,27 @@ func (t *Topology) SyncDataNodeRegistration(volumes []*master_pb.VolumeInformati } return } + +func (t *Topology) IncrementalSyncDataNodeRegistration(newVolumes, deletedVolumes []*master_pb.VolumeShortInformationMessage, dn *DataNode) { + var newVis, oldVis []storage.VolumeInfo + for _, v := range newVolumes { + vi, err := storage.NewVolumeInfoFromShort(v) + if err != nil { + glog.V(0).Infof("NewVolumeInfoFromShort %v: %v", v, err) + continue + } + newVis = append(newVis, vi) + t.RegisterVolumeLayout(vi, dn) + } + for _, v := range deletedVolumes { + vi, err := storage.NewVolumeInfoFromShort(v) + if err != nil { + glog.V(0).Infof("NewVolumeInfoFromShort %v: %v", v, err) + continue + } + oldVis = append(oldVis, vi) + t.UnRegisterVolumeLayout(vi, dn) + } + dn.DeltaUpdateVolumes(newVis, oldVis) + return +} |
