aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-03-14 21:29:55 -0700
committerChris Lu <chris.lu@gmail.com>2021-03-14 21:29:55 -0700
commita4cfffc264d3af61a3e363dc4d9db8f606284069 (patch)
tree7ae6a36e94ae071dd815d7194169ca43f884cb02
parentca100568f76b9ccc472352c62bc1647c9d156843 (diff)
downloadseaweedfs-a4cfffc264d3af61a3e363dc4d9db8f606284069.tar.xz
seaweedfs-a4cfffc264d3af61a3e363dc4d9db8f606284069.zip
shell: fix moving volume, volume server evacuate
fix https://github.com/chrislusf/seaweedfs/issues/1534
-rw-r--r--weed/shell/command_volume_balance.go5
-rw-r--r--weed/shell/command_volume_server_evacuate_test.go17
2 files changed, 19 insertions, 3 deletions
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)
+ }
+
+}