MCPcopy Index your code
hub / github.com/docker/cli / updateHealthcheck

Function updateHealthcheck

cli/command/service/update.go:1260–1307  ·  view source on GitHub ↗
(flags *pflag.FlagSet, containerSpec *swarm.ContainerSpec)

Source from the content-addressed store, hash-verified

1258}
1259
1260func 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
1309func updateNetworks(ctx context.Context, apiClient client.NetworkAPIClient, flags *pflag.FlagSet, spec *swarm.ServiceSpec) error {
1310 // spec.TaskTemplate.Networks takes precedence over the deprecated

Callers 2

updateServiceFunction · 0.85

Calls 2

anyChangedFunction · 0.85
ValueMethod · 0.65

Tested by 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…