shell: add command volume.move
This commit is contained in:
@@ -78,6 +78,20 @@ func (dn *DataNode) UpdateVolumes(actualVolumes []storage.VolumeInfo) (newVolume
|
||||
return
|
||||
}
|
||||
|
||||
func (dn *DataNode) DeltaUpdateVolumes(newlVolumes, deletedVolumes []storage.VolumeInfo) {
|
||||
dn.Lock()
|
||||
for _, v := range deletedVolumes {
|
||||
delete(dn.volumes, v.Id)
|
||||
dn.UpAdjustVolumeCountDelta(-1)
|
||||
dn.UpAdjustActiveVolumeCountDelta(-1)
|
||||
}
|
||||
dn.Unlock()
|
||||
for _, v := range newlVolumes {
|
||||
dn.AddOrUpdateVolume(v)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (dn *DataNode) GetVolumes() (ret []storage.VolumeInfo) {
|
||||
dn.RLock()
|
||||
for _, v := range dn.volumes {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user