| ... | ... |
@@ -24,6 +24,8 @@ func newCreateCommand(dockerCli *client.DockerCli) *cobra.Command {
|
| 24 | 24 |
return runCreate(dockerCli, opts) |
| 25 | 25 |
}, |
| 26 | 26 |
} |
| 27 |
+ flags := cmd.Flags() |
|
| 28 |
+ flags.StringVar(&opts.mode, flagMode, "replicated", "Service mode (replicated or global)") |
|
| 27 | 29 |
addServiceFlags(cmd, opts) |
| 28 | 30 |
cmd.Flags().SetInterspersed(false) |
| 29 | 31 |
return cmd |
| ... | ... |
@@ -454,7 +454,6 @@ func addServiceFlags(cmd *cobra.Command, opts *serviceOptions) {
|
| 454 | 454 |
flags.Var(&opts.resources.resMemBytes, flagReserveMemory, "Reserve Memory") |
| 455 | 455 |
flags.Var(&opts.stopGrace, flagStopGracePeriod, "Time to wait before force killing a container") |
| 456 | 456 |
|
| 457 |
- flags.StringVar(&opts.mode, flagMode, "replicated", "Service mode (replicated or global)") |
|
| 458 | 457 |
flags.Var(&opts.replicas, flagReplicas, "Number of tasks") |
| 459 | 458 |
|
| 460 | 459 |
flags.StringVar(&opts.restartPolicy.condition, flagRestartCondition, "", "Restart when condition is met (none, on_failure, or any)") |
| ... | ... |
@@ -162,7 +162,7 @@ func updateService(spec *swarm.ServiceSpec, flags *pflag.FlagSet) error {
|
| 162 | 162 |
updateSlice(flagConstraint, &task.Placement.Constraints) |
| 163 | 163 |
} |
| 164 | 164 |
|
| 165 |
- if err := updateMode(flags, &spec.Mode); err != nil {
|
|
| 165 |
+ if err := updateReplicas(flags, &spec.Mode); err != nil {
|
|
| 166 | 166 |
return err |
| 167 | 167 |
} |
| 168 | 168 |
|
| ... | ... |
@@ -250,40 +250,14 @@ func updateNetworks(flags *pflag.FlagSet, attachments *[]swarm.NetworkAttachment |
| 250 | 250 |
*attachments = localAttachments |
| 251 | 251 |
} |
| 252 | 252 |
|
| 253 |
-func updateMode(flags *pflag.FlagSet, serviceMode *swarm.ServiceMode) error {
|
|
| 254 |
- if !flags.Changed(flagMode) && !flags.Changed(flagReplicas) {
|
|
| 253 |
+func updateReplicas(flags *pflag.FlagSet, serviceMode *swarm.ServiceMode) error {
|
|
| 254 |
+ if !flags.Changed(flagReplicas) {
|
|
| 255 | 255 |
return nil |
| 256 | 256 |
} |
| 257 | 257 |
|
| 258 |
- var mode string |
|
| 259 |
- if flags.Changed(flagMode) {
|
|
| 260 |
- mode, _ = flags.GetString(flagMode) |
|
| 261 |
- } |
|
| 262 |
- |
|
| 263 |
- if !(mode == "replicated" || serviceMode.Replicated != nil) && flags.Changed(flagReplicas) {
|
|
| 258 |
+ if serviceMode.Replicated == nil {
|
|
| 264 | 259 |
return fmt.Errorf("replicas can only be used with replicated mode")
|
| 265 | 260 |
} |
| 266 |
- |
|
| 267 |
- if mode == "global" {
|
|
| 268 |
- serviceMode.Replicated = nil |
|
| 269 |
- serviceMode.Global = &swarm.GlobalService{}
|
|
| 270 |
- return nil |
|
| 271 |
- } |
|
| 272 |
- |
|
| 273 |
- if flags.Changed(flagReplicas) {
|
|
| 274 |
- replicas := flags.Lookup(flagReplicas).Value.(*Uint64Opt).Value() |
|
| 275 |
- serviceMode.Replicated = &swarm.ReplicatedService{Replicas: replicas}
|
|
| 276 |
- serviceMode.Global = nil |
|
| 277 |
- return nil |
|
| 278 |
- } |
|
| 279 |
- |
|
| 280 |
- if mode == "replicated" {
|
|
| 281 |
- if serviceMode.Replicated != nil {
|
|
| 282 |
- return nil |
|
| 283 |
- } |
|
| 284 |
- serviceMode.Replicated = &swarm.ReplicatedService{Replicas: &DefaultReplicas}
|
|
| 285 |
- serviceMode.Global = nil |
|
| 286 |
- } |
|
| 287 |
- |
|
| 261 |
+ serviceMode.Replicated.Replicas = flags.Lookup(flagReplicas).Value.(*Uint64Opt).Value() |
|
| 288 | 262 |
return nil |
| 289 | 263 |
} |