From a4cfffc264d3af61a3e363dc4d9db8f606284069 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Sun, 14 Mar 2021 21:29:55 -0700 Subject: [PATCH] shell: fix moving volume, volume server evacuate fix https://github.com/chrislusf/seaweedfs/issues/1534 --- weed/shell/command_volume_balance.go | 5 ++--- .../command_volume_server_evacuate_test.go | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 weed/shell/command_volume_server_evacuate_test.go diff --git a/weed/shell/command_volume_balance.go b/weed/shell/command_volume_balance.go index e0c41f310..ad7da0e44 100644 --- a/weed/shell/command_volume_balance.go +++ b/weed/shell/command_volume_balance.go @@ -393,9 +393,8 @@ func adjustAfterMove(v *master_pb.VolumeInformationMessage, volumeReplicas map[u if replica.location.dataNode.Id == fullNode.info.Id && replica.location.rack == fullNode.rack && replica.location.dc == fullNode.dc { - replica.location.dc = emptyNode.dc - replica.location.rack = emptyNode.rack - replica.location.dataNode = emptyNode.info + loc := newLocation(emptyNode.dc, emptyNode.rack, emptyNode.info) + replica.location = &loc return } } diff --git a/weed/shell/command_volume_server_evacuate_test.go b/weed/shell/command_volume_server_evacuate_test.go new file mode 100644 index 000000000..5753af78b --- /dev/null +++ b/weed/shell/command_volume_server_evacuate_test.go @@ -0,0 +1,17 @@ +package shell + +import ( + "os" + "testing" +) + +func TestVolumeServerEvacuate(t *testing.T) { + topologyInfo := parseOutput(topoData) + + volumeServer := "192.168.1.4:8080" + + if err := evacuateNormalVolumes(nil, topologyInfo, volumeServer, true, false, os.Stdout); err != nil { + t.Errorf("evacuate: %v", err) + } + +}