Skip to content

Commit 345ced1

Browse files
committed
Read healthcheck "start_interval" in docker compose/stack config
Relates to docker-client/docker-compose-v3#392
1 parent fb9f9f3 commit 345ced1

File tree

2 files changed

+16
-23
lines changed

2 files changed

+16
-23
lines changed

client/src/main/groovy/de/gesellix/docker/client/stack/DeployConfigReader.groovy

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -346,8 +346,7 @@ class DeployConfigReader {
346346
if (networkConfig?.external?.external) {
347347
if (networkConfig?.external?.name) {
348348
return networkConfig.external.name
349-
}
350-
else {
349+
} else {
351350
return networkName
352351
}
353352
}
@@ -403,10 +402,9 @@ class DeployConfigReader {
403402
if (healthcheck.startPeriod) {
404403
startPeriod = parseDuration(healthcheck.startPeriod).toNanos()
405404
}
406-
// TODO add this one
407-
// if (healthcheck.startInterval) {
408-
// startInterval = parseDuration(healthcheck.startInterval).toNanos()
409-
// }
405+
if (healthcheck.startInterval) {
406+
startInterval = parseDuration(healthcheck.startInterval).toNanos()
407+
}
410408

411409
return new HealthConfig(
412410
healthcheck.test.parts,
@@ -504,8 +502,7 @@ class DeployConfigReader {
504502
default:
505503
throw new IllegalArgumentException("unknown restart policy: ${restart}")
506504
}
507-
}
508-
else {
505+
} else {
509506
Long delay = null
510507
if (restartPolicy.delay) {
511508
delay = parseDuration(restartPolicy.delay).toNanos()
@@ -564,8 +561,7 @@ class DeployConfigReader {
564561
if (limits.nanoCpus.contains('/')) {
565562
// TODO
566563
throw new UnsupportedOperationException("not supported, yet")
567-
}
568-
else {
564+
} else {
569565
return new Limit(
570566
(parseDouble(limits.nanoCpus) * nanoMultiplier).longValue(),
571567
parseLong(limits.memory),
@@ -588,8 +584,7 @@ class DeployConfigReader {
588584
if (reservations.nanoCpus.contains('/')) {
589585
// TODO
590586
throw new UnsupportedOperationException("not supported, yet")
591-
}
592-
else {
587+
} else {
593588
return new ResourceObject(
594589
(parseDouble(reservations.nanoCpus) * nanoMultiplier).longValue(),
595590
parseLong(reservations.memory),
@@ -653,8 +648,7 @@ class DeployConfigReader {
653648
null,
654649
null)
655650
source = stackVolume.external.name
656-
}
657-
else {
651+
} else {
658652
Map<String, String> labels = stackVolume?.labels?.entries ?: [:]
659653
labels[(ManageStackClient.LabelNamespace)] = namespace
660654
volumeOptions = new MountVolumeOptions(
@@ -701,8 +695,7 @@ class DeployConfigReader {
701695
MountBindOptions getBindOptions(ServiceVolumeBind bind) {
702696
if (bind?.propagation) {
703697
return new MountBindOptions(MountBindOptions.Propagation.values().find { MountBindOptions.Propagation propagation -> propagation.getValue() == bind.propagation }, null)
704-
}
705-
else {
698+
} else {
706699
return null
707700
}
708701
}
@@ -760,11 +753,9 @@ class DeployConfigReader {
760753
null,
761754
getLabels(namespace, null)
762755
)
763-
}
764-
else if (network?.external?.external) {
756+
} else if (network?.external?.external) {
765757
externalNetworkNames << (network.external.name ?: internalName)
766-
}
767-
else {
758+
} else {
768759
networkSpec[internalName] = new NetworkCreateRequest(
769760
internalName,
770761
true,

client/src/test/groovy/de/gesellix/docker/client/stack/DeployConfigReaderTest.groovy

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -556,14 +556,16 @@ class DeployConfigReaderTest extends Specification {
556556
test: new Command(parts: ["EXEC", "touch", "/foo"]),
557557
timeout: "30s",
558558
interval: "2ms",
559-
retries: 10
559+
retries: 10,
560+
startPeriod: "1s",
561+
startInterval: "500ms",
560562
)) == new HealthConfig(
561563
["EXEC", "touch", "/foo"],
562564
Duration.of(2, ChronoUnit.MILLIS).toNanos().longValue(),
563565
Duration.of(30, ChronoUnit.SECONDS).toNanos().longValue(),
564566
10,
565-
null,
566-
null
567+
Duration.of(1, ChronoUnit.SECONDS).toNanos().longValue(),
568+
Duration.of(500, ChronoUnit.MILLIS).toNanos().longValue()
567569
)
568570
}
569571

0 commit comments

Comments
 (0)