func meetAction(c *cli.Context) { if len(c.Args()) != 1 { Put(ErrInvalidParameter) return } addr := context.GetLeaderAddr() extraHeader := &utils.ExtraHeader{ User: context.Config.User, Role: context.Config.Role, Token: context.Config.Token, } url := "http://" + addr + api.NodeMeetPath nodeid, err := context.GetId(c.Args()[0]) if err != nil { Put(err) return } req := api.MeetNodeParams{ NodeId: nodeid, } resp, err := utils.HttpPostExtra(url, req, 5*time.Second, extraHeader) if err != nil { Put(err) return } ShowResponse(resp) }
func takeoverAction(c *cli.Context) { if len(c.Args()) != 1 { fmt.Println(ErrInvalidParameter) return } addr := context.GetLeaderAddr() extraHeader := &utils.ExtraHeader{ User: context.Config.User, Role: context.Config.Role, Token: context.Config.Token, } url := "http://" + addr + api.FailoverTakeoverPath nodeid, err := context.GetId(c.Args()[0]) if err != nil { fmt.Println(err) return } req := api.FailoverTakeoverParams{ NodeId: nodeid, } resp, err := utils.HttpPostExtra(url, req, 60*time.Second, extraHeader) if err != nil { fmt.Println(err) return } ShowResponse(resp) }
func migrateAction(c *cli.Context) { fmt.Println(c.Args()) if len(c.Args()) < 3 { fmt.Println(ErrInvalidParameter) return } addr := context.GetLeaderAddr() extraHeader := &utils.ExtraHeader{ User: context.Config.User, Role: context.Config.Role, Token: context.Config.Token, } url := "http://" + addr + api.MigrateCreatePath snodeid, err := context.GetId(c.Args()[0]) if err != nil { fmt.Println(err) return } tnodeid, err := context.GetId(c.Args()[1]) if err != nil { fmt.Println(err) return } ranges := c.Args()[2:] req := api.MigrateParams{ SourceId: snodeid, TargetId: tnodeid, Ranges: ranges, } resp, err := utils.HttpPostExtra(url, req, 5*time.Second, extraHeader) if err != nil { fmt.Println(err) return } ShowResponse(resp) }
func replicateAction(c *cli.Context) { if len(c.Args()) != 2 { fmt.Println(ErrInvalidParameter) return } addr := context.GetLeaderAddr() extraHeader := &utils.ExtraHeader{ User: context.Config.User, Role: context.Config.Role, Token: context.Config.Token, } url := "http://" + addr + api.NodeReplicatePath cnodeid, err := context.GetId(c.Args()[0]) if err != nil { fmt.Println(err) return } pnodeid, err := context.GetId(c.Args()[1]) if err != nil { fmt.Println(err) return } req := api.ReplicateParams{ ChildId: cnodeid, ParentId: pnodeid, } resp, err := utils.HttpPostExtra(url, req, 5*time.Second, extraHeader) if err != nil { fmt.Println(err) return } ShowResponse(resp) }
func doTaskAction(path, sourceId string) { addr := context.GetLeaderAddr() url := "http://" + addr + path nodeid, err := context.GetId(sourceId) if err != nil { Put(err) return } req := api.MigrateActionParams{ SourceId: nodeid, } extraHeader := &utils.ExtraHeader{ User: context.Config.User, Role: context.Config.Role, Token: context.Config.Token, } resp, err := utils.HttpPostExtra(url, req, 5*time.Second, extraHeader) if err != nil { Put(err) return } ShowResponse(resp) }
func chmodAction(c *cli.Context) { r := c.Bool("r") w := c.Bool("w") addr := context.GetLeaderAddr() extraHeader := &utils.ExtraHeader{ User: context.Config.User, Role: context.Config.Role, Token: context.Config.Token, } url := "http://" + addr + api.NodePermPath var act string var nodeid string var action string var perm string var err error //-r -w if r || w { if len(c.Args()) != 1 || r == w { fmt.Println(ErrInvalidParameter) return } action = "disable" nodeid, err = context.GetId(c.Args()[0]) if err != nil { fmt.Println(err) return } if r { perm = "read" } else { perm = "write" } } else { //+r +w if len(c.Args()) != 2 { fmt.Println(ErrInvalidParameter) return } act = c.Args()[0] if string(act[0]) == "+" { action = "enable" nodeid, err = context.GetId(c.Args()[1]) if err != nil { fmt.Println(err) return } if string(act[1]) == "r" { perm = "read" } else if string(act[1]) == "w" { perm = "write" } else { fmt.Println(ErrInvalidParameter) return } } else { fmt.Println(ErrInvalidParameter) return } } req := api.ToggleModeParams{ NodeId: nodeid, Action: action, Perm: perm, } resp, err := utils.HttpPostExtra(url, req, 5*time.Second, extraHeader) if err != nil { fmt.Println(err) return } ShowResponse(resp) }