From 0d782f477f8a647fcb4ec3d3e1f1e7ac681d741f Mon Sep 17 00:00:00 2001 From: JoannaaKL Date: Mon, 3 Oct 2022 13:50:35 +0000 Subject: [PATCH] Revert "Check service exit code if there is no healtcheck configured" This reverts commit fec24e834137afe2dc751a38707d0e399c10f8fb. --- .../ContainerOperationProvider.cs | 7 +-- .../L0/Worker/ContainerOperationProviderL0.cs | 63 ++----------------- 2 files changed, 6 insertions(+), 64 deletions(-) diff --git a/src/Runner.Worker/ContainerOperationProvider.cs b/src/Runner.Worker/ContainerOperationProvider.cs index ab6cbcad5..2fc597308 100644 --- a/src/Runner.Worker/ContainerOperationProvider.cs +++ b/src/Runner.Worker/ContainerOperationProvider.cs @@ -429,13 +429,8 @@ namespace GitHub.Runner.Worker string serviceHealth = (await _dockerManager.DockerInspect(context: executionContext, dockerObject: container.ContainerId, options: healthCheck)).FirstOrDefault(); if (string.IsNullOrEmpty(serviceHealth)) { - string exitCode = "--format=\"{{print .State.ExitCode}}\""; - string serviceExitCode = (await _dockerManager.DockerInspect(context: executionContext, dockerObject: container.ContainerId, options: exitCode)).FirstOrDefault(); - - // Container has no healthcheck but didn't exit with an error code - if ("0".Equals(serviceExitCode)) return "healthy"; // Container has no HEALTHCHECK - else return "unhealthy"; + return String.Empty; } var retryCount = 0; while (string.Equals(serviceHealth, "starting", StringComparison.OrdinalIgnoreCase)) diff --git a/src/Test/L0/Worker/ContainerOperationProviderL0.cs b/src/Test/L0/Worker/ContainerOperationProviderL0.cs index 8d4c2bb66..bfc09f343 100644 --- a/src/Test/L0/Worker/ContainerOperationProviderL0.cs +++ b/src/Test/L0/Worker/ContainerOperationProviderL0.cs @@ -24,9 +24,7 @@ namespace GitHub.Runner.Common.Tests.Worker private Mock pagingLogger; private List healthyDockerStatus = new List { "healthy" }; private List unhealthyDockerStatus = new List { "unhealthy" }; - private List emptyDockerStatus = new List { "" }; private List dockerLogs = new List { "log1", "log2", "log3" }; - string healthCheck = "--format=\"{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}\""; List containers = new List(); @@ -37,7 +35,7 @@ namespace GitHub.Runner.Common.Tests.Worker { //Arrange Setup(); - _dockerManager.Setup(x => x.DockerInspect(_ec.Object, It.IsAny(), healthCheck)).Returns(Task.FromResult(unhealthyDockerStatus)); + _dockerManager.Setup(x => x.DockerInspect(_ec.Object, It.IsAny(), It.IsAny())).Returns(Task.FromResult(unhealthyDockerStatus)); //Act try @@ -49,7 +47,6 @@ namespace GitHub.Runner.Common.Tests.Worker //Assert Assert.Equal(TaskResult.Failed, _ec.Object.Result ?? TaskResult.Failed); - _dockerManager.Verify(x => x.DockerInspect(_ec.Object, It.IsAny(), It.IsAny()), Times.Once()); } } @@ -60,77 +57,27 @@ namespace GitHub.Runner.Common.Tests.Worker { //Arrange Setup(); - _dockerManager.Setup(x => x.DockerInspect(_ec.Object, It.IsAny(), healthCheck)).Returns(Task.FromResult(unhealthyDockerStatus)); + _dockerManager.Setup(x => x.DockerInspect(_ec.Object, It.IsAny(), It.IsAny())).Returns(Task.FromResult(unhealthyDockerStatus)); //Act and Assert await Assert.ThrowsAsync(() => containerOperationProvider.RunContainersHealthcheck(_ec.Object, containers)); - _dockerManager.Verify(x => x.DockerInspect(_ec.Object, It.IsAny(), It.IsAny()), Times.Once()); + } [Fact] [Trait("Level", "L0")] [Trait("Category", "Worker")] - public async void RunServiceContainersHealthcheck_HealthyServiceContainer_AssertSucceededTask() + public async void RunServiceContainersHealthcheck_healthyServiceContainer_AssertSucceededTask() { //Arrange Setup(); - _dockerManager.Setup(x => x.DockerInspect(_ec.Object, It.IsAny(), healthCheck)).Returns(Task.FromResult(healthyDockerStatus)); + _dockerManager.Setup(x => x.DockerInspect(_ec.Object, It.IsAny(), It.IsAny())).Returns(Task.FromResult(healthyDockerStatus)); //Act await containerOperationProvider.RunContainersHealthcheck(_ec.Object, containers); //Assert Assert.Equal(TaskResult.Succeeded, _ec.Object.Result ?? TaskResult.Succeeded); - _dockerManager.Verify(x => x.DockerInspect(_ec.Object, It.IsAny(), It.IsAny()), Times.Once()); - - } - - [Fact] - [Trait("Level", "L0")] - [Trait("Category", "Worker")] - public async void RunServiceContainersHealthcheck_ServiceContainerWithoutHealthcheckAndWithOkExitStatus_AssertSucceededTask() - { - - string exitCode = "--format=\"{{print .State.ExitCode}}\""; - //Arrange - Setup(); - _dockerManager.Setup(x => x.DockerInspect(_ec.Object, It.IsAny(), healthCheck)).Returns(Task.FromResult(emptyDockerStatus)); - _dockerManager.Setup(x => x.DockerInspect(_ec.Object, It.IsAny(), exitCode)).Returns(Task.FromResult(new List { "0" })); - - //Act - await containerOperationProvider.RunContainersHealthcheck(_ec.Object, containers); - - //Assert - Assert.Equal(TaskResult.Succeeded, _ec.Object.Result ?? TaskResult.Succeeded); - _dockerManager.Verify(x => x.DockerInspect(_ec.Object, It.IsAny(), It.IsAny()), Times.Exactly(2)); - - } - - - [Fact] - [Trait("Level", "L0")] - [Trait("Category", "Worker")] - public async void RunServiceContainersHealthcheck_ServiceContainerWithoutHealthcheckAndWithErrorExitStatus_AssertSucceededTask() - { - - string exitCode = "--format=\"{{print .State.ExitCode}}\""; - //Arrange - Setup(); - _dockerManager.Setup(x => x.DockerInspect(_ec.Object, It.IsAny(), healthCheck)).Returns(Task.FromResult(emptyDockerStatus)); - _dockerManager.Setup(x => x.DockerInspect(_ec.Object, It.IsAny(), exitCode)).Returns(Task.FromResult(new List { "127" })); - - //Act - try - { - await containerOperationProvider.RunContainersHealthcheck(_ec.Object, containers); - - } - catch (InvalidOperationException) - { - //Assert - Assert.Equal(TaskResult.Failed, _ec.Object.Result ?? TaskResult.Failed); - _dockerManager.Verify(x => x.DockerInspect(_ec.Object, It.IsAny(), It.IsAny()), Times.Exactly(2)); - } }