mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-04-05 20:52:50 +08:00
[shell] volume.grow (#5855)
This commit is contained in:
parent
bd1b8119fe
commit
ef4c555e90
64
weed/shell/command_volume_grow.go
Normal file
64
weed/shell/command_volume_grow.go
Normal file
@ -0,0 +1,64 @@
|
||||
package shell
|
||||
|
||||
import (
|
||||
"context"
|
||||
"flag"
|
||||
"fmt"
|
||||
"github.com/seaweedfs/seaweedfs/weed/pb/master_pb"
|
||||
"io"
|
||||
)
|
||||
|
||||
func init() {
|
||||
Commands = append(Commands, &commandGrow{})
|
||||
}
|
||||
|
||||
type commandGrow struct {
|
||||
}
|
||||
|
||||
func (c *commandGrow) Name() string {
|
||||
return "volume.grow"
|
||||
}
|
||||
|
||||
func (c *commandGrow) Help() string {
|
||||
return `grow volumes
|
||||
|
||||
volume.grow [-collection=<collection name>] [-dataCenter=<data center name>]
|
||||
|
||||
`
|
||||
}
|
||||
|
||||
func (c *commandGrow) Do(args []string, commandEnv *CommandEnv, writer io.Writer) (err error) {
|
||||
|
||||
volumeVacuumCommand := flag.NewFlagSet(c.Name(), flag.ContinueOnError)
|
||||
growCount := volumeVacuumCommand.Uint("count", 2, "")
|
||||
collection := volumeVacuumCommand.String("collection", "", "grow this collection")
|
||||
dataCenter := volumeVacuumCommand.String("dataCenter", "", "grow volumes only from the specified data center")
|
||||
|
||||
if err = volumeVacuumCommand.Parse(args); err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
assignRequest := &master_pb.AssignRequest{
|
||||
Count: 0,
|
||||
Collection: *collection,
|
||||
WritableVolumeCount: uint32(*growCount),
|
||||
}
|
||||
if *dataCenter != "" {
|
||||
assignRequest.DataCenter = *dataCenter
|
||||
}
|
||||
|
||||
err = commandEnv.MasterClient.WithClient(false, func(client master_pb.SeaweedClient) error {
|
||||
_, err := client.Assign(context.Background(), assignRequest)
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("Assign: %v", err)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Reference in New Issue
Block a user