github.com/kobeld/docker@v1.12.0-rc1/api/client/node/promote.go (about) 1 package node 2 3 import ( 4 "fmt" 5 6 "github.com/docker/docker/api/client" 7 "github.com/docker/docker/cli" 8 "github.com/docker/engine-api/types/swarm" 9 "github.com/spf13/cobra" 10 "github.com/spf13/pflag" 11 ) 12 13 func newPromoteCommand(dockerCli *client.DockerCli) *cobra.Command { 14 var flags *pflag.FlagSet 15 16 cmd := &cobra.Command{ 17 Use: "promote NODE [NODE...]", 18 Short: "Promote a node to a manager in the swarm", 19 Args: cli.RequiresMinArgs(1), 20 RunE: func(cmd *cobra.Command, args []string) error { 21 return runPromote(dockerCli, flags, args) 22 }, 23 } 24 25 flags = cmd.Flags() 26 return cmd 27 } 28 29 func runPromote(dockerCli *client.DockerCli, flags *pflag.FlagSet, args []string) error { 30 for _, id := range args { 31 if err := runUpdate(dockerCli, id, func(node *swarm.Node) { 32 node.Spec.Role = swarm.NodeRoleManager 33 }); err != nil { 34 return err 35 } 36 fmt.Println(id, "attempting to promote a node to a manager in the swarm.") 37 } 38 39 return nil 40 }