public override async Task <bool> IsHealthy() { var sp = new Stopwatch(); sp.Start(); Logger.Log($"TCP health check of {ServiceName} on port {_servicePort} has been started.."); var attempts = 1; while (sp.Elapsed.Seconds < TimeoutInSeconds) { var isAvailable = await PortAvailabilityChecker.IsAvailable(_servicePort); var result = isAvailable ? "successful" : "failed"; Logger.Log($"{attempts} TCP health check of {ServiceName} on port {_servicePort} was {result}"); if (isAvailable) { Logger.Log($"TCP health check of {ServiceName} returns success"); return(true); } attempts++; } var exceptionMessage = $"Health check failed! Service {ServiceName} was not available on port number {_servicePort} after {TimeoutInSeconds} seconds."; Logger.Log(exceptionMessage); throw new WaitForDockerException(exceptionMessage); }
private static async Task GetPreComposeCheck(ServicePort servicePort, ILogger logger) { var isServiceUp = await PortAvailabilityChecker.IsAvailable(servicePort.Port); logger.Log((isServiceUp ? "Warning! " : string.Empty) + $"service {servicePort.Name} on port: {servicePort.Port} was " + (isServiceUp ? string.Empty : "not ") + "occupied before docker compose execution"); }