[shell] volume.grow (#5855)
This commit is contained in:
committed by
GitHub
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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user