|
@@ -1,6 +1,7 @@
|
|
package node
|
|
package node
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
+ "errors"
|
|
"fmt"
|
|
"fmt"
|
|
|
|
|
|
"github.com/docker/docker/api/client"
|
|
"github.com/docker/docker/api/client"
|
|
@@ -13,6 +14,10 @@ import (
|
|
"golang.org/x/net/context"
|
|
"golang.org/x/net/context"
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+var (
|
|
|
|
+ errNoRoleChange = errors.New("role was already set to the requested value")
|
|
|
|
+)
|
|
|
|
+
|
|
func newUpdateCommand(dockerCli *client.DockerCli) *cobra.Command {
|
|
func newUpdateCommand(dockerCli *client.DockerCli) *cobra.Command {
|
|
nodeOpts := newNodeOptions()
|
|
nodeOpts := newNodeOptions()
|
|
|
|
|
|
@@ -53,6 +58,9 @@ func updateNodes(dockerCli *client.DockerCli, nodes []string, mergeNode func(nod
|
|
|
|
|
|
err = mergeNode(&node)
|
|
err = mergeNode(&node)
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ if err == errNoRoleChange {
|
|
|
|
+ continue
|
|
|
|
+ }
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
err = client.NodeUpdate(ctx, node.ID, node.Version, node.Spec)
|
|
err = client.NodeUpdate(ctx, node.ID, node.Version, node.Spec)
|