diff options
| author | Lisandro Pin <lisandro.pin@proton.ch> | 2025-01-29 17:50:19 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-29 08:50:19 -0800 |
| commit | 7913681297b1b986b47366387e844955fac6063b (patch) | |
| tree | f3c427ce5d88c17eb2da20d221745b405df987cb /weed/shell/command_ec_common.go | |
| parent | 33ba88df9cbf1b8ca086e02e6cb09918279a4ca4 (diff) | |
| download | seaweedfs-7913681297b1b986b47366387e844955fac6063b.tar.xz seaweedfs-7913681297b1b986b47366387e844955fac6063b.zip | |
`ec.encode`: Display a warning on EC balancing if no replica placement settings are found. (#6487)
Diffstat (limited to 'weed/shell/command_ec_common.go')
| -rw-r--r-- | weed/shell/command_ec_common.go | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/weed/shell/command_ec_common.go b/weed/shell/command_ec_common.go index 0e9062d23..afbb750aa 100644 --- a/weed/shell/command_ec_common.go +++ b/weed/shell/command_ec_common.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "math/rand/v2" + "slices" "sort" "sync" "time" @@ -19,7 +20,6 @@ import ( "github.com/seaweedfs/seaweedfs/weed/storage/super_block" "github.com/seaweedfs/seaweedfs/weed/storage/types" "google.golang.org/grpc" - "slices" ) type DataCenterId string @@ -176,20 +176,28 @@ func _getDefaultReplicaPlacement(commandEnv *CommandEnv) (*super_block.ReplicaPl } func parseReplicaPlacementArg(commandEnv *CommandEnv, replicaStr string) (*super_block.ReplicaPlacement, error) { + var rp *super_block.ReplicaPlacement + var err error + if replicaStr != "" { - rp, err := super_block.NewReplicaPlacementFromString(replicaStr) - if err == nil { - fmt.Printf("using replica placement %q for EC volumes\n", rp.String()) + rp, err = super_block.NewReplicaPlacementFromString(replicaStr) + if err != nil { + return rp, err } - return rp, err + fmt.Printf("using replica placement %q for EC volumes\n", rp.String()) + } else { + // No replica placement argument provided, resolve from master default settings. + rp, err = getDefaultReplicaPlacement(commandEnv) + if err != nil { + return rp, err + } + fmt.Printf("using master default replica placement %q for EC volumes\n", rp.String()) } - // No replica placement argument provided, resolve from master default settings. - rp, err := getDefaultReplicaPlacement(commandEnv) - if err == nil { - fmt.Printf("using master default replica placement %q for EC volumes\n", rp.String()) + if !rp.HasReplication() { + fmt.Printf("WARNING: replica placement type %q is empty!", rp.String()) } - return rp, err + return rp, nil } func collectTopologyInfo(commandEnv *CommandEnv, delayBeforeCollecting time.Duration) (topoInfo *master_pb.TopologyInfo, volumeSizeLimitMb uint64, err error) { |
