func updatePlacement(flags *pflag.FlagSet, placement *swarm.Placement) { field, _ := flags.GetStringSlice(flagConstraintAdd) placement.Constraints = append(placement.Constraints, field...) toRemove := buildToRemoveSet(flags, flagConstraintRemove) placement.Constraints = removeItems(placement.Constraints, toRemove, itemKey) }
func placementFromGRPC(p *swarmapi.Placement) *types.Placement { var r *types.Placement if p != nil { r = &types.Placement{} r.Constraints = p.Constraints } return r }
func updatePlacement(flags *pflag.FlagSet, placement *swarm.Placement) { if flags.Changed(flagConstraintAdd) { values := flags.Lookup(flagConstraintAdd).Value.(*opts.ListOpts).GetAll() placement.Constraints = append(placement.Constraints, values...) } toRemove := buildToRemoveSet(flags, flagConstraintRemove) newConstraints := []string{} for _, constraint := range placement.Constraints { if _, exists := toRemove[constraint]; !exists { newConstraints = append(newConstraints, constraint) } } // Sort so that result is predictable. sort.Strings(newConstraints) placement.Constraints = newConstraints }