github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/swarmkit/cmd/swarmctl/node/remove.go (about) 1 package node 2 3 import ( 4 "errors" 5 6 "github.com/docker/swarmkit/api" 7 "github.com/docker/swarmkit/cmd/swarmctl/common" 8 "github.com/spf13/cobra" 9 ) 10 11 var ( 12 removeCmd = &cobra.Command{ 13 Use: "remove <node ID>", 14 Short: "Remove a node", 15 Aliases: []string{"rm"}, 16 RunE: func(cmd *cobra.Command, args []string) error { 17 if len(args) == 0 { 18 return errors.New("missing node ID") 19 } 20 21 if len(args) > 1 { 22 return errors.New("remove command takes exactly 1 argument") 23 } 24 25 flags := cmd.Flags() 26 27 force, err := flags.GetBool("force") 28 if err != nil { 29 return err 30 } 31 32 c, err := common.Dial(cmd) 33 if err != nil { 34 return err 35 } 36 node, err := getNode(common.Context(cmd), c, args[0]) 37 if err != nil { 38 return err 39 } 40 41 _, err = c.RemoveNode(common.Context(cmd), &api.RemoveNodeRequest{ 42 NodeID: node.ID, 43 Force: force, 44 }) 45 46 return err 47 }, 48 } 49 ) 50 51 func init() { 52 removeCmd.Flags().BoolP("force", "f", false, "Force the removal of a node") 53 }