github.com/portworx/docker@v1.12.1/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 ) 11 12 func newPromoteCommand(dockerCli *client.DockerCli) *cobra.Command { 13 return &cobra.Command{ 14 Use: "promote NODE [NODE...]", 15 Short: "Promote one or more nodes to manager in the swarm", 16 Args: cli.RequiresMinArgs(1), 17 RunE: func(cmd *cobra.Command, args []string) error { 18 return runPromote(dockerCli, args) 19 }, 20 } 21 } 22 23 func runPromote(dockerCli *client.DockerCli, nodes []string) error { 24 promote := func(node *swarm.Node) error { 25 node.Spec.Role = swarm.NodeRoleManager 26 return nil 27 } 28 success := func(nodeID string) { 29 fmt.Fprintf(dockerCli.Out(), "Node %s promoted to a manager in the swarm.\n", nodeID) 30 } 31 return updateNodes(dockerCli, nodes, promote, success) 32 }