(flags *pflag.FlagSet, containerSpec *swarm.ContainerSpec)
| 1258 | } |
| 1259 | |
| 1260 | func updateHealthcheck(flags *pflag.FlagSet, containerSpec *swarm.ContainerSpec) error { |
| 1261 | if !anyChanged(flags, flagNoHealthcheck, flagHealthCmd, flagHealthInterval, flagHealthRetries, flagHealthTimeout, flagHealthStartPeriod) { |
| 1262 | return nil |
| 1263 | } |
| 1264 | if containerSpec.Healthcheck == nil { |
| 1265 | containerSpec.Healthcheck = &container.HealthConfig{} |
| 1266 | } |
| 1267 | noHealthcheck, err := flags.GetBool(flagNoHealthcheck) |
| 1268 | if err != nil { |
| 1269 | return err |
| 1270 | } |
| 1271 | if noHealthcheck { |
| 1272 | if !anyChanged(flags, flagHealthCmd, flagHealthInterval, flagHealthRetries, flagHealthTimeout, flagHealthStartPeriod) { |
| 1273 | containerSpec.Healthcheck = &container.HealthConfig{ |
| 1274 | Test: []string{"NONE"}, |
| 1275 | } |
| 1276 | return nil |
| 1277 | } |
| 1278 | return fmt.Errorf("--%s conflicts with --health-* options", flagNoHealthcheck) |
| 1279 | } |
| 1280 | if len(containerSpec.Healthcheck.Test) > 0 && containerSpec.Healthcheck.Test[0] == "NONE" { |
| 1281 | containerSpec.Healthcheck.Test = nil |
| 1282 | } |
| 1283 | if flags.Changed(flagHealthInterval) { |
| 1284 | val := *flags.Lookup(flagHealthInterval).Value.(*opts.PositiveDurationOpt).Value() |
| 1285 | containerSpec.Healthcheck.Interval = val |
| 1286 | } |
| 1287 | if flags.Changed(flagHealthTimeout) { |
| 1288 | val := *flags.Lookup(flagHealthTimeout).Value.(*opts.PositiveDurationOpt).Value() |
| 1289 | containerSpec.Healthcheck.Timeout = val |
| 1290 | } |
| 1291 | if flags.Changed(flagHealthStartPeriod) { |
| 1292 | val := *flags.Lookup(flagHealthStartPeriod).Value.(*opts.PositiveDurationOpt).Value() |
| 1293 | containerSpec.Healthcheck.StartPeriod = val |
| 1294 | } |
| 1295 | if flags.Changed(flagHealthRetries) { |
| 1296 | containerSpec.Healthcheck.Retries, _ = flags.GetInt(flagHealthRetries) |
| 1297 | } |
| 1298 | if flags.Changed(flagHealthCmd) { |
| 1299 | cmd, _ := flags.GetString(flagHealthCmd) |
| 1300 | if cmd != "" { |
| 1301 | containerSpec.Healthcheck.Test = []string{"CMD-SHELL", cmd} |
| 1302 | } else { |
| 1303 | containerSpec.Healthcheck.Test = nil |
| 1304 | } |
| 1305 | } |
| 1306 | return nil |
| 1307 | } |
| 1308 | |
| 1309 | func updateNetworks(ctx context.Context, apiClient client.NetworkAPIClient, flags *pflag.FlagSet, spec *swarm.ServiceSpec) error { |
| 1310 | // spec.TaskTemplate.Networks takes precedence over the deprecated |
searching dependent graphs…