diff --git a/contentgrid-junit-jupiter-k8s/src/main/java/com/contentgrid/junit/jupiter/k8s/log/KubernetesLoggerExtension.java b/contentgrid-junit-jupiter-k8s/src/main/java/com/contentgrid/junit/jupiter/k8s/log/KubernetesLoggerExtension.java index be3cd12..857ef0f 100644 --- a/contentgrid-junit-jupiter-k8s/src/main/java/com/contentgrid/junit/jupiter/k8s/log/KubernetesLoggerExtension.java +++ b/contentgrid-junit-jupiter-k8s/src/main/java/com/contentgrid/junit/jupiter/k8s/log/KubernetesLoggerExtension.java @@ -4,6 +4,7 @@ import static com.contentgrid.junit.jupiter.helpers.FieldHelper.getFieldValue; import com.contentgrid.junit.jupiter.helpers.FieldHelper; +import com.contentgrid.junit.jupiter.k8s.resource.AwaitableResource.Event.RepeatCount; import io.fabric8.junit.jupiter.HasKubernetesClient; import java.lang.reflect.Field; import java.lang.reflect.Modifier; @@ -62,10 +63,18 @@ private void dumpLogs(ExtensionContext context, boolean isStatic) throws Illegal if(logger != null) { logger.logs() .forEachOrdered(line -> log.info("[{}] {} {} >>> {}", line.resource(), line.timestamp(), line.container(), line.line())); + logger.events() + .forEachOrdered(event -> log.info("[{}] {} {} >>> [{}] {}{}", + event.resource(), event.timestamp(), event.type(), event.reason(), event.message(), + event.repeat().count() > 1 ? formatRepeatCount(event.repeat()) : "")); } } } + private static String formatRepeatCount(RepeatCount repeat) { + return " (×%s in %ss)".formatted(repeat.count(), repeat.period().getSeconds()); + } + @Override public void handleBeforeEachMethodExecutionException(ExtensionContext context, Throwable throwable) throws Throwable { diff --git a/contentgrid-junit-jupiter-k8s/src/main/java/com/contentgrid/junit/jupiter/k8s/log/KubernetesResourceLogger.java b/contentgrid-junit-jupiter-k8s/src/main/java/com/contentgrid/junit/jupiter/k8s/log/KubernetesResourceLogger.java index 3829257..3223050 100644 --- a/contentgrid-junit-jupiter-k8s/src/main/java/com/contentgrid/junit/jupiter/k8s/log/KubernetesResourceLogger.java +++ b/contentgrid-junit-jupiter-k8s/src/main/java/com/contentgrid/junit/jupiter/k8s/log/KubernetesResourceLogger.java @@ -2,6 +2,7 @@ import com.contentgrid.helm.HelmInstallCommand; import com.contentgrid.junit.jupiter.k8s.resource.AwaitableResource; +import com.contentgrid.junit.jupiter.k8s.resource.AwaitableResource.Event; import com.contentgrid.junit.jupiter.k8s.resource.AwaitableResource.LogLine; import com.contentgrid.junit.jupiter.k8s.resource.ConfigurableResourceSet; import com.contentgrid.junit.jupiter.k8s.resource.ResourceMatcher; @@ -50,6 +51,12 @@ public Stream logs() { .filter(logLine -> logLine.timestamp().isAfter(logsSince)); } + public Stream events() { + return resourceSet.stream() + .flatMap(AwaitableResource::events) + .filter(event -> event.timestamp().plus(event.repeat().period()).isAfter(logsSince)); + } + @Override public void close() { resourceSet.close();