aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)
+ }
+
+}