// UpdateNode updates existing nodes properties. func (c *Cluster) UpdateNode(nodeID string, version uint64, spec types.NodeSpec) error { c.RLock() defer c.RUnlock() if !c.isActiveManager() { return ErrNoManager } nodeSpec, err := convert.NodeSpecToGRPC(spec) if err != nil { return err } _, err = c.client.UpdateNode( c.getRequestContext(), &swarmapi.UpdateNodeRequest{ NodeID: nodeID, Spec: &nodeSpec, NodeVersion: &swarmapi.Version{ Index: version, }, }, ) return err }
// UpdateNode updates existing nodes properties. func (c *Cluster) UpdateNode(input string, version uint64, spec types.NodeSpec) error { c.mu.RLock() defer c.mu.RUnlock() state := c.currentNodeState() if !state.IsActiveManager() { return c.errNoManager(state) } nodeSpec, err := convert.NodeSpecToGRPC(spec) if err != nil { return apierrors.NewBadRequestError(err) } ctx, cancel := c.getRequestContext() defer cancel() currentNode, err := getNode(ctx, state.controlClient, input) if err != nil { return err } _, err = state.controlClient.UpdateNode( ctx, &swarmapi.UpdateNodeRequest{ NodeID: currentNode.ID, Spec: &nodeSpec, NodeVersion: &swarmapi.Version{ Index: version, }, }, ) return err }