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  }