diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index df0d2eee2b..63f4573e9e 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -26,7 +26,7 @@ jobs: cache: 'maven' - name: Check code format run: | - ./mvnw ${MAVEN_ARGS} spotless:check --file pom.xml + ./mvnw ${MAVEN_ARGS} spotless:check --file pom.xml -Dhighest-basedir=$PWD - name: Run unit tests run: ./mvnw ${MAVEN_ARGS} clean install -Pno-apt --file pom.xml diff --git a/bootstrapper-maven-plugin/src/main/java/io/javaoperatorsdk/boostrapper/Bootstrapper.java b/bootstrapper-maven-plugin/src/main/java/io/javaoperatorsdk/boostrapper/Bootstrapper.java index ed12e7619d..826835f9d3 100644 --- a/bootstrapper-maven-plugin/src/main/java/io/javaoperatorsdk/boostrapper/Bootstrapper.java +++ b/bootstrapper-maven-plugin/src/main/java/io/javaoperatorsdk/boostrapper/Bootstrapper.java @@ -27,8 +27,7 @@ public class Bootstrapper { private static final Map<String, String> TOP_LEVEL_STATIC_FILES = Map.of("_.gitignore", ".gitignore", "README.md", "README.md"); private static final List<String> JAVA_FILES = - List.of("CustomResource.java", "Reconciler.java", - "Spec.java", "Status.java"); + List.of("CustomResource.java", "Reconciler.java", "Spec.java", "Status.java"); public void create(File targetDir, String groupId, String artifactId) { try { @@ -67,8 +66,7 @@ private void addJavaFiles(File projectDir, String groupId, String artifactId) { addTemplatedFile(projectDir, "Runner.java", groupId, artifactId, targetDir, null); addTemplatedFile(projectDir, "ConfigMapDependentResource.java", groupId, artifactId, targetDir, null); - addTemplatedFile(projectDir, "ReconcilerIntegrationTest.java", groupId, - artifactId, + addTemplatedFile(projectDir, "ReconcilerIntegrationTest.java", groupId, artifactId, targetTestDir, artifactClassId(artifactId) + "ReconcilerIntegrationTest.java"); } catch (IOException e) { throw new RuntimeException(e); @@ -89,10 +87,9 @@ private void addTemplatedFile(File projectDir, String fileName, String groupId, private void addTemplatedFile(File projectDir, String fileName, String groupId, String artifactId, File targetDir, String targetFileName) { try { - var values = Map.of("groupId", groupId, "artifactId", artifactId, - "artifactClassId", artifactClassId(artifactId), - "josdkVersion", Versions.JOSDK, - "fabric8Version", Versions.KUBERNETES_CLIENT); + var values = Map.of("groupId", groupId, "artifactId", artifactId, "artifactClassId", + artifactClassId(artifactId), "josdkVersion", Versions.JOSDK, "fabric8Version", + Versions.KUBERNETES_CLIENT); var mustache = mustacheFactory.compile("templates/" + fileName); var targetFile = new File(targetDir == null ? projectDir : targetDir, @@ -132,8 +129,7 @@ private void addStaticFile(File targetDir, String fileName, String targetFilenam public static String artifactClassId(String artifactId) { var parts = artifactId.split("-"); - return Arrays.stream(parts).map(p -> p.substring(0, 1) - .toUpperCase() + p.substring(1)) + return Arrays.stream(parts).map(p -> p.substring(0, 1).toUpperCase() + p.substring(1)) .collect(Collectors.joining("")); } diff --git a/bootstrapper-maven-plugin/src/main/java/io/javaoperatorsdk/boostrapper/BootstrapperMojo.java b/bootstrapper-maven-plugin/src/main/java/io/javaoperatorsdk/boostrapper/BootstrapperMojo.java index 0d87a152e2..cb470f7e87 100644 --- a/bootstrapper-maven-plugin/src/main/java/io/javaoperatorsdk/boostrapper/BootstrapperMojo.java +++ b/bootstrapper-maven-plugin/src/main/java/io/javaoperatorsdk/boostrapper/BootstrapperMojo.java @@ -8,8 +8,7 @@ import org.apache.maven.plugins.annotations.Parameter; @Mojo(name = "create", requiresProject = false) -public class BootstrapperMojo - extends AbstractMojo { +public class BootstrapperMojo extends AbstractMojo { @Parameter(defaultValue = "${projectGroupId}") protected String projectGroupId; @@ -17,8 +16,7 @@ public class BootstrapperMojo @Parameter(defaultValue = "${projectArtifactId}") protected String projectArtifactId; - public void execute() - throws MojoExecutionException { + public void execute() throws MojoExecutionException { String userDir = System.getProperty("user.dir"); new Bootstrapper().create(new File(userDir), projectGroupId, projectArtifactId); } diff --git a/bootstrapper-maven-plugin/src/test/java/io/javaoperatorsdk/bootstrapper/BootstrapperTest.java b/bootstrapper-maven-plugin/src/test/java/io/javaoperatorsdk/bootstrapper/BootstrapperTest.java index 0fde63059a..1e5c6d5afd 100644 --- a/bootstrapper-maven-plugin/src/test/java/io/javaoperatorsdk/bootstrapper/BootstrapperTest.java +++ b/bootstrapper-maven-plugin/src/test/java/io/javaoperatorsdk/bootstrapper/BootstrapperTest.java @@ -30,9 +30,8 @@ void copiesFilesToTarget() { private void assertProjectCompiles() { try { - var process = Runtime.getRuntime() - .exec( - "mvn clean install -f target/test-project/pom.xml -DskipTests -Dspotless.apply.skip"); + var process = Runtime.getRuntime().exec( + "mvn clean install -f target/test-project/pom.xml -DskipTests -Dspotless.apply.skip"); BufferedReader stdOut = new BufferedReader(new InputStreamReader(process.getInputStream())); diff --git a/caffeine-bounded-cache-support/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedItemStores.java b/caffeine-bounded-cache-support/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedItemStores.java index a58d58bd2a..5a2cb98429 100644 --- a/caffeine-bounded-cache-support/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedItemStores.java +++ b/caffeine-bounded-cache-support/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedItemStores.java @@ -39,11 +39,8 @@ private CaffeineBoundedItemStores() {} */ @SuppressWarnings("unused") public static <R extends HasMetadata> BoundedItemStore<R> boundedItemStore( - KubernetesClient client, Class<R> rClass, - Duration accessExpireDuration) { - Cache<String, R> cache = Caffeine.newBuilder() - .expireAfterAccess(accessExpireDuration) - .build(); + KubernetesClient client, Class<R> rClass, Duration accessExpireDuration) { + Cache<String, R> cache = Caffeine.newBuilder().expireAfterAccess(accessExpireDuration).build(); return boundedItemStore(client, rClass, cache); } diff --git a/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedCacheClusterScopeIT.java b/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedCacheClusterScopeIT.java index 252b20f4a4..b4833d8b7d 100644 --- a/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedCacheClusterScopeIT.java +++ b/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedCacheClusterScopeIT.java @@ -17,23 +17,16 @@ public class CaffeineBoundedCacheClusterScopeIT extends BoundedCacheTestBase<BoundedCacheClusterScopeTestCustomResource> { @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new BoundedCacheClusterScopeTestReconciler(), o -> { - o.withItemStore(boundedItemStore( - new KubernetesClientBuilder().build(), - BoundedCacheClusterScopeTestCustomResource.class, - Duration.ofMinutes(1), - 1)); - }) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new BoundedCacheClusterScopeTestReconciler(), o -> { + o.withItemStore(boundedItemStore(new KubernetesClientBuilder().build(), + BoundedCacheClusterScopeTestCustomResource.class, Duration.ofMinutes(1), 1)); + }).build(); @Override BoundedCacheClusterScopeTestCustomResource createTestResource(int index) { var res = new BoundedCacheClusterScopeTestCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(RESOURCE_NAME_PREFIX + index) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(RESOURCE_NAME_PREFIX + index).build()); res.setSpec(new BoundedCacheTestSpec()); res.getSpec().setData(INITIAL_DATA_PREFIX + index); res.getSpec().setTargetNamespace(extension.getNamespace()); diff --git a/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedCacheNamespacedIT.java b/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedCacheNamespacedIT.java index ae7f8f5873..909fc0c223 100644 --- a/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedCacheNamespacedIT.java +++ b/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedCacheNamespacedIT.java @@ -19,18 +19,13 @@ class CaffeineBoundedCacheNamespacedIT @RegisterExtension LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder().withReconciler(new BoundedCacheTestReconciler(), o -> { - o.withItemStore(boundedItemStore( - new KubernetesClientBuilder().build(), BoundedCacheTestCustomResource.class, - Duration.ofMinutes(1), - 1)); - }) - .build(); + o.withItemStore(boundedItemStore(new KubernetesClientBuilder().build(), + BoundedCacheTestCustomResource.class, Duration.ofMinutes(1), 1)); + }).build(); BoundedCacheTestCustomResource createTestResource(int index) { var res = new BoundedCacheTestCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(RESOURCE_NAME_PREFIX + index) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(RESOURCE_NAME_PREFIX + index).build()); res.setSpec(new BoundedCacheTestSpec()); res.getSpec().setData(INITIAL_DATA_PREFIX + index); res.getSpec().setTargetNamespace(extension.getNamespace()); diff --git a/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/sample/AbstractTestReconciler.java b/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/sample/AbstractTestReconciler.java index 10ab50138a..43bef2f958 100644 --- a/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/sample/AbstractTestReconciler.java +++ b/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/sample/AbstractTestReconciler.java @@ -37,12 +37,9 @@ public abstract class AbstractTestReconciler<P extends CustomResource<BoundedCac public static final String DATA_KEY = "dataKey"; @Override - public UpdateControl<P> reconcile( - P resource, - Context<P> context) { + public UpdateControl<P> reconcile(P resource, Context<P> context) { var maybeConfigMap = context.getSecondaryResource(ConfigMap.class); - maybeConfigMap.ifPresentOrElse( - cm -> updateConfigMapIfNeeded(cm, resource, context), + maybeConfigMap.ifPresentOrElse(cm -> updateConfigMapIfNeeded(cm, resource, context), () -> createConfigMap(resource, context)); ensureStatus(resource); log.info("Reconciled: {}", resource.getMetadata().getName()); @@ -59,32 +56,24 @@ protected void updateConfigMapIfNeeded(ConfigMap cm, P resource, Context<P> cont protected void createConfigMap(P resource, Context<P> context) { var cm = new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(resource.getMetadata().getName()) - .withNamespace(resource.getSpec().getTargetNamespace()) - .build()) - .withData(Map.of(DATA_KEY, resource.getSpec().getData())) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(resource.getMetadata().getName()) + .withNamespace(resource.getSpec().getTargetNamespace()).build()) + .withData(Map.of(DATA_KEY, resource.getSpec().getData())).build(); cm.addOwnerReference(resource); context.getClient().configMaps().resource(cm).create(); } @Override - public List<EventSource<?, P>> prepareEventSources( - EventSourceContext<P> context) { - - var boundedItemStore = - boundedItemStore(new KubernetesClientBuilder().build(), - ConfigMap.class, Duration.ofMinutes(1), 1); // setting max size for testing purposes - - var es = new InformerEventSource<>( - InformerEventSourceConfiguration.from(ConfigMap.class, primaryClass()) - .withItemStore(boundedItemStore) - .withSecondaryToPrimaryMapper( - Mappers.fromOwnerReferences(context.getPrimaryResourceClass(), - this instanceof BoundedCacheClusterScopeTestReconciler)) - .build(), - context); + public List<EventSource<?, P>> prepareEventSources(EventSourceContext<P> context) { + + var boundedItemStore = boundedItemStore(new KubernetesClientBuilder().build(), ConfigMap.class, + Duration.ofMinutes(1), 1); // setting max size for testing purposes + + var es = new InformerEventSource<>(InformerEventSourceConfiguration + .from(ConfigMap.class, primaryClass()).withItemStore(boundedItemStore) + .withSecondaryToPrimaryMapper(Mappers.fromOwnerReferences(context.getPrimaryResourceClass(), + this instanceof BoundedCacheClusterScopeTestReconciler)) + .build(), context); return List.of(es); } @@ -96,14 +85,11 @@ private void ensureStatus(P resource) { } public static <R extends HasMetadata> BoundedItemStore<R> boundedItemStore( - KubernetesClient client, Class<R> rClass, - Duration accessExpireDuration, + KubernetesClient client, Class<R> rClass, Duration accessExpireDuration, // max size is only for testing purposes long cacheMaxSize) { - Cache<String, R> cache = Caffeine.newBuilder() - .expireAfterAccess(accessExpireDuration) - .maximumSize(cacheMaxSize) - .build(); + Cache<String, R> cache = Caffeine.newBuilder().expireAfterAccess(accessExpireDuration) + .maximumSize(cacheMaxSize).build(); return CaffeineBoundedItemStores.boundedItemStore(client, rClass, cache); } diff --git a/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/sample/clusterscope/BoundedCacheClusterScopeTestReconciler.java b/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/sample/clusterscope/BoundedCacheClusterScopeTestReconciler.java index 84448fc9d8..93f103cbf2 100644 --- a/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/sample/clusterscope/BoundedCacheClusterScopeTestReconciler.java +++ b/caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/sample/clusterscope/BoundedCacheClusterScopeTestReconciler.java @@ -4,8 +4,8 @@ import io.javaoperatorsdk.operator.processing.event.source.cache.sample.AbstractTestReconciler; @ControllerConfiguration -public class BoundedCacheClusterScopeTestReconciler extends - AbstractTestReconciler<BoundedCacheClusterScopeTestCustomResource> { +public class BoundedCacheClusterScopeTestReconciler + extends AbstractTestReconciler<BoundedCacheClusterScopeTestCustomResource> { @Override protected Class<BoundedCacheClusterScopeTestCustomResource> primaryClass() { diff --git a/contributing/eclipse-google-style.xml b/contributing/eclipse-google-style.xml index 64340b1054..39ada243ec 100644 --- a/contributing/eclipse-google-style.xml +++ b/contributing/eclipse-google-style.xml @@ -65,7 +65,7 @@ <setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/> -<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/> +<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/> <setting id="org.eclipse.jdt.core.formatter.wrap_non_simple_local_variable_annotation" value="true"/> diff --git a/contributing/eclipse.importorder b/contributing/eclipse.importorder deleted file mode 100644 index 8a156041e9..0000000000 --- a/contributing/eclipse.importorder +++ /dev/null @@ -1,7 +0,0 @@ -0=java -1=javax -2=org -3=io -4=com -5= -6=\# diff --git a/micrometer-support/src/main/java/io/javaoperatorsdk/operator/monitoring/micrometer/MicrometerMetrics.java b/micrometer-support/src/main/java/io/javaoperatorsdk/operator/monitoring/micrometer/MicrometerMetrics.java index 07106d9b3c..dd8ecb9e9c 100644 --- a/micrometer-support/src/main/java/io/javaoperatorsdk/operator/monitoring/micrometer/MicrometerMetrics.java +++ b/micrometer-support/src/main/java/io/javaoperatorsdk/operator/monitoring/micrometer/MicrometerMetrics.java @@ -137,12 +137,8 @@ public <T> T timeControllerExecution(ControllerExecution<T> execution) { final var tags = new ArrayList<Tag>(16); tags.add(Tag.of(CONTROLLER, name)); addMetadataTags(resourceID, metadata, tags, true); - final var timer = - Timer.builder(execName) - .tags(tags) - .publishPercentiles(0.3, 0.5, 0.95) - .publishPercentileHistogram() - .register(registry); + final var timer = Timer.builder(execName).tags(tags).publishPercentiles(0.3, 0.5, 0.95) + .publishPercentileHistogram().register(registry); try { final var result = timer.record(() -> { try { @@ -152,14 +148,11 @@ public <T> T timeControllerExecution(ControllerExecution<T> execution) { } }); final var successType = execution.successTypeName(result); - registry - .counter(execName + SUCCESS_SUFFIX, CONTROLLER, name, TYPE, successType) - .increment(); + registry.counter(execName + SUCCESS_SUFFIX, CONTROLLER, name, TYPE, successType).increment(); return result; } catch (Exception e) { final var exception = e.getClass().getSimpleName(); - registry - .counter(execName + FAILURE_SUFFIX, CONTROLLER, name, EXCEPTION, exception) + registry.counter(execName + FAILURE_SUFFIX, CONTROLLER, name, EXCEPTION, exception) .increment(); throw e; } @@ -168,13 +161,11 @@ public <T> T timeControllerExecution(ControllerExecution<T> execution) { @Override public void receivedEvent(Event event, Map<String, Object> metadata) { if (event instanceof ResourceEvent) { - incrementCounter(event.getRelatedCustomResourceID(), EVENTS_RECEIVED, - metadata, + incrementCounter(event.getRelatedCustomResourceID(), EVENTS_RECEIVED, metadata, Tag.of(EVENT, event.getClass().getSimpleName()), Tag.of(ACTION, ((ResourceEvent) event).getAction().toString())); } else { - incrementCounter(event.getRelatedCustomResourceID(), EVENTS_RECEIVED, - metadata, + incrementCounter(event.getRelatedCustomResourceID(), EVENTS_RECEIVED, metadata, Tag.of(EVENT, event.getClass().getSimpleName())); } } @@ -190,8 +181,7 @@ public void cleanupDoneFor(ResourceID resourceID, Map<String, Object> metadata) public void reconcileCustomResource(HasMetadata resource, RetryInfo retryInfoNullable, Map<String, Object> metadata) { Optional<RetryInfo> retryInfo = Optional.ofNullable(retryInfoNullable); - incrementCounter(ResourceID.fromResource(resource), RECONCILIATIONS_STARTED, - metadata, + incrementCounter(ResourceID.fromResource(resource), RECONCILIATIONS_STARTED, metadata, Tag.of(RECONCILIATIONS_RETRIES_NUMBER, String.valueOf(retryInfo.map(RetryInfo::getAttemptCount).orElse(0))), Tag.of(RECONCILIATIONS_RETRIES_LAST, @@ -244,8 +234,8 @@ public void failedReconciliation(HasMetadata resource, Exception exception, } - private void addMetadataTags(ResourceID resourceID, Map<String, Object> metadata, - List<Tag> tags, boolean prefixed) { + private void addMetadataTags(ResourceID resourceID, Map<String, Object> metadata, List<Tag> tags, + boolean prefixed) { if (collectPerResourceMetrics) { addTag(NAME, resourceID.getName(), tags, prefixed); addTagOmittingOnEmptyValue(NAMESPACE, resourceID.getNamespace().orElse(null), tags, prefixed); @@ -432,8 +422,8 @@ private DelayedCleaner(MeterRegistry registry, int cleanUpDelayInSeconds, @Override public void removeMetersFor(ResourceID resourceID) { // schedule deletion of meters associated with ResourceID - metersCleaner.schedule(() -> super.removeMetersFor(resourceID), - cleanUpDelayInSeconds, TimeUnit.SECONDS); + metersCleaner.schedule(() -> super.removeMetersFor(resourceID), cleanUpDelayInSeconds, + TimeUnit.SECONDS); } } } diff --git a/micrometer-support/src/test/java/io/javaoperatorsdk/operator/monitoring/micrometer/AbstractMicrometerMetricsTestFixture.java b/micrometer-support/src/test/java/io/javaoperatorsdk/operator/monitoring/micrometer/AbstractMicrometerMetricsTestFixture.java index 8575f07243..ff068e24a2 100644 --- a/micrometer-support/src/test/java/io/javaoperatorsdk/operator/monitoring/micrometer/AbstractMicrometerMetricsTestFixture.java +++ b/micrometer-support/src/test/java/io/javaoperatorsdk/operator/monitoring/micrometer/AbstractMicrometerMetricsTestFixture.java @@ -27,27 +27,22 @@ public abstract class AbstractMicrometerMetricsTestFixture { @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withConfigurationService(overrider -> overrider.withMetrics(metrics)) - .withReconciler(new MetricsCleaningTestReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withConfigurationService(overrider -> overrider.withMetrics(metrics)) + .withReconciler(new MetricsCleaningTestReconciler()).build(); protected abstract MicrometerMetrics getMetrics(); @Test void properlyHandlesResourceDeletion() throws Exception { - var testResource = new ConfigMapBuilder() - .withNewMetadata() - .withName(testResourceName) - .endMetadata() - .build(); + var testResource = + new ConfigMapBuilder().withNewMetadata().withName(testResourceName).endMetadata().build(); final var created = operator.create(testResource); // make sure the resource is created - await().until(() -> !operator.get(ConfigMap.class, testResourceName) - .getMetadata().getFinalizers().isEmpty()); + await().until(() -> !operator.get(ConfigMap.class, testResourceName).getMetadata() + .getFinalizers().isEmpty()); final var resourceID = ResourceID.fromResource(created); final var meters = preDeleteChecks(resourceID); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/AggregatedOperatorException.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/AggregatedOperatorException.java index 2fdc80d606..00fab7f96e 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/AggregatedOperatorException.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/AggregatedOperatorException.java @@ -24,9 +24,10 @@ public Map<String, Exception> getAggregatedExceptions() { @Override public String getMessage() { - return super.getMessage() + " " + causes.entrySet().stream() - .map(entry -> entry.getKey() + " -> " + exceptionDescription(entry)) - .collect(Collectors.joining("\n - ", "Details:\n - ", "")); + return super.getMessage() + " " + + causes.entrySet().stream() + .map(entry -> entry.getKey() + " -> " + exceptionDescription(entry)) + .collect(Collectors.joining("\n - ", "Details:\n - ", "")); } private static String exceptionDescription(Entry<String, Exception> entry) { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/CustomResourceUtils.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/CustomResourceUtils.java index 6ae222c1c3..39a265ea0a 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/CustomResourceUtils.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/CustomResourceUtils.java @@ -19,23 +19,13 @@ public static void assertCustomResource(Class<?> resClass, CustomResourceDefinit var namespaced = Namespaced.class.isAssignableFrom(resClass); if (!namespaced && Namespaced.class.getSimpleName().equals(crd.getSpec().getScope())) { - throw new OperatorException( - "Custom resource '" - + resClass.getName() - + "' must implement '" - + Namespaced.class.getName() - + "' since CRD '" - + crd.getMetadata().getName() - + "' is scoped as 'Namespaced'"); + throw new OperatorException("Custom resource '" + resClass.getName() + "' must implement '" + + Namespaced.class.getName() + "' since CRD '" + crd.getMetadata().getName() + + "' is scoped as 'Namespaced'"); } else if (namespaced && Cluster.class.getSimpleName().equals(crd.getSpec().getScope())) { - throw new OperatorException( - "Custom resource '" - + resClass.getName() - + "' must not implement '" - + Namespaced.class.getName() - + "' since CRD '" - + crd.getMetadata().getName() - + "' is scoped as 'Cluster'"); + throw new OperatorException("Custom resource '" + resClass.getName() + + "' must not implement '" + Namespaced.class.getName() + "' since CRD '" + + crd.getMetadata().getName() + "' is scoped as 'Cluster'"); } } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/LeaderElectionManager.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/LeaderElectionManager.java index d6ee17a383..41c5679135 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/LeaderElectionManager.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/LeaderElectionManager.java @@ -51,9 +51,8 @@ public boolean isLeaderElectionEnabled() { private void init(LeaderElectionConfiguration config) { this.identity = identity(config); - leaseNamespace = - config.getLeaseNamespace().orElseGet( - () -> configurationService.getKubernetesClient().getConfiguration().getNamespace()); + leaseNamespace = config.getLeaseNamespace().orElseGet( + () -> configurationService.getKubernetesClient().getConfiguration().getNamespace()); if (leaseNamespace == null) { final var message = "Lease namespace is not set and cannot be inferred. Leader election cannot continue."; @@ -62,39 +61,29 @@ private void init(LeaderElectionConfiguration config) { } leaseName = config.getLeaseName(); final var lock = new LeaseLock(leaseNamespace, leaseName, identity); - leaderElector = new LeaderElectorBuilder( - configurationService.getKubernetesClient(), + leaderElector = new LeaderElectorBuilder(configurationService.getKubernetesClient(), configurationService.getExecutorServiceManager().cachingExecutorService()) - .withConfig( - new LeaderElectionConfig( - lock, - config.getLeaseDuration(), - config.getRenewDeadline(), - config.getRetryPeriod(), - leaderCallbacks(config), - // this is required to be false to receive stop event in all cases, thus stopLeading - // is called always when leadership is lost/cancelled - false, - leaseName)) + .withConfig(new LeaderElectionConfig(lock, config.getLeaseDuration(), + config.getRenewDeadline(), config.getRetryPeriod(), leaderCallbacks(config), + // this is required to be false to receive stop event in all cases, thus stopLeading + // is called always when leadership is lost/cancelled + false, leaseName)) .build(); } private LeaderCallbacks leaderCallbacks(LeaderElectionConfiguration config) { - return new LeaderCallbacks( - () -> { - config.getLeaderCallbacks().ifPresent(LeaderCallbacks::onStartLeading); - LeaderElectionManager.this.startLeading(); - }, - () -> { - config.getLeaderCallbacks().ifPresent(LeaderCallbacks::onStopLeading); - LeaderElectionManager.this.stopLeading(); - }, - leader -> { - config.getLeaderCallbacks().ifPresent(cb -> cb.onNewLeader(leader)); - log.info("New leader with identity: {}", leader); - }); + return new LeaderCallbacks(() -> { + config.getLeaderCallbacks().ifPresent(LeaderCallbacks::onStartLeading); + LeaderElectionManager.this.startLeading(); + }, () -> { + config.getLeaderCallbacks().ifPresent(LeaderCallbacks::onStopLeading); + LeaderElectionManager.this.stopLeading(); + }, leader -> { + config.getLeaderCallbacks().ifPresent(cb -> cb.onNewLeader(leader)); + log.info("New leader with identity: {}", leader); + }); } private void startLeading() { @@ -146,20 +135,17 @@ private void checkLeaseAccess() { .filter(rule -> matchesValue(rule.getResources(), LEASES_RESOURCE)) .filter(rule -> rule.getResourceNames().isEmpty() || rule.getResourceNames().contains(leaseName)) - .map(ResourceRule::getVerbs) - .flatMap(Collection::stream) - .distinct() + .map(ResourceRule::getVerbs).flatMap(Collection::stream).distinct() .collect(Collectors.toList()); if (verbsAllowed.contains(UNIVERSAL_VALUE) || verbsAllowed.containsAll(verbsRequired)) { return; } - var missingVerbs = verbsRequired.stream() - .filter(Predicate.not(verbsAllowed::contains)) + var missingVerbs = verbsRequired.stream().filter(Predicate.not(verbsAllowed::contains)) .collect(Collectors.toList()); - throw new OperatorException(NO_PERMISSION_TO_LEASE_RESOURCE_MESSAGE + - " in namespace: " + leaseNamespace + "; missing required verbs: " + missingVerbs); + throw new OperatorException(NO_PERMISSION_TO_LEASE_RESOURCE_MESSAGE + " in namespace: " + + leaseNamespace + "; missing required verbs: " + missingVerbs); } private boolean matchesValue(Collection<String> values, String match) { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java index 9680bc7e8d..41b9368893 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java @@ -122,11 +122,8 @@ public synchronized void start() { } controllerManager.shouldStart(); final var version = configurationService.getVersion(); - log.info( - "Operator SDK {} (commit: {}) built on {} starting...", - version.getSdkVersion(), - version.getCommit(), - version.getBuiltTime()); + log.info("Operator SDK {} (commit: {}) built on {} starting...", version.getSdkVersion(), + version.getCommit(), version.getBuiltTime()); final var clientVersion = Version.clientVersion(); log.info("Client version: {}", clientVersion); @@ -194,19 +191,16 @@ public <P extends HasMetadata> RegisteredController<P> register(Reconciler<P> re * @throws OperatorException if a problem occurred during the registration process */ public <P extends HasMetadata> RegisteredController<P> register(Reconciler<P> reconciler, - ControllerConfiguration<P> configuration) - throws OperatorException { + ControllerConfiguration<P> configuration) throws OperatorException { if (started) { throw new OperatorException("Operator already started. Register all the controllers before."); } if (configuration == null) { - throw new OperatorException( - "Cannot register reconciler with name " + reconciler.getClass().getCanonicalName() + - " reconciler named " + ReconcilerUtils.getNameFor(reconciler) - + " because its configuration cannot be found.\n" + - " Known reconcilers are: " - + configurationService.getKnownReconcilerNames()); + throw new OperatorException("Cannot register reconciler with name " + + reconciler.getClass().getCanonicalName() + " reconciler named " + + ReconcilerUtils.getNameFor(reconciler) + " because its configuration cannot be found.\n" + + " Known reconcilers are: " + configurationService.getKnownReconcilerNames()); } final var controller = new Controller<>(reconciler, configuration, getKubernetesClient()); @@ -217,11 +211,8 @@ public <P extends HasMetadata> RegisteredController<P> register(Reconciler<P> re final var watchedNS = informerConfig.watchAllNamespaces() ? "[all namespaces]" : informerConfig.getEffectiveNamespaces(configuration); - log.info( - "Registered reconciler: '{}' for resource: '{}' for namespace(s): {}", - configuration.getName(), - configuration.getResourceClass(), - watchedNS); + log.info("Registered reconciler: '{}' for resource: '{}' for namespace(s): {}", + configuration.getName(), configuration.getResourceClass(), watchedNS); return controller; } @@ -235,8 +226,7 @@ public <P extends HasMetadata> RegisteredController<P> register(Reconciler<P> re */ public <P extends HasMetadata> RegisteredController<P> register(Reconciler<P> reconciler, Consumer<ControllerConfigurationOverrider<P>> configOverrider) { - final var controllerConfiguration = - configurationService.getConfigurationFor(reconciler); + final var controllerConfiguration = configurationService.getConfigurationFor(reconciler); var configToOverride = ControllerConfigurationOverrider.override(controllerConfiguration); configOverrider.accept(configToOverride); return register(reconciler, configToOverride.build()); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/ReconcilerUtils.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/ReconcilerUtils.java index c2241e4bbb..9a41d27f11 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/ReconcilerUtils.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/ReconcilerUtils.java @@ -81,13 +81,13 @@ public static void checkIfCanAddOwnerReference(HasMetadata owner, HasMetadata re if (owner instanceof Namespaced) { if (!(resource instanceof Namespaced)) { throw new OperatorException( - "Cannot add owner reference from a cluster scoped to a namespace scoped resource." + - resourcesIdentifierDescription(owner, resource)); + "Cannot add owner reference from a cluster scoped to a namespace scoped resource." + + resourcesIdentifierDescription(owner, resource)); } else if (!Objects.equals(owner.getMetadata().getNamespace(), resource.getMetadata().getNamespace())) { throw new OperatorException( - "Cannot add owner reference between two resource in different namespaces." + - resourcesIdentifierDescription(owner, resource)); + "Cannot add owner reference between two resource in different namespaces." + + resourcesIdentifierDescription(owner, resource)); } } } @@ -154,8 +154,7 @@ public static Object setSpec(HasMetadata resource, Object spec) { setSpecMethod = resourceClass.getMethod(SET_SPEC, spec.getClass()); } else { setSpecMethod = Arrays.stream(resourceClass.getMethods()) - .filter(method -> SET_SPEC.equals(method.getName())) - .findFirst() + .filter(method -> SET_SPEC.equals(method.getName())).findFirst() .orElseThrow(() -> noSpecException(resource, null)); } @@ -190,9 +189,8 @@ public static void handleKubernetesClientException(Exception e, String resourceT if (e instanceof KubernetesClientException ke) { // only throw MissingCRDException if the 404 error occurs on the target CRD - if (404 == ke.getCode() && - (resourceTypeName.equals(ke.getFullResourceName()) - || matchesResourceType(resourceTypeName, ke))) { + if (404 == ke.getCode() && (resourceTypeName.equals(ke.getFullResourceName()) + || matchesResourceType(resourceTypeName, ke))) { throw new MissingCRDException(resourceTypeName, ke.getVersion(), e.getMessage(), e); } } @@ -212,8 +210,8 @@ private static boolean matchesResourceType(String resourceTypeName, if (group.endsWith(".")) { group = group.substring(0, group.length() - 1); } - final var segments = Arrays.stream(group.split("/")).filter(Predicate.not(String::isEmpty)) - .toList(); + final var segments = + Arrays.stream(group.split("/")).filter(Predicate.not(String::isEmpty)).toList(); if (segments.size() != 3) { return false; } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/RuntimeInfo.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/RuntimeInfo.java index ee2f4d447e..bfa3921f30 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/RuntimeInfo.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/RuntimeInfo.java @@ -45,8 +45,8 @@ private void checkIfStarted() { public boolean allEventSourcesAreHealthy() { checkIfStarted(); return registeredControllers.stream() - .filter(rc -> !rc.getControllerHealthInfo().unhealthyEventSources().isEmpty()) - .findFirst().isEmpty(); + .filter(rc -> !rc.getControllerHealthInfo().unhealthyEventSources().isEmpty()).findFirst() + .isEmpty(); } /** @@ -72,8 +72,8 @@ public Map<String, Map<String, InformerWrappingEventSourceHealthIndicator>> unhe checkIfStarted(); Map<String, Map<String, InformerWrappingEventSourceHealthIndicator>> res = new HashMap<>(); for (var rc : registeredControllers) { - res.put(rc.getConfiguration().getName(), rc.getControllerHealthInfo() - .unhealthyInformerEventSourceHealthIndicators()); + res.put(rc.getConfiguration().getName(), + rc.getControllerHealthInfo().unhealthyInformerEventSourceHealthIndicators()); } return res; } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AbstractConfigurationService.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AbstractConfigurationService.java index f7ed42c577..f753cc6292 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AbstractConfigurationService.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AbstractConfigurationService.java @@ -81,8 +81,8 @@ protected <R extends HasMetadata> void replace(ControllerConfiguration<R> config } @SuppressWarnings("unchecked") - private <R extends HasMetadata> void put( - ControllerConfiguration<R> config, boolean failIfExisting) { + private <R extends HasMetadata> void put(ControllerConfiguration<R> config, + boolean failIfExisting) { final var name = config.getName(); if (failIfExisting) { final var existing = configurations.get(name); @@ -96,12 +96,8 @@ private <R extends HasMetadata> void put( protected <R extends HasMetadata> void throwExceptionOnNameCollision( String newReconcilerClassName, ControllerConfiguration<R> existing) { throw new IllegalArgumentException( - "Reconciler name '" - + existing.getName() - + "' is used by both " - + existing.getAssociatedReconcilerClassName() - + " and " - + newReconcilerClassName); + "Reconciler name '" + existing.getName() + "' is used by both " + + existing.getAssociatedReconcilerClassName() + " and " + newReconcilerClassName); } @SuppressWarnings("unchecked") @@ -122,8 +118,7 @@ protected void logMissingReconcilerWarning(String reconcilerKey, String reconcil private String getReconcilersNameMessage() { return "Known reconcilers: " - + getKnownReconcilerNames().stream().reduce((s, s2) -> s + ", " + s2).orElse("None") - + "."; + + getKnownReconcilerNames().stream().reduce((s, s2) -> s + ", " + s2).orElse("None") + "."; } protected <R extends HasMetadata> String keyFor(Reconciler<R> reconciler) { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java index 4204cb6faf..9bf7aa5b8e 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java @@ -53,8 +53,7 @@ public BaseConfigurationService() { } @SuppressWarnings({"unchecked", "rawtypes"}) - private static List<DependentResourceSpec> dependentResources( - Workflow annotation, + private static List<DependentResourceSpec> dependentResources(Workflow annotation, ControllerConfiguration<?> controllerConfiguration) { final var dependents = annotation.dependents(); @@ -79,8 +78,7 @@ private static List<DependentResourceSpec> dependentResources( var eventSourceName = dependent.useEventSourceWithName(); eventSourceName = Constants.NO_VALUE_SET.equals(eventSourceName) ? null : eventSourceName; final var context = Utils.contextFor(name, dependentType, null); - spec = new DependentResourceSpec(dependentType, dependentName, - Set.of(dependent.dependsOn()), + spec = new DependentResourceSpec(dependentType, dependentName, Set.of(dependent.dependsOn()), Utils.instantiate(dependent.readyPostcondition(), Condition.class, context), Utils.instantiate(dependent.reconcilePrecondition(), Condition.class, context), Utils.instantiate(dependent.deletePostcondition(), Condition.class, context), @@ -90,8 +88,7 @@ private static List<DependentResourceSpec> dependentResources( // extract potential configuration DependentResourceConfigurationResolver.configureSpecFromConfigured(spec, - controllerConfiguration, - dependentType); + controllerConfiguration, dependentType); specsMap.put(dependentName, spec); } @@ -168,10 +165,8 @@ public <R extends HasMetadata> ControllerConfiguration<R> getConfigurationFor( // create the configuration on demand and register it config = configFor(reconciler); register(config); - getLogger().info( - "Created configuration for reconciler {} with name {}", - reconciler.getClass().getName(), - config.getName()); + getLogger().info("Created configuration for reconciler {} with name {}", + reconciler.getClass().getName(), config.getName()); } } else { // check that we don't have a reconciler name collision @@ -196,14 +191,14 @@ protected ResourceClassResolver getResourceClassResolver() { protected <P extends HasMetadata> ControllerConfiguration<P> configFor(Reconciler<P> reconciler) { final Class<? extends Reconciler<P>> reconcilerClass = (Class<? extends Reconciler<P>>) reconciler.getClass(); - final var controllerAnnotation = reconcilerClass.getAnnotation( - io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration.class); + final var controllerAnnotation = reconcilerClass + .getAnnotation(io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration.class); ResolvedControllerConfiguration<P> config = controllerConfiguration(reconcilerClass, controllerAnnotation); - final var workflowAnnotation = reconcilerClass.getAnnotation( - io.javaoperatorsdk.operator.api.reconciler.Workflow.class); + final var workflowAnnotation = + reconcilerClass.getAnnotation(io.javaoperatorsdk.operator.api.reconciler.Workflow.class); if (workflowAnnotation != null) { final var specs = dependentResources(workflowAnnotation, config); WorkflowSpec workflowSpec = new WorkflowSpec() { @@ -236,20 +231,17 @@ private <P extends HasMetadata> ResolvedControllerConfiguration<P> controllerCon final var resourceClass = getResourceClassResolver().getPrimaryResourceClass(reconcilerClass); final var name = ReconcilerUtils.getNameFor(reconcilerClass); - final var generationAware = valueOrDefaultFromAnnotation( - annotation, + final var generationAware = valueOrDefaultFromAnnotation(annotation, io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::generationAwareEventProcessing, "generationAwareEventProcessing"); final var associatedReconcilerClass = ResolvedControllerConfiguration.getAssociatedReconcilerClassName(reconcilerClass); final var context = Utils.contextFor(name); - final Class<? extends Retry> retryClass = - valueOrDefaultFromAnnotation(annotation, - io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::retry, - "retry"); - final var retry = Utils.instantiateAndConfigureIfNeeded(retryClass, Retry.class, - context, configuratorFor(Retry.class, reconcilerClass)); + final Class<? extends Retry> retryClass = valueOrDefaultFromAnnotation(annotation, + io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::retry, "retry"); + final var retry = Utils.instantiateAndConfigureIfNeeded(retryClass, Retry.class, context, + configuratorFor(Retry.class, reconcilerClass)); @SuppressWarnings("rawtypes") final Class<? extends RateLimiter> rateLimiterClass = valueOrDefaultFromAnnotation(annotation, @@ -272,23 +264,19 @@ private <P extends HasMetadata> ResolvedControllerConfiguration<P> controllerCon io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::fieldManager, "fieldManager"); final var dependentFieldManager = - fieldManager.equals(CONTROLLER_NAME_AS_FIELD_MANAGER) ? name - : fieldManager; + fieldManager.equals(CONTROLLER_NAME_AS_FIELD_MANAGER) ? name : fieldManager; InformerConfiguration<P> informerConfig = InformerConfiguration.builder(resourceClass) .initFromAnnotation(annotation != null ? annotation.informer() : null, context) .buildForController(); - return new ResolvedControllerConfiguration<P>( - name, generationAware, - associatedReconcilerClass, retry, rateLimiter, + return new ResolvedControllerConfiguration<P>(name, generationAware, associatedReconcilerClass, + retry, rateLimiter, ResolvedControllerConfiguration.getMaxReconciliationInterval(interval, timeUnit), valueOrDefaultFromAnnotation(annotation, io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::finalizerName, "finalizerName"), - null, - dependentFieldManager, - this, informerConfig); + null, dependentFieldManager, this, informerConfig); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationService.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationService.java index 14a13bf0b6..c6e9f6ac47 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationService.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationService.java @@ -65,8 +65,7 @@ public interface ConfigurationService { * with overridden values. */ static ConfigurationService newOverriddenConfigurationService( - ConfigurationService baseConfiguration, - Consumer<ConfigurationServiceOverrider> overrider) { + ConfigurationService baseConfiguration, Consumer<ConfigurationServiceOverrider> overrider) { if (overrider != null) { final var toOverride = new ConfigurationServiceOverrider(baseConfiguration); overrider.accept(toOverride); @@ -157,10 +156,8 @@ public <R extends HasMetadata> R clone(R object) { default KubernetesClient getKubernetesClient() { return new KubernetesClientBuilder() .withConfig(new ConfigBuilder(Config.autoConfigure(null)) - .withMaxConcurrentRequests(DEFAULT_MAX_CONCURRENT_REQUEST) - .build()) - .withKubernetesSerialization(new KubernetesSerialization()) - .build(); + .withMaxConcurrentRequests(DEFAULT_MAX_CONCURRENT_REQUEST).build()) + .withKubernetesSerialization(new KubernetesSerialization()).build(); } /** @@ -328,9 +325,9 @@ default Optional<InformerStoppedHandler> getInformerStoppedHandler() { System.exit(1); } else { log.debug( - "Informer stopped: {}. Has synced: {}, Error: {}. This can happen as a result of " + - "stopping the controller, or due to an error on startup." + - "See also stopOnInformerErrorDuringStartup configuration.", + "Informer stopped: {}. Has synced: {}, Error: {}. This can happen as a result of " + + "stopping the controller, or due to an error on startup." + + "See also stopOnInformerErrorDuringStartup configuration.", informer, informer.hasSynced(), ex); } }); @@ -409,9 +406,8 @@ default boolean shouldUseSSA(Class<? extends KubernetesDependentResource> depend if (ResourceUpdaterMatcher.class.isAssignableFrom(dependentResourceType)) { return false; } - Boolean useSSAConfig = Optional.ofNullable(config) - .map(KubernetesDependentResourceConfig::useSSA) - .orElse(null); + Boolean useSSAConfig = + Optional.ofNullable(config).map(KubernetesDependentResourceConfig::useSSA).orElse(null); // don't use SSA for certain resources by default, only if explicitly overridden if (useSSAConfig == null) { if (defaultNonSSAResources().contains(resourceType)) { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java index 7de9bcda43..ebcbae2d69 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java @@ -151,8 +151,7 @@ public ConfigurationServiceOverrider withDefaultNonSSAResource( return this; } - public ConfigurationServiceOverrider withPreviousAnnotationForDependentResources( - boolean value) { + public ConfigurationServiceOverrider withPreviousAnnotationForDependentResources(boolean value) { this.previousAnnotationForDependentResources = value; return this; } @@ -161,8 +160,7 @@ public ConfigurationServiceOverrider withPreviousAnnotationForDependentResources * @param value true if internal algorithms can use metadata.resourceVersion as a numeric value. * @return this */ - public ConfigurationServiceOverrider withParseResourceVersions( - boolean value) { + public ConfigurationServiceOverrider withParseResourceVersions(boolean value) { this.parseResourceVersions = value; return this; } @@ -173,8 +171,7 @@ public ConfigurationServiceOverrider withParseResourceVersions( * @return this */ @Deprecated(forRemoval = true) - public ConfigurationServiceOverrider wihtParseResourceVersions( - boolean value) { + public ConfigurationServiceOverrider wihtParseResourceVersions(boolean value) { this.parseResourceVersions = value; return this; } @@ -220,9 +217,7 @@ public int concurrentReconciliationThreads() { return Utils.ensureValid( overriddenValueOrDefault(concurrentReconciliationThreads, ConfigurationService::concurrentReconciliationThreads), - "maximum reconciliation threads", - 1, - original.concurrentReconciliationThreads()); + "maximum reconciliation threads", 1, original.concurrentReconciliationThreads()); } @Override @@ -230,9 +225,7 @@ public int concurrentWorkflowExecutorThreads() { return Utils.ensureValid( overriddenValueOrDefault(concurrentWorkflowExecutorThreads, ConfigurationService::concurrentWorkflowExecutorThreads), - "maximum workflow execution threads", - 1, - original.concurrentWorkflowExecutorThreads()); + "maximum workflow execution threads", 1, original.concurrentWorkflowExecutorThreads()); } @Override diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java index e03cf5626e..5efc9a1b48 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfiguration.java @@ -40,9 +40,8 @@ static String ensureValidFinalizerName(String finalizer, String resourceTypeName if (ReconcilerUtils.isFinalizerValid(finalizer)) { return finalizer; } else { - throw new IllegalArgumentException( - finalizer - + " is not a valid finalizer. See https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#finalizers for details"); + throw new IllegalArgumentException(finalizer + + " is not a valid finalizer. See https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#finalizers for details"); } } else { return ReconcilerUtils.getDefaultFinalizerName(resourceTypeName); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java index 3d3eef5990..a893017c72 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java @@ -150,8 +150,7 @@ public ControllerConfigurationOverrider<R> withName(String name) { return this; } - public ControllerConfigurationOverrider<R> withFieldManager( - String dependentFieldManager) { + public ControllerConfigurationOverrider<R> withFieldManager(String dependentFieldManager) { this.fieldManager = dependentFieldManager; return this; } @@ -164,8 +163,7 @@ public ControllerConfigurationOverrider<R> withFieldManager( * * @param informerListLimit null (the default) results in no pagination */ - public ControllerConfigurationOverrider<R> withInformerListLimit( - Long informerListLimit) { + public ControllerConfigurationOverrider<R> withInformerListLimit(Long informerListLimit) { config.withInformerListLimit(informerListLimit); return this; } @@ -174,9 +172,8 @@ public ControllerConfigurationOverrider<R> replacingNamedDependentResourceConfig Object dependentResourceConfig) { final var specs = original.getWorkflowSpec().orElseThrow().getDependentResourceSpecs(); - final var spec = specs.stream() - .filter(drs -> drs.getName().equals(name)).findFirst() - .orElseThrow( + final var spec = + specs.stream().filter(drs -> drs.getName().equals(name)).findFirst().orElseThrow( () -> new IllegalArgumentException("Cannot find a DependentResource named: " + name)); if (configurations == null) { @@ -187,14 +184,10 @@ public ControllerConfigurationOverrider<R> replacingNamedDependentResourceConfig } public ControllerConfiguration<R> build() { - return new ResolvedControllerConfiguration<>( - name, - generationAware, original.getAssociatedReconcilerClassName(), retry, rateLimiter, - reconciliationMaxInterval, - finalizer, configurations, fieldManager, - original.getConfigurationService(), - config.buildForController(), - original.getWorkflowSpec().orElse(null)); + return new ResolvedControllerConfiguration<>(name, generationAware, + original.getAssociatedReconcilerClassName(), retry, rateLimiter, reconciliationMaxInterval, + finalizer, configurations, fieldManager, original.getConfigurationService(), + config.buildForController(), original.getWorkflowSpec().orElse(null)); } public static <R extends HasMetadata> ControllerConfigurationOverrider<R> override( diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ExecutorServiceManager.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ExecutorServiceManager.java index c35281e822..3afb8d3319 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ExecutorServiceManager.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ExecutorServiceManager.java @@ -41,14 +41,13 @@ public class ExecutorServiceManager { * @param threadNamer for naming thread * @param <T> type */ - public <T> void boundedExecuteAndWaitForAllToComplete(Stream<T> stream, - Function<T, Void> task, Function<T, String> threadNamer) { + public <T> void boundedExecuteAndWaitForAllToComplete(Stream<T> stream, Function<T, Void> task, + Function<T, String> threadNamer) { executeAndWaitForAllToComplete(stream, task, threadNamer, cachingExecutorService()); } - public static <T> void executeAndWaitForAllToComplete(Stream<T> stream, - Function<T, Void> task, Function<T, String> threadNamer, - ExecutorService executorService) { + public static <T> void executeAndWaitForAllToComplete(Stream<T> stream, Function<T, Void> task, + Function<T, String> threadNamer, ExecutorService executorService) { final var instrumented = new InstrumentedExecutorService(executorService); try { instrumented.invokeAll(stream.map(item -> (Callable<Void>) () -> { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/LeaderElectionConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/LeaderElectionConfiguration.java index cfce453e14..5cb0c67070 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/LeaderElectionConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/LeaderElectionConfiguration.java @@ -23,50 +23,28 @@ public class LeaderElectionConfiguration { private final boolean exitOnStopLeading; public LeaderElectionConfiguration(String leaseName, String leaseNamespace, String identity) { - this( - leaseName, - leaseNamespace, - LEASE_DURATION_DEFAULT_VALUE, - RENEW_DEADLINE_DEFAULT_VALUE, + this(leaseName, leaseNamespace, LEASE_DURATION_DEFAULT_VALUE, RENEW_DEADLINE_DEFAULT_VALUE, RETRY_PERIOD_DEFAULT_VALUE, identity, null, true); } public LeaderElectionConfiguration(String leaseName, String leaseNamespace) { - this( - leaseName, - leaseNamespace, - LEASE_DURATION_DEFAULT_VALUE, - RENEW_DEADLINE_DEFAULT_VALUE, + this(leaseName, leaseNamespace, LEASE_DURATION_DEFAULT_VALUE, RENEW_DEADLINE_DEFAULT_VALUE, RETRY_PERIOD_DEFAULT_VALUE, null, null, true); } public LeaderElectionConfiguration(String leaseName) { - this( - leaseName, - null, - LEASE_DURATION_DEFAULT_VALUE, - RENEW_DEADLINE_DEFAULT_VALUE, + this(leaseName, null, LEASE_DURATION_DEFAULT_VALUE, RENEW_DEADLINE_DEFAULT_VALUE, RETRY_PERIOD_DEFAULT_VALUE, null, null, true); } - public LeaderElectionConfiguration( - String leaseName, - String leaseNamespace, - Duration leaseDuration, - Duration renewDeadline, - Duration retryPeriod) { + public LeaderElectionConfiguration(String leaseName, String leaseNamespace, + Duration leaseDuration, Duration renewDeadline, Duration retryPeriod) { this(leaseName, leaseNamespace, leaseDuration, renewDeadline, retryPeriod, null, null, true); } - public LeaderElectionConfiguration( - String leaseName, - String leaseNamespace, - Duration leaseDuration, - Duration renewDeadline, - Duration retryPeriod, - String identity, - LeaderCallbacks leaderCallbacks, - boolean exitOnStopLeading) { + public LeaderElectionConfiguration(String leaseName, String leaseNamespace, + Duration leaseDuration, Duration renewDeadline, Duration retryPeriod, String identity, + LeaderCallbacks leaderCallbacks, boolean exitOnStopLeading) { this.leaseName = leaseName; this.leaseNamespace = leaseNamespace; this.leaseDuration = leaseDuration; diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResolvedControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResolvedControllerConfiguration.java index 7e8415f584..db1a9fa125 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResolvedControllerConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResolvedControllerConfiguration.java @@ -32,36 +32,29 @@ public class ResolvedControllerConfiguration<P extends HasMetadata> private WorkflowSpec workflowSpec; public ResolvedControllerConfiguration(ControllerConfiguration<P> other) { - this(other.getName(), other.isGenerationAware(), - other.getAssociatedReconcilerClassName(), other.getRetry(), other.getRateLimiter(), - other.maxReconciliationInterval().orElse(null), - other.getFinalizerName(), Collections.emptyMap(), - other.fieldManager(), - other.getConfigurationService(), - other.getInformerConfig(), + this(other.getName(), other.isGenerationAware(), other.getAssociatedReconcilerClassName(), + other.getRetry(), other.getRateLimiter(), other.maxReconciliationInterval().orElse(null), + other.getFinalizerName(), Collections.emptyMap(), other.fieldManager(), + other.getConfigurationService(), other.getInformerConfig(), other.getWorkflowSpec().orElse(null)); } - public ResolvedControllerConfiguration(String name, - boolean generationAware, String associatedReconcilerClassName, Retry retry, - RateLimiter rateLimiter, Duration maxReconciliationInterval, - String finalizer, - Map<DependentResourceSpec, Object> configurations, - String fieldManager, - ConfigurationService configurationService, - InformerConfiguration<P> informerConfig, + public ResolvedControllerConfiguration(String name, boolean generationAware, + String associatedReconcilerClassName, Retry retry, RateLimiter rateLimiter, + Duration maxReconciliationInterval, String finalizer, + Map<DependentResourceSpec, Object> configurations, String fieldManager, + ConfigurationService configurationService, InformerConfiguration<P> informerConfig, WorkflowSpec workflowSpec) { this(name, generationAware, associatedReconcilerClassName, retry, rateLimiter, - maxReconciliationInterval, finalizer, configurations, fieldManager, - configurationService, informerConfig); + maxReconciliationInterval, finalizer, configurations, fieldManager, configurationService, + informerConfig); setWorkflowSpec(workflowSpec); } - protected ResolvedControllerConfiguration(String name, - boolean generationAware, String associatedReconcilerClassName, Retry retry, - RateLimiter rateLimiter, Duration maxReconciliationInterval, String finalizer, - Map<DependentResourceSpec, Object> configurations, - String fieldManager, + protected ResolvedControllerConfiguration(String name, boolean generationAware, + String associatedReconcilerClassName, Retry retry, RateLimiter rateLimiter, + Duration maxReconciliationInterval, String finalizer, + Map<DependentResourceSpec, Object> configurations, String fieldManager, ConfigurationService configurationService, InformerConfiguration<P> informerConfig) { this.informerConfig = informerConfig; this.configurationService = configurationService; @@ -79,8 +72,8 @@ protected ResolvedControllerConfiguration(String name, protected ResolvedControllerConfiguration(Class<P> resourceClass, String name, Class<? extends Reconciler> reconcilerClas, ConfigurationService configurationService) { - this(name, false, getAssociatedReconcilerClassName(reconcilerClas), null, null, - null, null, null, null, configurationService, + this(name, false, getAssociatedReconcilerClassName(reconcilerClas), null, null, null, null, + null, null, configurationService, InformerConfiguration.builder(resourceClass).buildForController()); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Utils.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Utils.java index 15ffe178e5..fc1f19a55a 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Utils.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/Utils.java @@ -62,9 +62,7 @@ private static Version loadFromProperties() { log.debug("Couldn't parse git.build.time property", e); builtTime = Date.from(Instant.EPOCH); } - return new Version( - properties.getProperty("git.commit.id.abbrev", "unknown"), - builtTime); + return new Version(properties.getProperty("git.commit.id.abbrev", "unknown"), builtTime); } public static int ensureValid(int value, String description, int minValue) { @@ -98,19 +96,8 @@ public static boolean debugThreadPool() { return getBooleanFromSystemPropsOrDefault(DEBUG_THREAD_POOL_ENV_KEY, false); } - public static boolean getBooleanFromSystemPropsOrDefault(String propertyName, boolean defaultValue) { - var property = System.getProperty(propertyName); - if (property == null) { - return defaultValue; - } else { - property = property.trim().toLowerCase(); - return switch (property) { - case "true" -> true; - case "false" -> false; - default -> defaultValue; - }; - } - } + public static boolean getBooleanFromSystemPropsOrDefault(String propertyName, + boolean defaultValue) {var property=System.getProperty(propertyName);if(property==null){return defaultValue;}else{property=property.trim().toLowerCase();return switch(property){case"true"->true;case"false"->false;default->defaultValue;};}} public static Class<?> getFirstTypeArgumentFromExtendedClass(Class<?> clazz) { return getTypeArgumentFromExtendedClassByIndex(clazz, 0); @@ -121,8 +108,7 @@ public static Class<?> getTypeArgumentFromExtendedClassByIndex(Class<?> clazz, i Type type = clazz.getGenericSuperclass(); return (Class<?>) ((ParameterizedType) type).getActualTypeArguments()[index]; } catch (Exception e) { - throw new RuntimeException(GENERIC_PARAMETER_TYPE_ERROR_PREFIX - + clazz.getSimpleName() + throw new RuntimeException(GENERIC_PARAMETER_TYPE_ERROR_PREFIX + clazz.getSimpleName() + " because it doesn't extend a class that is parameterized with the type we want to retrieve", e); } @@ -149,8 +135,8 @@ public static Class<?> getTypeArgumentFromInterfaceByIndex(Class<?> clazz, return getTypeArgumentFromInterfaceByIndex(parent, expectedImplementedInterface, index); } } - throw new IllegalArgumentException(GENERIC_PARAMETER_TYPE_ERROR_PREFIX - + clazz.getSimpleName() + " because it or its superclasses don't implement " + throw new IllegalArgumentException(GENERIC_PARAMETER_TYPE_ERROR_PREFIX + clazz.getSimpleName() + + " because it or its superclasses don't implement " + expectedImplementedInterface.getSimpleName()); } @@ -162,9 +148,7 @@ private static Optional<? extends Class<?>> extractType(Class<?> clazz, target = Arrays.stream(genericInterfaces) .filter(type -> type.getTypeName().startsWith(expectedImplementedInterface.getName()) && type instanceof ParameterizedType) - .map(ParameterizedType.class::cast) - .findFirst() - .map(t -> { + .map(ParameterizedType.class::cast).findFirst().map(t -> { final Type argument = t.getActualTypeArguments()[index]; if (argument instanceof Class) { return (Class<?>) argument; @@ -235,8 +219,7 @@ public static <T> T instantiateAndConfigureIfNeeded(Class<? extends T> targetCla } catch (InstantiationException | IllegalAccessException | InvocationTargetException | IllegalStateException e) { throw new OperatorException("Couldn't instantiate " + expectedType.getSimpleName() + " '" - + targetClass.getName() + "'." - + (context != null ? " Context: " + context : ""), e); + + targetClass.getName() + "'." + (context != null ? " Context: " + context : ""), e); } } @@ -277,10 +260,9 @@ public static String contextFor(String reconcilerName) { public static String contextFor(String reconcilerName, Class<? extends DependentResource> dependentType, Class<? extends Annotation> configurationAnnotation) { - final var annotationName = - configurationAnnotation != null ? configurationAnnotation.getSimpleName() - : io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration.class - .getSimpleName(); + final var annotationName = configurationAnnotation != null + ? configurationAnnotation.getSimpleName() + : io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration.class.getSimpleName(); var context = "annotation: " + annotationName + ", "; if (dependentType != null) { context += "DependentResource: " + dependentType.getName() + ", "; diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolver.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolver.java index 471b0f6a8e..2c12fe36ee 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolver.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolver.java @@ -21,8 +21,7 @@ private DependentResourceConfigurationResolver() {} public static <C extends ControllerConfiguration<?>> void configureSpecFromConfigured( - DependentResourceSpec spec, - C parentConfiguration, + DependentResourceSpec spec, C parentConfiguration, Class<? extends DependentResource> dependentResourceClass) { var converterAnnotationPair = converters.get(dependentResourceClass); @@ -37,10 +36,8 @@ public static <C extends ControllerConfiguration<?>> void configureSpecFromConfi converterAnnotationPair = converters.get(configuredClassPair.annotatedClass); if (converterAnnotationPair == null) { final var configured = configuredClassPair.configured; - converterAnnotationPair = - getOrCreateConverter(dependentResourceClass, parentConfiguration, - configured.converter(), - configured.by()); + converterAnnotationPair = getOrCreateConverter(dependentResourceClass, parentConfiguration, + configured.converter(), configured.by()); } else { // only register the converter pair for this dependent resource class as well converters.put(dependentResourceClass, converterAnnotationPair); @@ -83,8 +80,7 @@ private static <C extends ControllerConfiguration<? extends HasMetadata>> Conver // only instantiate a new converter if we haven't done so already for this converter type var converter = knownConverters.get(converterClass); if (converter == null) { - converter = Utils.instantiate(converterClass, - ConfigurationConverter.class, + converter = Utils.instantiate(converterClass, ConfigurationConverter.class, Utils.contextFor(parentConfiguration, dependentResourceClass, Configured.class)); knownConverters.put(converterClass, converter); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceSpec.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceSpec.java index accccb3f6e..d66e87558f 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceSpec.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceSpec.java @@ -44,8 +44,8 @@ public String getName() { @Override public String toString() { - return "DependentResourceSpec{ name='" + name + - "', type=" + getDependentResourceClass().getCanonicalName() + '}'; + return "DependentResourceSpec{ name='" + name + "', type=" + + getDependentResourceClass().getCanonicalName() + '}'; } @Override diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java index 0c55353b86..fabaa4df4a 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java @@ -39,10 +39,10 @@ public class InformerConfiguration<R extends HasMetadata> { private Long informerListLimit; protected InformerConfiguration(Class<R> resourceClass, String name, Set<String> namespaces, - boolean followControllerNamespaceChanges, - String labelSelector, OnAddFilter<? super R> onAddFilter, - OnUpdateFilter<? super R> onUpdateFilter, OnDeleteFilter<? super R> onDeleteFilter, - GenericFilter<? super R> genericFilter, ItemStore<R> itemStore, Long informerListLimit) { + boolean followControllerNamespaceChanges, String labelSelector, + OnAddFilter<? super R> onAddFilter, OnUpdateFilter<? super R> onUpdateFilter, + OnDeleteFilter<? super R> onDeleteFilter, GenericFilter<? super R> genericFilter, + ItemStore<R> itemStore, Long informerListLimit) { this(resourceClass); this.name = name; this.namespaces = namespaces; @@ -97,15 +97,14 @@ public static boolean currentNamespaceWatched(Set<String> namespaces) { public static void failIfNotValid(Set<String> namespaces) { if (namespaces != null && !namespaces.isEmpty()) { - final var present = namespaces.contains(WATCH_CURRENT_NAMESPACE) - || namespaces.contains(WATCH_ALL_NAMESPACES); + final var present = + namespaces.contains(WATCH_CURRENT_NAMESPACE) || namespaces.contains(WATCH_ALL_NAMESPACES); if (!present || namespaces.size() == 1) { return; } } throw new IllegalArgumentException( - "Must specify namespaces. To watch all namespaces, use only '" - + WATCH_ALL_NAMESPACES + "Must specify namespaces. To watch all namespaces, use only '" + WATCH_ALL_NAMESPACES + "'. To watch only the namespace in which the operator is deployed, use only '" + WATCH_CURRENT_NAMESPACE + "'"); } @@ -164,9 +163,8 @@ public Set<String> getEffectiveNamespaces(ControllerConfiguration<?> controllerC var targetNamespaces = getNamespaces(); if (watchCurrentNamespace()) { - final String namespace = - controllerConfiguration.getConfigurationService().getKubernetesClient().getConfiguration() - .getNamespace(); + final String namespace = controllerConfiguration.getConfigurationService() + .getKubernetesClient().getConfiguration().getNamespace(); if (namespace == null) { throw new OperatorException( "Couldn't retrieve the currently connected namespace. Make sure it's correctly set in your ~/.kube/config file, using, e.g. 'kubectl config set-context <your context> --namespace=<your namespace>'"); @@ -268,8 +266,7 @@ public InformerConfiguration<R> build() { namespaces = Constants.SAME_AS_CONTROLLER_NAMESPACES_SET; } if (followControllerNamespaceChanges == null) { - followControllerNamespaceChanges = - DEFAULT_FOLLOW_CONTROLLER_NAMESPACE_CHANGES; + followControllerNamespaceChanges = DEFAULT_FOLLOW_CONTROLLER_NAMESPACE_CHANGES; } return InformerConfiguration.this; } @@ -291,24 +288,21 @@ public InformerConfiguration<R>.Builder initFromAnnotation(Informer informerConf var labelSelector = Constants.NO_VALUE_SET.equals(fromAnnotation) ? null : fromAnnotation; withLabelSelector(labelSelector); - withOnAddFilter(Utils.instantiate(informerConfig.onAddFilter(), - OnAddFilter.class, context)); + withOnAddFilter( + Utils.instantiate(informerConfig.onAddFilter(), OnAddFilter.class, context)); - withOnUpdateFilter(Utils.instantiate(informerConfig.onUpdateFilter(), - OnUpdateFilter.class, context)); + withOnUpdateFilter( + Utils.instantiate(informerConfig.onUpdateFilter(), OnUpdateFilter.class, context)); - withOnDeleteFilter(Utils.instantiate(informerConfig.onDeleteFilter(), - OnDeleteFilter.class, context)); + withOnDeleteFilter( + Utils.instantiate(informerConfig.onDeleteFilter(), OnDeleteFilter.class, context)); - withGenericFilter(Utils.instantiate(informerConfig.genericFilter(), - GenericFilter.class, - context)); + withGenericFilter( + Utils.instantiate(informerConfig.genericFilter(), GenericFilter.class, context)); - withFollowControllerNamespacesChanges( - informerConfig.followControllerNamespaceChanges()); + withFollowControllerNamespacesChanges(informerConfig.followControllerNamespaceChanges()); - withItemStore(Utils.instantiate(informerConfig.itemStore(), - ItemStore.class, context)); + withItemStore(Utils.instantiate(informerConfig.itemStore(), ItemStore.class, context)); final var informerListLimitValue = informerConfig.informerListLimit(); final var informerListLimit = @@ -324,8 +318,7 @@ public Builder withName(String name) { } public Builder withNamespaces(Set<String> namespaces) { - InformerConfiguration.this.namespaces = - ensureValidNamespaces(namespaces); + InformerConfiguration.this.namespaces = ensureValidNamespaces(namespaces); return this; } @@ -373,37 +366,31 @@ public Builder withWatchCurrentNamespace() { * @return the builder instance so that calls can be chained fluently */ public Builder withFollowControllerNamespacesChanges(boolean followChanges) { - InformerConfiguration.this.followControllerNamespaceChanges = - followChanges; + InformerConfiguration.this.followControllerNamespaceChanges = followChanges; return this; } public Builder withLabelSelector(String labelSelector) { - InformerConfiguration.this.labelSelector = - ensureValidLabelSelector(labelSelector); + InformerConfiguration.this.labelSelector = ensureValidLabelSelector(labelSelector); return this; } - public Builder withOnAddFilter( - OnAddFilter<? super R> onAddFilter) { + public Builder withOnAddFilter(OnAddFilter<? super R> onAddFilter) { InformerConfiguration.this.onAddFilter = onAddFilter; return this; } - public Builder withOnUpdateFilter( - OnUpdateFilter<? super R> onUpdateFilter) { + public Builder withOnUpdateFilter(OnUpdateFilter<? super R> onUpdateFilter) { InformerConfiguration.this.onUpdateFilter = onUpdateFilter; return this; } - public Builder withOnDeleteFilter( - OnDeleteFilter<? super R> onDeleteFilter) { + public Builder withOnDeleteFilter(OnDeleteFilter<? super R> onDeleteFilter) { InformerConfiguration.this.onDeleteFilter = onDeleteFilter; return this; } - public Builder withGenericFilter( - GenericFilter<? super R> genericFilter) { + public Builder withGenericFilter(GenericFilter<? super R> genericFilter) { InformerConfiguration.this.genericFilter = genericFilter; return this; } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerEventSourceConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerEventSourceConfiguration.java index c3c2777049..78fb92b932 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerEventSourceConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerEventSourceConfiguration.java @@ -22,16 +22,15 @@ import static io.javaoperatorsdk.operator.api.reconciler.Constants.WATCH_ALL_NAMESPACE_SET; import static io.javaoperatorsdk.operator.api.reconciler.Constants.WATCH_CURRENT_NAMESPACE_SET; -public interface InformerEventSourceConfiguration<R extends HasMetadata> - extends Informable<R> { +public interface InformerEventSourceConfiguration<R extends HasMetadata> extends Informable<R> { - static <R extends HasMetadata> Builder<R> from( - Class<R> resourceClass, Class<? extends HasMetadata> primaryResourceClass) { + static <R extends HasMetadata> Builder<R> from(Class<R> resourceClass, + Class<? extends HasMetadata> primaryResourceClass) { return new Builder<>(resourceClass, primaryResourceClass); } - static Builder<GenericKubernetesResource> from( - GroupVersionKind groupVersionKind, Class<? extends HasMetadata> primaryResourceClass) { + static Builder<GenericKubernetesResource> from(GroupVersionKind groupVersionKind, + Class<? extends HasMetadata> primaryResourceClass) { return new Builder<>(groupVersionKind, primaryResourceClass); } @@ -83,12 +82,10 @@ class DefaultInformerEventSourceConfiguration<R extends HasMetadata> private final InformerConfiguration<R> informerConfig; private final KubernetesClient kubernetesClient; - protected DefaultInformerEventSourceConfiguration( - GroupVersionKind groupVersionKind, + protected DefaultInformerEventSourceConfiguration(GroupVersionKind groupVersionKind, PrimaryToSecondaryMapper<?> primaryToSecondaryMapper, SecondaryToPrimaryMapper<R> secondaryToPrimaryMapper, - InformerConfiguration<R> informerConfig, - KubernetesClient kubernetesClient) { + InformerConfiguration<R> informerConfig, KubernetesClient kubernetesClient) { this.informerConfig = Objects.requireNonNull(informerConfig); this.groupVersionKind = groupVersionKind; this.primaryToSecondaryMapper = primaryToSecondaryMapper; @@ -135,8 +132,7 @@ class Builder<R extends HasMetadata> { private SecondaryToPrimaryMapper<R> secondaryToPrimaryMapper; private KubernetesClient kubernetesClient; - private Builder(Class<R> resourceClass, - Class<? extends HasMetadata> primaryResourceClass) { + private Builder(Class<R> resourceClass, Class<? extends HasMetadata> primaryResourceClass) { this(resourceClass, primaryResourceClass, null); } @@ -146,8 +142,8 @@ private Builder(GroupVersionKind groupVersionKind, this((Class<R>) GenericKubernetesResource.class, primaryResourceClass, groupVersionKind); } - private Builder(Class<R> resourceClass, - Class<? extends HasMetadata> primaryResourceClass, GroupVersionKind groupVersionKind) { + private Builder(Class<R> resourceClass, Class<? extends HasMetadata> primaryResourceClass, + GroupVersionKind groupVersionKind) { this.resourceClass = resourceClass; this.groupVersionKind = groupVersionKind; this.primaryResourceClass = primaryResourceClass; @@ -176,8 +172,7 @@ public Builder<R> withSecondaryToPrimaryMapper( * Use this is case want to create an InformerEventSource that handles resources from different * cluster. */ - public Builder<R> withKubernetesClient( - KubernetesClient kubernetesClient) { + public Builder<R> withKubernetesClient(KubernetesClient kubernetesClient) { this.kubernetesClient = kubernetesClient; return this; } @@ -229,26 +224,22 @@ public Builder<R> withLabelSelector(String labelSelector) { return this; } - public Builder<R> withOnAddFilter( - OnAddFilter<? super R> onAddFilter) { + public Builder<R> withOnAddFilter(OnAddFilter<? super R> onAddFilter) { config.withOnAddFilter(onAddFilter); return this; } - public Builder<R> withOnUpdateFilter( - OnUpdateFilter<? super R> onUpdateFilter) { + public Builder<R> withOnUpdateFilter(OnUpdateFilter<? super R> onUpdateFilter) { config.withOnUpdateFilter(onUpdateFilter); return this; } - public Builder<R> withOnDeleteFilter( - OnDeleteFilter<? super R> onDeleteFilter) { + public Builder<R> withOnDeleteFilter(OnDeleteFilter<? super R> onDeleteFilter) { config.withOnDeleteFilter(onDeleteFilter); return this; } - public Builder<R> withGenericFilter( - GenericFilter<? super R> genericFilter) { + public Builder<R> withGenericFilter(GenericFilter<? super R> genericFilter) { config.withGenericFilter(genericFilter); return this; } @@ -289,8 +280,7 @@ public InformerEventSourceConfiguration<R> build() { "If GroupVersionKind is set the resource type must be GenericKubernetesDependentResource"); } - return new DefaultInformerEventSourceConfiguration<>( - groupVersionKind, + return new DefaultInformerEventSourceConfiguration<>(groupVersionKind, primaryToSecondaryMapper, Objects.requireNonNullElse(secondaryToPrimaryMapper, Mappers.fromOwnerReferences(HasMetadata.getApiVersion(primaryResourceClass), diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/DefaultContext.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/DefaultContext.java index ce6f67176c..eb06566281 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/DefaultContext.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/DefaultContext.java @@ -57,16 +57,13 @@ public boolean isNextReconciliationImminent() { @Override public <R> Stream<R> getSecondaryResourcesAsStream(Class<R> expectedType) { return controller.getEventSourceManager().getEventSourcesFor(expectedType).stream() - .map(es -> es.getSecondaryResources(primaryResource)) - .flatMap(Set::stream); + .map(es -> es.getSecondaryResources(primaryResource)).flatMap(Set::stream); } @Override public <T> Optional<T> getSecondaryResource(Class<T> expectedType, String eventSourceName) { try { - return controller - .getEventSourceManager() - .getEventSourceFor(expectedType, eventSourceName) + return controller.getEventSourceManager().getEventSourceFor(expectedType, eventSourceName) .getSecondaryResource(primaryResource); } catch (NoEventSourceForClassException e) { /* diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/EventSourceContext.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/EventSourceContext.java index 4f0f08b3b8..af7865ee1d 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/EventSourceContext.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/EventSourceContext.java @@ -19,8 +19,7 @@ public class EventSourceContext<P extends HasMetadata> { private final Class<P> primaryResourceClass; public EventSourceContext(IndexerResourceCache<P> primaryCache, - ControllerConfiguration<P> controllerConfiguration, - KubernetesClient client, + ControllerConfiguration<P> controllerConfiguration, KubernetesClient client, Class<P> primaryResourceClass) { this.primaryCache = primaryCache; this.controllerConfiguration = controllerConfiguration; diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/EventSourceUtils.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/EventSourceUtils.java index 9531599072..b3491e2d33 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/EventSourceUtils.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/EventSourceUtils.java @@ -18,8 +18,7 @@ public static <P extends HasMetadata> List<EventSource<?, P>> dependentEventSour @SuppressWarnings("unchecked") public static <P extends HasMetadata> List<EventSource<?, P>> eventSourcesFromWorkflow( - EventSourceContext<P> context, - Workflow<P> workflow) { + EventSourceContext<P> context, Workflow<P> workflow) { return workflow.getDependentResourcesWithoutActivationCondition().stream() .flatMap(dr -> dr.eventSource(context).stream()).toList(); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/UpdateControl.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/UpdateControl.java index a8ae1331d7..d86fd44480 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/UpdateControl.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/UpdateControl.java @@ -11,8 +11,7 @@ public class UpdateControl<P extends HasMetadata> extends BaseControl<UpdateCont private final boolean patchResource; private final boolean patchStatus; - private UpdateControl( - P resource, boolean patchResource, boolean patchStatus) { + private UpdateControl(P resource, boolean patchResource, boolean patchStatus) { if ((patchResource || patchStatus) && resource == null) { throw new IllegalArgumentException("CustomResource cannot be null in case of update"); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/DependentResourceFactory.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/DependentResourceFactory.java index cc9a1dd6c3..10c007ec98 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/DependentResourceFactory.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/DependentResourceFactory.java @@ -12,8 +12,7 @@ public interface DependentResourceFactory<C extends ControllerConfiguration<?>, default DependentResource createFrom(D spec, C controllerConfiguration) { final var dependentResourceClass = spec.getDependentResourceClass(); - return Utils.instantiateAndConfigureIfNeeded(dependentResourceClass, - DependentResource.class, + return Utils.instantiateAndConfigureIfNeeded(dependentResourceClass, DependentResource.class, Utils.contextFor(controllerConfiguration, dependentResourceClass, Dependent.class), (instance) -> configure(instance, spec, controllerConfiguration)); } @@ -30,8 +29,7 @@ default void configure(DependentResource instance, D spec, C controllerConfigura default Class<?> associatedResourceType(D spec) { final var dependentResourceClass = spec.getDependentResourceClass(); final var dr = Utils.instantiateAndConfigureIfNeeded(dependentResourceClass, - DependentResource.class, - null, null); + DependentResource.class, null, null); return dr != null ? dr.resourceType() : null; } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/ReconcileResult.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/ReconcileResult.java index 66d982f01d..20b8a06253 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/ReconcileResult.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/ReconcileResult.java @@ -38,9 +38,10 @@ public static <T> ReconcileResult<T> aggregatedResult(List<ReconcileResult<T>> r @Override public String toString() { - return resourceOperations.entrySet().stream().collect(Collectors.toMap( - e -> e instanceof HasMetadata ? ResourceID.fromResource((HasMetadata) e) : e, - Map.Entry::getValue)) + return resourceOperations.entrySet().stream() + .collect(Collectors.toMap( + e -> e instanceof HasMetadata ? ResourceID.fromResource((HasMetadata) e) : e, + Map.Entry::getValue)) .toString(); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/DefaultManagedWorkflowAndDependentResourceContext.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/DefaultManagedWorkflowAndDependentResourceContext.java index bf9ead4c97..d0460e6da4 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/DefaultManagedWorkflowAndDependentResourceContext.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/DefaultManagedWorkflowAndDependentResourceContext.java @@ -25,8 +25,7 @@ public class DefaultManagedWorkflowAndDependentResourceContext<P extends HasMeta private final Context<P> context; public DefaultManagedWorkflowAndDependentResourceContext(Controller<P> controller, - P primaryResource, - Context<P> context) { + P primaryResource, Context<P> context) { this.controller = controller; this.primaryResource = primaryResource; this.context = context; @@ -34,8 +33,7 @@ public DefaultManagedWorkflowAndDependentResourceContext(Controller<P> controlle @Override public <T> Optional<T> get(Object key, Class<T> expectedType) { - return Optional.ofNullable(attributes.get(key)) - .filter(expectedType::isInstance) + return Optional.ofNullable(attributes.get(key)).filter(expectedType::isInstance) .map(expectedType::cast); } @@ -50,11 +48,9 @@ public <T> T put(Object key, T value) { } if (previous != null && !previous.getClass().isAssignableFrom(value.getClass())) { - logWarning("Previous value (" + previous + - ") for key (" + key + - ") was not of type " + value.getClass() + - ". This might indicate an issue in your code. If not, use put(" + key + - ", null) first to remove the previous value."); + logWarning("Previous value (" + previous + ") for key (" + key + ") was not of type " + + value.getClass() + ". This might indicate an issue in your code. If not, use put(" + key + + ", null) first to remove the previous value."); } return (T) previous; } @@ -67,9 +63,9 @@ void logWarning(String message) { @Override @SuppressWarnings("unused") public <T> T getMandatory(Object key, Class<T> expectedType) { - return get(key, expectedType).orElseThrow(() -> new IllegalStateException( - "Mandatory attribute (key: " + key + ", type: " + expectedType.getName() - + ") is missing or not of the expected type")); + return get(key, expectedType) + .orElseThrow(() -> new IllegalStateException("Mandatory attribute (key: " + key + ", type: " + + expectedType.getName() + ") is missing or not of the expected type")); } @Override diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/health/ControllerHealthInfo.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/health/ControllerHealthInfo.java index 1d65922f11..02f23916f8 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/health/ControllerHealthInfo.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/health/ControllerHealthInfo.java @@ -29,9 +29,8 @@ public Map<String, EventSourceHealthIndicator> unhealthyEventSources() { public Map<String, InformerWrappingEventSourceHealthIndicator> informerEventSourceHealthIndicators() { return eventSourceManager.allEventSources().stream() - .filter(e -> e instanceof InformerWrappingEventSourceHealthIndicator) - .collect(Collectors.toMap(EventSource::name, - e -> (InformerWrappingEventSourceHealthIndicator) e)); + .filter(e -> e instanceof InformerWrappingEventSourceHealthIndicator).collect(Collectors + .toMap(EventSource::name, e -> (InformerWrappingEventSourceHealthIndicator) e)); } @@ -43,9 +42,8 @@ public Map<String, InformerWrappingEventSourceHealthIndicator> informerEventSour public Map<String, InformerWrappingEventSourceHealthIndicator> unhealthyInformerEventSourceHealthIndicators() { return eventSourceManager.allEventSources().stream() .filter(e -> e.getStatus() == Status.UNHEALTHY) - .filter(e -> e instanceof InformerWrappingEventSourceHealthIndicator) - .collect(Collectors.toMap(EventSource::name, - e -> (InformerWrappingEventSourceHealthIndicator) e)); + .filter(e -> e instanceof InformerWrappingEventSourceHealthIndicator).collect(Collectors + .toMap(EventSource::name, e -> (InformerWrappingEventSourceHealthIndicator) e)); } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/Controller.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/Controller.java index 491ac7fb01..29ad20f9b0 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/Controller.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/Controller.java @@ -51,8 +51,7 @@ @SuppressWarnings({"unchecked", "rawtypes"}) @Ignore public class Controller<P extends HasMetadata> - implements Reconciler<P>, LifecycleAware, Cleaner<P>, - RegisteredController<P> { + implements Reconciler<P>, LifecycleAware, Cleaner<P>, RegisteredController<P> { private static final Logger log = LoggerFactory.getLogger(Controller.class); private static final String CLEANUP = "cleanup"; @@ -78,8 +77,7 @@ public class Controller<P extends HasMetadata> private final ControllerHealthInfo controllerHealthInfo; private final EventSourceContext<P> eventSourceContext; - public Controller(Reconciler<P> reconciler, - ControllerConfiguration<P> configuration, + public Controller(Reconciler<P> reconciler, ControllerConfiguration<P> configuration, KubernetesClient kubernetesClient) { // needs to be initialized early since it's used in other downstream classes associatedGVK = GroupVersionKind.gvkFor(configuration.getResourceClass()); @@ -95,124 +93,120 @@ public Controller(Reconciler<P> reconciler, final var managed = configurationService.getWorkflowFactory().workflowFor(configuration); managedWorkflow = managed.resolve(kubernetesClient, configuration); explicitWorkflowInvocation = - configuration.getWorkflowSpec().map(WorkflowSpec::isExplicitInvocation) - .orElse(false); + configuration.getWorkflowSpec().map(WorkflowSpec::isExplicitInvocation).orElse(false); eventSourceManager = new EventSourceManager<>(this); eventProcessor = new EventProcessor<>(eventSourceManager, configurationService); eventSourceManager.postProcessDefaultEventSourcesAfterProcessorInitializer(); controllerHealthInfo = new ControllerHealthInfo(eventSourceManager); - eventSourceContext = new EventSourceContext<>( - eventSourceManager.getControllerEventSource(), configuration, kubernetesClient, - configuration.getResourceClass()); + eventSourceContext = new EventSourceContext<>(eventSourceManager.getControllerEventSource(), + configuration, kubernetesClient, configuration.getResourceClass()); initAndRegisterEventSources(eventSourceContext); configurationService.getMetrics().controllerRegistered(this); } @Override public UpdateControl<P> reconcile(P resource, Context<P> context) throws Exception { - return metrics.timeControllerExecution( - new ControllerExecution<>() { - @Override - public String name() { - return RECONCILE; - } + return metrics.timeControllerExecution(new ControllerExecution<>() { + @Override + public String name() { + return RECONCILE; + } - @Override - public String controllerName() { - return configuration.getName(); - } + @Override + public String controllerName() { + return configuration.getName(); + } - @Override - public String successTypeName(UpdateControl<P> result) { - String successType = RESOURCE; - if (result.isPatchStatus()) { - successType = STATUS; - } - if (result.isPatchResourceAndStatus()) { - successType = BOTH; - } - return successType; - } + @Override + public String successTypeName(UpdateControl<P> result) { + String successType = RESOURCE; + if (result.isPatchStatus()) { + successType = STATUS; + } + if (result.isPatchResourceAndStatus()) { + successType = BOTH; + } + return successType; + } - @Override - public ResourceID resourceID() { - return ResourceID.fromResource(resource); - } + @Override + public ResourceID resourceID() { + return ResourceID.fromResource(resource); + } - @Override - public Map<String, Object> metadata() { - return Map.of(Constants.RESOURCE_GVK_KEY, associatedGVK); - } + @Override + public Map<String, Object> metadata() { + return Map.of(Constants.RESOURCE_GVK_KEY, associatedGVK); + } - @Override - public UpdateControl<P> execute() throws Exception { - initContextIfNeeded(resource, context); - configuration.getWorkflowSpec().ifPresent(ws -> { - if (!managedWorkflow.isEmpty() && !explicitWorkflowInvocation) { - managedWorkflow.reconcile(resource, context); - } - }); - return reconciler.reconcile(resource, context); + @Override + public UpdateControl<P> execute() throws Exception { + initContextIfNeeded(resource, context); + configuration.getWorkflowSpec().ifPresent(ws -> { + if (!managedWorkflow.isEmpty() && !explicitWorkflowInvocation) { + managedWorkflow.reconcile(resource, context); } }); + return reconciler.reconcile(resource, context); + } + }); } @Override public DeleteControl cleanup(P resource, Context<P> context) { try { - return metrics.timeControllerExecution( - new ControllerExecution<>() { - @Override - public String name() { - return CLEANUP; - } - - @Override - public String controllerName() { - return configuration.getName(); - } - - @Override - public String successTypeName(DeleteControl deleteControl) { - return deleteControl.isRemoveFinalizer() ? DELETE : FINALIZER_NOT_REMOVED; - } - - @Override - public ResourceID resourceID() { - return ResourceID.fromResource(resource); - } - - @Override - public Map<String, Object> metadata() { - return Map.of(Constants.RESOURCE_GVK_KEY, associatedGVK); - } + return metrics.timeControllerExecution(new ControllerExecution<>() { + @Override + public String name() { + return CLEANUP; + } + + @Override + public String controllerName() { + return configuration.getName(); + } + + @Override + public String successTypeName(DeleteControl deleteControl) { + return deleteControl.isRemoveFinalizer() ? DELETE : FINALIZER_NOT_REMOVED; + } + + @Override + public ResourceID resourceID() { + return ResourceID.fromResource(resource); + } + + @Override + public Map<String, Object> metadata() { + return Map.of(Constants.RESOURCE_GVK_KEY, associatedGVK); + } + + @Override + public DeleteControl execute() throws Exception { + initContextIfNeeded(resource, context); + WorkflowCleanupResult workflowCleanupResult = null; + + // The cleanup is called also when explicit invocation is true, but the cleaner is not + // implemented, also in case when explicit invocation is false, but there is cleaner + // implemented. + if (managedWorkflow.hasCleaner() && (!explicitWorkflowInvocation || !isCleaner)) { + workflowCleanupResult = managedWorkflow.cleanup(resource, context); + } - @Override - public DeleteControl execute() throws Exception { - initContextIfNeeded(resource, context); - WorkflowCleanupResult workflowCleanupResult = null; - - // The cleanup is called also when explicit invocation is true, but the cleaner is not - // implemented, also in case when explicit invocation is false, but there is cleaner - // implemented. - if (managedWorkflow.hasCleaner() && (!explicitWorkflowInvocation || !isCleaner)) { - workflowCleanupResult = managedWorkflow.cleanup(resource, context); - } - - if (isCleaner) { - var cleanupResult = ((Cleaner<P>) reconciler).cleanup(resource, context); - if (!cleanupResult.isRemoveFinalizer()) { - return cleanupResult; - } else { - // this means there is no reschedule - return workflowCleanupResultToDefaultDelete(workflowCleanupResult); - } - } else { - return workflowCleanupResultToDefaultDelete(workflowCleanupResult); - } + if (isCleaner) { + var cleanupResult = ((Cleaner<P>) reconciler).cleanup(resource, context); + if (!cleanupResult.isRemoveFinalizer()) { + return cleanupResult; + } else { + // this means there is no reschedule + return workflowCleanupResultToDefaultDelete(workflowCleanupResult); } - }); + } else { + return workflowCleanupResultToDefaultDelete(workflowCleanupResult); + } + } + }); } catch (Exception e) { throw new OperatorException(e); } @@ -250,10 +244,8 @@ public void initAndRegisterEventSources(EventSourceContext<P> context) { // resolve event sources referenced by name for dependents that reuse an existing event source final Map<String, List<EventSourceReferencer>> unresolvable = new HashMap<>(size); - dependentResourcesByName.stream() - .filter(EventSourceReferencer.class::isInstance) - .map(EventSourceReferencer.class::cast) - .forEach(dr -> { + dependentResourcesByName.stream().filter(EventSourceReferencer.class::isInstance) + .map(EventSourceReferencer.class::cast).forEach(dr -> { try { ((EventSourceReferencer<P>) dr).resolveEventSource(eventSourceManager); } catch (EventSourceNotFoundException e) { @@ -354,8 +346,8 @@ private void validateCRDWithLocalModelIfRequired(Class<P> resClass, String contr final CustomResourceDefinition crd; if (getConfiguration().getConfigurationService().checkCRDAndValidateLocalModel() && CustomResource.class.isAssignableFrom(resClass)) { - crd = kubernetesClient.apiextensions().v1().customResourceDefinitions().withName(crdName) - .get(); + crd = + kubernetesClient.apiextensions().v1().customResourceDefinitions().withName(crdName).get(); if (crd == null) { throwMissingCRDException(crdName, specVersion, controllerName); } @@ -391,16 +383,9 @@ public synchronized void startEventProcessing() { } private void throwMissingCRDException(String crdName, String specVersion, String controllerName) { - throw new MissingCRDException( - crdName, - specVersion, - "'" - + crdName - + "' " - + specVersion - + " CRD was not found on the cluster, controller '" - + controllerName - + "' cannot be registered"); + throw new MissingCRDException(crdName, specVersion, + "'" + crdName + "' " + specVersion + " CRD was not found on the cluster, controller '" + + controllerName + "' cannot be registered"); } /** @@ -411,10 +396,8 @@ private void failOnMissingCurrentNS() { try { configuration.getEffectiveNamespaces(); } catch (OperatorException e) { - throw new OperatorException( - "Controller '" - + configuration.getName() - + "' is configured to watch the current namespace but it couldn't be inferred from the current configuration."); + throw new OperatorException("Controller '" + configuration.getName() + + "' is configured to watch the current namespace but it couldn't be inferred from the current configuration."); } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/GroupVersionKind.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/GroupVersionKind.java index f9cf38fa56..e987bdde78 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/GroupVersionKind.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/GroupVersionKind.java @@ -33,8 +33,8 @@ public static GroupVersionKind gvkFor(Class<? extends HasMetadata> resourceClass } private static GroupVersionKind computeGVK(Class<? extends HasMetadata> rc) { - return new GroupVersionKind(HasMetadata.getGroup(rc), - HasMetadata.getVersion(rc), HasMetadata.getKind(rc)); + return new GroupVersionKind(HasMetadata.getGroup(rc), HasMetadata.getVersion(rc), + HasMetadata.getKind(rc)); } public GroupVersionKind(String group, String version, String kind) { @@ -115,10 +115,8 @@ public int hashCode() { @Override public String toString() { - return "GroupVersionKind{" + - "apiVersion='" + apiVersion + '\'' + - ", kind='" + kind + '\'' + - '}'; + return "GroupVersionKind{" + "apiVersion='" + apiVersion + '\'' + ", kind='" + kind + '\'' + + '}'; } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/MDCUtils.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/MDCUtils.java index d8bb3897c3..12348ed932 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/MDCUtils.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/MDCUtils.java @@ -1,10 +1,9 @@ package io.javaoperatorsdk.operator.processing; -import io.fabric8.kubernetes.api.model.ObjectMeta; -import io.javaoperatorsdk.operator.api.config.Utils; import org.slf4j.MDC; import io.fabric8.kubernetes.api.model.HasMetadata; +import io.javaoperatorsdk.operator.api.config.Utils; import io.javaoperatorsdk.operator.processing.event.ResourceID; public class MDCUtils { @@ -17,50 +16,51 @@ public class MDCUtils { private static final String GENERATION = "resource.generation"; private static final String UID = "resource.uid"; private static final String NO_NAMESPACE = "no namespace"; - private static final boolean enabled = Utils.getBooleanFromSystemPropsOrDefault(Utils.USE_MDC_ENV_KEY, true); + private static final boolean enabled = + Utils.getBooleanFromSystemPropsOrDefault(Utils.USE_MDC_ENV_KEY, true); public static void addResourceIDInfo(ResourceID resourceID) { - if (enabled) { - MDC.put(NAME, resourceID.getName()); - MDC.put(NAMESPACE, resourceID.getNamespace().orElse(NO_NAMESPACE)); - } + if (enabled) { + MDC.put(NAME, resourceID.getName()); + MDC.put(NAMESPACE, resourceID.getNamespace().orElse(NO_NAMESPACE)); + } } public static void removeResourceIDInfo() { - if (enabled) { - MDC.remove(NAME); - MDC.remove(NAMESPACE); - } + if (enabled) { + MDC.remove(NAME); + MDC.remove(NAMESPACE); + } } public static void addResourceInfo(HasMetadata resource) { - if (enabled) { - MDC.put(API_VERSION, resource.getApiVersion()); - MDC.put(KIND, resource.getKind()); - final var metadata = resource.getMetadata(); - if (metadata != null) { - MDC.put(NAME, metadata.getName()); - if (metadata.getNamespace() != null) { - MDC.put(NAMESPACE, metadata.getNamespace()); - } - MDC.put(RESOURCE_VERSION, metadata.getResourceVersion()); - if (metadata.getGeneration() != null) { - MDC.put(GENERATION, metadata.getGeneration().toString()); - } - MDC.put(UID, metadata.getUid()); - } + if (enabled) { + MDC.put(API_VERSION, resource.getApiVersion()); + MDC.put(KIND, resource.getKind()); + final var metadata = resource.getMetadata(); + if (metadata != null) { + MDC.put(NAME, metadata.getName()); + if (metadata.getNamespace() != null) { + MDC.put(NAMESPACE, metadata.getNamespace()); + } + MDC.put(RESOURCE_VERSION, metadata.getResourceVersion()); + if (metadata.getGeneration() != null) { + MDC.put(GENERATION, metadata.getGeneration().toString()); + } + MDC.put(UID, metadata.getUid()); } + } } public static void removeResourceInfo() { - if (enabled) { - MDC.remove(API_VERSION); - MDC.remove(KIND); - MDC.remove(NAME); - MDC.remove(NAMESPACE); - MDC.remove(RESOURCE_VERSION); - MDC.remove(GENERATION); - MDC.remove(UID); - } + if (enabled) { + MDC.remove(API_VERSION); + MDC.remove(KIND); + MDC.remove(NAME); + MDC.remove(NAMESPACE); + MDC.remove(RESOURCE_VERSION); + MDC.remove(GENERATION); + MDC.remove(UID); + } } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResource.java index db69d8134b..a8f52560ef 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResource.java @@ -151,10 +151,11 @@ private void throwIfNull(R desired, P primary, String descriptor) { } private void logForOperation(String operation, P primary, R desired) { - final var desiredDesc = desired instanceof HasMetadata - ? "'" + ((HasMetadata) desired).getMetadata().getName() + "' " - + ((HasMetadata) desired).getKind() - : desired.getClass().getSimpleName(); + final var desiredDesc = + desired instanceof HasMetadata + ? "'" + ((HasMetadata) desired).getMetadata().getName() + "' " + + ((HasMetadata) desired).getKind() + : desired.getClass().getSimpleName(); log.debug("{} {} for primary {}", operation, desiredDesc, ResourceID.fromResource(primary)); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java index acb6cb99d3..968b89735d 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java @@ -31,11 +31,10 @@ protected AbstractExternalDependentResource(Class<R> resourceType) { public void resolveEventSource(EventSourceRetriever<P> eventSourceRetriever) { super.resolveEventSource(eventSourceRetriever); if (isDependentResourceWithExplicitState) { - final var eventSourceName = (String) dependentResourceWithExplicitState - .eventSourceName().orElse(null); - externalStateEventSource = (InformerEventSource<?, P>) eventSourceRetriever - .getEventSourceFor(dependentResourceWithExplicitState.stateResourceClass(), - eventSourceName); + final var eventSourceName = + (String) dependentResourceWithExplicitState.eventSourceName().orElse(null); + externalStateEventSource = (InformerEventSource<?, P>) eventSourceRetriever.getEventSourceFor( + dependentResourceWithExplicitState.stateResourceClass(), eventSourceName); } } @@ -83,18 +82,15 @@ public Matcher.Result<R> match(R resource, P primary, Context<P> context) { } @SuppressWarnings("unchecked") - public void deleteTargetResource(P primary, R resource, String key, - Context<P> context) { + public void deleteTargetResource(P primary, R resource, String key, Context<P> context) { if (isDependentResourceWithExplicitState) { context.getClient() - .resource(dependentResourceWithExplicitState.stateResource(primary, resource)) - .delete(); + .resource(dependentResourceWithExplicitState.stateResource(primary, resource)).delete(); } handleDeleteTargetResource(primary, resource, key, context); } - public void handleDeleteTargetResource(P primary, R resource, String key, - Context<P> context) { + public void handleDeleteTargetResource(P primary, R resource, String key, Context<P> context) { throw new IllegalStateException("Override this method in case you manage an bulk resource"); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkDependentResourceReconciler.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkDependentResourceReconciler.java index 1ed36edaa2..6ab1533893 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkDependentResourceReconciler.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/BulkDependentResourceReconciler.java @@ -29,9 +29,8 @@ public ReconcileResult<R> reconcile(P primary, Context<P> context) { if (!(bulkDependentResource instanceof Creator<?, ?>) && !(bulkDependentResource instanceof Deleter<?>) && !(bulkDependentResource instanceof Updater<?, ?>)) { - return ReconcileResult - .aggregatedResult(actualResources.values().stream().map(ReconcileResult::noOperation) - .toList()); + return ReconcileResult.aggregatedResult( + actualResources.values().stream().map(ReconcileResult::noOperation).toList()); } final var desiredResources = bulkDependentResource.desiredResources(primary, context); @@ -56,8 +55,8 @@ public void delete(P primary, Context<P> context) { deleteExtraResources(Collections.emptySet(), actualResources, primary, context); } - private void deleteExtraResources(Set<String> expectedKeys, - Map<String, R> actualResources, P primary, Context<P> context) { + private void deleteExtraResources(Set<String> expectedKeys, Map<String, R> actualResources, + P primary, Context<P> context) { actualResources.forEach((key, value) -> { if (!expectedKeys.contains(key)) { bulkDependentResource.deleteTargetResource(primary, value, key, context); @@ -74,8 +73,7 @@ private void deleteExtraResources(Set<String> expectedKeys, */ @Ignore private static class BulkDependentResourceInstance<R, P extends HasMetadata> - extends AbstractDependentResource<R, P> - implements Creator<R, P>, Deleter<P>, Updater<R, P> { + extends AbstractDependentResource<R, P> implements Creator<R, P>, Deleter<P>, Updater<R, P> { private final BulkDependentResource<R, P> bulkDependentResource; private final R desired; diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/CRUDBulkDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/CRUDBulkDependentResource.java index aa650bf1b5..f8c52c1300 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/CRUDBulkDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/CRUDBulkDependentResource.java @@ -4,8 +4,5 @@ import io.javaoperatorsdk.operator.api.reconciler.dependent.Deleter; public interface CRUDBulkDependentResource<R, P extends HasMetadata> - extends BulkDependentResource<R, P>, - Creator<R, P>, - BulkUpdater<R, P>, - Deleter<P> { + extends BulkDependentResource<R, P>, Creator<R, P>, BulkUpdater<R, P>, Deleter<P> { } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/external/PerResourcePollingDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/external/PerResourcePollingDependentResource.java index f315619cde..bfe0848e0a 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/external/PerResourcePollingDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/external/PerResourcePollingDependentResource.java @@ -28,10 +28,7 @@ protected ExternalResourceCachingEventSource<R, P> createEventSource( EventSourceContext<P> context) { return new PerResourcePollingEventSource<>(resourceType(), context, - new PerResourcePollingConfigurationBuilder<>( - this, getPollingPeriod()) - .withCacheKeyMapper(this) - .withName(name()) - .build()); + new PerResourcePollingConfigurationBuilder<>(this, getPollingPeriod()) + .withCacheKeyMapper(this).withName(name()).build()); } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/external/PollingDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/external/PollingDependentResource.java index 01860cb4c5..8db4c78eb6 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/external/PollingDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/external/PollingDependentResource.java @@ -11,9 +11,8 @@ import io.javaoperatorsdk.operator.processing.event.source.polling.PollingEventSource; @Ignore -public abstract class PollingDependentResource<R, P extends HasMetadata> - extends AbstractPollingDependentResource<R, P> - implements PollingEventSource.GenericResourceFetcher<R> { +public abstract class PollingDependentResource<R, P extends HasMetadata> extends + AbstractPollingDependentResource<R, P> implements PollingEventSource.GenericResourceFetcher<R> { private final CacheKeyMapper<R> cacheKeyMapper; diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/CRUDKubernetesDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/CRUDKubernetesDependentResource.java index f4ccf647ed..afe4302fc3 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/CRUDKubernetesDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/CRUDKubernetesDependentResource.java @@ -15,8 +15,7 @@ */ @Ignore public abstract class CRUDKubernetesDependentResource<R extends HasMetadata, P extends HasMetadata> - extends - KubernetesDependentResource<R, P> + extends KubernetesDependentResource<R, P> implements Creator<R, P>, Updater<R, P>, GarbageCollected<P> { public CRUDKubernetesDependentResource(Class<R> resourceType) { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/CRUDNoGCKubernetesDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/CRUDNoGCKubernetesDependentResource.java index e335ef74e5..c7c86a9bdb 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/CRUDNoGCKubernetesDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/CRUDNoGCKubernetesDependentResource.java @@ -19,8 +19,7 @@ */ @Ignore public class CRUDNoGCKubernetesDependentResource<R extends HasMetadata, P extends HasMetadata> - extends KubernetesDependentResource<R, P> - implements Creator<R, P>, Updater<R, P>, Deleter<P> { + extends KubernetesDependentResource<R, P> implements Creator<R, P>, Updater<R, P>, Deleter<P> { public CRUDNoGCKubernetesDependentResource(Class<R> resourceType) { super(resourceType); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericKubernetesResourceMatcher.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericKubernetesResourceMatcher.java index 00f68f36a7..18a3413203 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericKubernetesResourceMatcher.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericKubernetesResourceMatcher.java @@ -49,17 +49,15 @@ public class GenericKubernetesResourceMatcher<R extends HasMetadata, P extends H * @return results of matching */ public static <R extends HasMetadata, P extends HasMetadata> Matcher.Result<R> match(R desired, - R actualResource, - boolean labelsAndAnnotationsEquality, - boolean valuesEquality, Context<P> context) { - return match(desired, actualResource, - labelsAndAnnotationsEquality, valuesEquality, context, EMPTY_ARRAY); + R actualResource, boolean labelsAndAnnotationsEquality, boolean valuesEquality, + Context<P> context) { + return match(desired, actualResource, labelsAndAnnotationsEquality, valuesEquality, context, + EMPTY_ARRAY); } public static <R extends HasMetadata, P extends HasMetadata> Matcher.Result<R> match(R desired, R actualResource, Context<P> context) { - return match(desired, actualResource, - false, false, context, EMPTY_ARRAY); + return match(desired, actualResource, false, false, context, EMPTY_ARRAY); } /** @@ -79,11 +77,10 @@ public static <R extends HasMetadata, P extends HasMetadata> Matcher.Result<R> m * @return results of matching */ public static <R extends HasMetadata, P extends HasMetadata> Matcher.Result<R> match(R desired, - R actualResource, - boolean labelsAndAnnotationsEquality, - Context<P> context, String... ignorePaths) { - return match(desired, actualResource, - labelsAndAnnotationsEquality, false, context, ignorePaths); + R actualResource, boolean labelsAndAnnotationsEquality, Context<P> context, + String... ignorePaths) { + return match(desired, actualResource, labelsAndAnnotationsEquality, false, context, + ignorePaths); } /** @@ -111,30 +108,23 @@ public static <R extends HasMetadata, P extends HasMetadata> Matcher.Result<R> m */ public static <R extends HasMetadata, P extends HasMetadata> Matcher.Result<R> match( KubernetesDependentResource<R, P> dependentResource, R actualResource, P primary, - Context<P> context, - boolean labelsAndAnnotationsEquality, - String... ignorePaths) { + Context<P> context, boolean labelsAndAnnotationsEquality, String... ignorePaths) { final var desired = dependentResource.desired(primary, context); - return match(desired, actualResource, - labelsAndAnnotationsEquality, context, - ignorePaths); + return match(desired, actualResource, labelsAndAnnotationsEquality, context, ignorePaths); } public static <R extends HasMetadata, P extends HasMetadata> Matcher.Result<R> match( KubernetesDependentResource<R, P> dependentResource, R actualResource, P primary, - Context<P> context, - boolean specEquality, - boolean labelsAndAnnotationsEquality, + Context<P> context, boolean specEquality, boolean labelsAndAnnotationsEquality, String... ignorePaths) { final var desired = dependentResource.desired(primary, context); - return match(desired, actualResource, - labelsAndAnnotationsEquality, specEquality, context, ignorePaths); + return match(desired, actualResource, labelsAndAnnotationsEquality, specEquality, context, + ignorePaths); } public static <R extends HasMetadata, P extends HasMetadata> Matcher.Result<R> match(R desired, R actualResource, boolean labelsAndAnnotationsEquality, boolean valuesEquality, - Context<P> context, - String... ignoredPaths) { + Context<P> context, String... ignoredPaths) { final List<String> ignoreList = ignoredPaths != null && ignoredPaths.length > 0 ? Arrays.asList(ignoredPaths) : Collections.emptyList(); @@ -167,8 +157,7 @@ public static <R extends HasMetadata, P extends HasMetadata> Matcher.Result<R> m return Matcher.Result.computed(matched, desired); } - private static boolean match(boolean equality, JsonNode diff, - final List<String> ignoreList) { + private static boolean match(boolean equality, JsonNode diff, final List<String> ignoreList) { if (equality) { return false; } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GroupVersionKindPlural.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GroupVersionKindPlural.java index 3354ccedae..3268e08027 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GroupVersionKindPlural.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GroupVersionKindPlural.java @@ -24,10 +24,8 @@ protected GroupVersionKindPlural(String apiVersion, String kind, String plural) } protected GroupVersionKindPlural(GroupVersionKind gvk, String plural) { - this(gvk.getGroup(), gvk.getVersion(), gvk.getKind(), - plural != null ? plural - : (gvk instanceof GroupVersionKindPlural ? ((GroupVersionKindPlural) gvk).plural - : null)); + this(gvk.getGroup(), gvk.getVersion(), gvk.getKind(), plural != null ? plural + : (gvk instanceof GroupVersionKindPlural ? ((GroupVersionKindPlural) gvk).plural : null)); } /** diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentConverter.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentConverter.java index 15cb4f172a..04778ea252 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentConverter.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentConverter.java @@ -9,8 +9,8 @@ import static io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResourceConfig.DEFAULT_CREATE_RESOURCE_ONLY_IF_NOT_EXISTING_WITH_SSA; -public class KubernetesDependentConverter<R extends HasMetadata, P extends HasMetadata> implements - ConfigurationConverter<KubernetesDependent, KubernetesDependentResourceConfig<R>> { +public class KubernetesDependentConverter<R extends HasMetadata, P extends HasMetadata> + implements ConfigurationConverter<KubernetesDependent, KubernetesDependentResourceConfig<R>> { @Override @SuppressWarnings("unchecked") @@ -28,16 +28,14 @@ public KubernetesDependentResourceConfig<R> configFrom(KubernetesDependent confi } var informerConfiguration = createInformerConfig(configAnnotation, - (DependentResourceSpec<R, P, KubernetesDependentResourceConfig<R>>) spec, - controllerConfig); + (DependentResourceSpec<R, P, KubernetesDependentResourceConfig<R>>) spec, controllerConfig); return new KubernetesDependentResourceConfig<>(useSSA, createResourceOnlyIfNotExistingWithSSA, informerConfiguration); } @SuppressWarnings({"unchecked"}) - private InformerConfiguration<R> createInformerConfig( - KubernetesDependent configAnnotation, + private InformerConfiguration<R> createInformerConfig(KubernetesDependent configAnnotation, DependentResourceSpec<R, P, KubernetesDependentResourceConfig<R>> spec, ControllerConfiguration<? extends HasMetadata> controllerConfig) { Class<? extends KubernetesDependentResource<?, ?>> dependentResourceClass = diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java index a3373e2d6c..5751230b35 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java @@ -66,10 +66,8 @@ public R create(R desired, P primary, Context<P> context) { addMetadata(false, null, desired, primary, context); final var resource = prepare(context, desired, primary, "Creating"); return useSSA(context) - ? resource - .fieldManager(context.getControllerConfiguration().fieldManager()) - .forceConflicts() - .serverSideApply() + ? resource.fieldManager(context.getControllerConfiguration().fieldManager()) + .forceConflicts().serverSideApply() : resource.create(); } @@ -82,8 +80,8 @@ public R update(R actual, R desired, P primary, Context<P> context) { addMetadata(false, actual, desired, primary, context); if (useSSA(context)) { updatedResource = prepare(context, desired, primary, "Updating") - .fieldManager(context.getControllerConfiguration().fieldManager()) - .forceConflicts().serverSideApply(); + .fieldManager(context.getControllerConfiguration().fieldManager()).forceConflicts() + .serverSideApply(); } else { var updatedActual = GenericResourceUpdater.updateResource(actual, desired, context); updatedResource = prepare(context, updatedActual, primary, "Updating").update(); @@ -99,16 +97,15 @@ public Result<R> match(R actualResource, P primary, Context<P> context) { return match(actualResource, desired, primary, context); } - public Result<R> match(R actualResource, R desired, P primary, - Context<P> context) { + public Result<R> match(R actualResource, R desired, P primary, Context<P> context) { final boolean matches; addMetadata(true, actualResource, desired, primary, context); if (useSSA(context)) { - matches = SSABasedGenericKubernetesResourceMatcher.getInstance() - .matches(actualResource, desired, context); + matches = SSABasedGenericKubernetesResourceMatcher.getInstance().matches(actualResource, + desired, context); } else { - matches = GenericKubernetesResourceMatcher.match(desired, actualResource, - false, false, context).matched(); + matches = GenericKubernetesResourceMatcher + .match(desired, actualResource, false, false, context).matched(); } return Result.computed(matches, desired); } @@ -125,10 +122,8 @@ protected void addMetadata(boolean forMatch, R actualResource, final R target, P annotations.remove(InformerEventSource.PREVIOUS_ANNOTATION_KEY); } } else if (usePreviousAnnotation(context)) { // set a new one - eventSource().orElseThrow().addPreviousAnnotation( - Optional.ofNullable(actualResource).map(r -> r.getMetadata().getResourceVersion()) - .orElse(null), - target); + eventSource().orElseThrow().addPreviousAnnotation(Optional.ofNullable(actualResource) + .map(r -> r.getMetadata().getResourceVersion()).orElse(null), target); } addReferenceHandlingMetadata(target, primary); } @@ -160,9 +155,7 @@ public void deleteTargetResource(P primary, R resource, String key, Context<P> c @SuppressWarnings("unused") protected Resource<R> prepare(Context<P> context, R desired, P primary, String actionName) { - log.debug("{} target resource with type: {}, with id: {}", - actionName, - desired.getClass(), + log.debug("{} target resource with type: {}, with id: {}", actionName, desired.getClass(), ResourceID.fromResource(desired)); return context.getClient().resource(desired); @@ -228,9 +221,8 @@ protected Optional<R> selectTargetSecondaryResource(Set<R> secondaryResources, P Context<P> context) { ResourceID managedResourceID = targetSecondaryResourceID(primary, context); return secondaryResources.stream() - .filter(r -> r.getMetadata().getName().equals(managedResourceID.getName()) && - Objects.equals(r.getMetadata().getNamespace(), - managedResourceID.getNamespace().orElse(null))) + .filter(r -> r.getMetadata().getName().equals(managedResourceID.getName()) && Objects + .equals(r.getMetadata().getNamespace(), managedResourceID.getNamespace().orElse(null))) .findFirst(); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java index 2b419c2d0d..a10fd2054f 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java @@ -13,10 +13,8 @@ public class KubernetesDependentResourceConfig<R extends HasMetadata> { private final boolean createResourceOnlyIfNotExistingWithSSA; private final InformerConfiguration<R> informerConfig; - public KubernetesDependentResourceConfig( - Boolean useSSA, - boolean createResourceOnlyIfNotExistingWithSSA, - InformerConfiguration<R> informerConfig) { + public KubernetesDependentResourceConfig(Boolean useSSA, + boolean createResourceOnlyIfNotExistingWithSSA, InformerConfiguration<R> informerConfig) { this.useSSA = useSSA; this.createResourceOnlyIfNotExistingWithSSA = createResourceOnlyIfNotExistingWithSSA; this.informerConfig = informerConfig; diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfigBuilder.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfigBuilder.java index 3610cb074b..0e1447c837 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfigBuilder.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfigBuilder.java @@ -31,8 +31,7 @@ public KubernetesDependentResourceConfigBuilder<R> withKubernetesDependentInform } public KubernetesDependentResourceConfig<R> build() { - return new KubernetesDependentResourceConfig<>( - useSSA, createResourceOnlyIfNotExistingWithSSA, + return new KubernetesDependentResourceConfig<>(useSSA, createResourceOnlyIfNotExistingWithSSA, informerConfiguration); } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/ResourceComparators.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/ResourceComparators.java index 037cb597f4..4d2774ce5c 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/ResourceComparators.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/ResourceComparators.java @@ -8,13 +8,12 @@ public class ResourceComparators { public static boolean compareConfigMapData(ConfigMap c1, ConfigMap c2) { - return Objects.equals(c1.getData(), c2.getData()) && - Objects.equals(c1.getBinaryData(), c2.getBinaryData()); + return Objects.equals(c1.getData(), c2.getData()) + && Objects.equals(c1.getBinaryData(), c2.getBinaryData()); } public static boolean compareSecretData(Secret s1, Secret s2) { - return Objects.equals(s1.getType(), s2.getType()) && - Objects.equals(s1.getData(), s2.getData()) && - Objects.equals(s1.getStringData(), s2.getStringData()); + return Objects.equals(s1.getType(), s2.getType()) && Objects.equals(s1.getData(), s2.getData()) + && Objects.equals(s1.getStringData(), s2.getStringData()); } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/ResourceRequirementsSanitizer.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/ResourceRequirementsSanitizer.java index 3d83002692..5db771e1e6 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/ResourceRequirementsSanitizer.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/ResourceRequirementsSanitizer.java @@ -53,8 +53,7 @@ private static void sanitizeResourceRequirements(final Map<String, Object> actua return; } sanitizeResourceRequirements(actualMap, actualContainer.getResources(), - desiredContainer.getResources(), - containerPath, containerIndex); + desiredContainer.getResources(), containerPath, containerIndex); } } } @@ -75,11 +74,10 @@ private static void sanitizeResourceRequirements(final Map<String, Object> actua private static void sanitizeQuantities(final Map<String, Object> actualMap, final Map<String, Quantity> actualResource, final Map<String, Quantity> desiredResource, final String containerPath, final int containerIndex, final String quantityPath) { - Optional.ofNullable( - GenericKubernetesResource.get(actualMap, "spec", "template", "spec", containerPath, - containerIndex, "resources", quantityPath)) - .map(Map.class::cast) - .filter(m -> m.size() == desiredResource.size()) + Optional + .ofNullable(GenericKubernetesResource.get(actualMap, "spec", "template", "spec", + containerPath, containerIndex, "resources", quantityPath)) + .map(Map.class::cast).filter(m -> m.size() == desiredResource.size()) .ifPresent(m -> actualResource.forEach((key, actualQuantity) -> { var desiredQuantity = desiredResource.get(key); if (desiredQuantity == null) { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcher.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcher.java index 261ab6c825..2dd4ad0002 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcher.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcher.java @@ -80,8 +80,8 @@ public static <L extends HasMetadata> SSABasedGenericKubernetesResourceMatcher<L @SuppressWarnings("unchecked") public boolean matches(R actual, R desired, Context<?> context) { - var optionalManagedFieldsEntry = checkIfFieldManagerExists(actual, - context.getControllerConfiguration().fieldManager()); + var optionalManagedFieldsEntry = + checkIfFieldManagerExists(actual, context.getControllerConfiguration().fieldManager()); // If no field is managed by our controller, that means the controller hasn't touched the // resource yet and the resource probably doesn't match the desired state. Not matching here // means that the resource will need to be updated and since this will be done using SSA, the @@ -102,8 +102,7 @@ public boolean matches(R actual, R desired, Context<?> context) { sanitizeState(actual, desired, actualMap); var prunedActual = new HashMap<String, Object>(actualMap.size()); keepOnlyManagedFields(prunedActual, actualMap, - managedFieldsEntry.getFieldsV1().getAdditionalProperties(), - objectMapper); + managedFieldsEntry.getFieldsV1().getAdditionalProperties(), objectMapper); removeIrrelevantValues(desiredMap); @@ -184,8 +183,9 @@ private void sanitizeState(R actual, R desired, Map<String, Object> actualMap) { .map(Map.class::cast).ifPresent(m -> m.remove("volumeMode")); } if (claim.getStatus() == null) { - Optional.ofNullable( - GenericKubernetesResource.get(actualMap, "spec", "volumeClaimTemplates", i)) + Optional + .ofNullable( + GenericKubernetesResource.get(actualMap, "spec", "volumeClaimTemplates", i)) .map(Map.class::cast).ifPresent(m -> m.remove("status")); } } @@ -193,18 +193,15 @@ private void sanitizeState(R actual, R desired, Map<String, Object> actualMap) { sanitizeResourceRequirements(actualMap, actualSpec.getTemplate(), desiredSpec.getTemplate()); } else if (actual instanceof Deployment actualDeployment && desired instanceof Deployment desiredDeployment) { - sanitizeResourceRequirements(actualMap, - actualDeployment.getSpec().getTemplate(), + sanitizeResourceRequirements(actualMap, actualDeployment.getSpec().getTemplate(), desiredDeployment.getSpec().getTemplate()); } else if (actual instanceof ReplicaSet actualReplicaSet && desired instanceof ReplicaSet desiredReplicaSet) { - sanitizeResourceRequirements(actualMap, - actualReplicaSet.getSpec().getTemplate(), + sanitizeResourceRequirements(actualMap, actualReplicaSet.getSpec().getTemplate(), desiredReplicaSet.getSpec().getTemplate()); } else if (actual instanceof DaemonSet actualDaemonSet && desired instanceof DaemonSet desiredDaemonSet) { - sanitizeResourceRequirements(actualMap, - actualDaemonSet.getSpec().getTemplate(), + sanitizeResourceRequirements(actualMap, actualDaemonSet.getSpec().getTemplate(), desiredDaemonSet.getSpec().getTemplate()); } } @@ -224,8 +221,8 @@ private static void removeIrrelevantValues(Map<String, Object> desiredMap) { @SuppressWarnings("unchecked") private static void keepOnlyManagedFields(Map<String, Object> result, - Map<String, Object> actualMap, - Map<String, Object> managedFields, KubernetesSerialization objectMapper) { + Map<String, Object> actualMap, Map<String, Object> managedFields, + KubernetesSerialization objectMapper) { if (managedFields.isEmpty()) { result.putAll(actualMap); return; @@ -245,8 +242,7 @@ private static void keepOnlyManagedFields(Map<String, Object> result, } else { // basically if we should traverse further fillResultsAndTraverseFurther(result, actualMap, managedFields, objectMapper, key, - keyInActual, - managedFieldValue); + keyInActual, managedFieldValue); } } else { // this should handle the case when the value is complex in the actual map (not just a @@ -264,9 +260,8 @@ private static void keepOnlyManagedFields(Map<String, Object> result, @SuppressWarnings("unchecked") private static void fillResultsAndTraverseFurther(Map<String, Object> result, - Map<String, Object> actualMap, - Map<String, Object> managedFields, KubernetesSerialization objectMapper, String key, - String keyInActual, + Map<String, Object> actualMap, Map<String, Object> managedFields, + KubernetesSerialization objectMapper, String key, String keyInActual, Object managedFieldValue) { var emptyMapValue = new HashMap<String, Object>(); result.put(keyInActual, emptyMapValue); @@ -292,8 +287,7 @@ private static boolean isNestedValue(Map<?, ?> managedFieldValue) { */ @SuppressWarnings("unchecked") private static void handleListKeyEntrySet(Map<String, Object> result, - Map<String, Object> actualMap, - KubernetesSerialization objectMapper, String keyInActual, + Map<String, Object> actualMap, KubernetesSerialization objectMapper, String keyInActual, Set<Entry<String, Object>> managedEntrySet) { var valueList = new ArrayList<>(); result.put(keyInActual, valueList); @@ -306,9 +300,8 @@ private static void handleListKeyEntrySet(Map<String, Object> result, if (DOT_KEY.equals(listEntry.getKey())) { continue; } - var actualListEntry = - selectListEntryBasedOnKey(keyWithoutPrefix(listEntry.getKey()), actualValueList, - objectMapper); + var actualListEntry = selectListEntryBasedOnKey(keyWithoutPrefix(listEntry.getKey()), + actualValueList, objectMapper); targetValuesByIndex.put(actualListEntry.getKey(), actualListEntry.getValue()); managedEntryByIndex.put(actualListEntry.getKey(), (Map<String, Object>) listEntry.getValue()); } @@ -376,8 +369,7 @@ private static boolean isKeyPrefixedSkippingDotKey(Set<Map.Entry<String, Object> } @SuppressWarnings("unchecked") - private static Map.Entry<Integer, Map<String, Object>> selectListEntryBasedOnKey( - String key, + private static Map.Entry<Integer, Map<String, Object>> selectListEntryBasedOnKey(String key, List<Map<String, Object>> values, KubernetesSerialization objectMapper) { Map<String, Object> ids = objectMapper.unmarshal(key, Map.class); var possibleTargets = new ArrayList<Map<String, Object>>(1); @@ -394,9 +386,8 @@ private static Map.Entry<Integer, Map<String, Object>> selectListEntryBasedOnKey + values.stream().map(Map::keySet).toList()); } if (possibleTargets.size() > 1) { - throw new IllegalStateException( - "More targets found in list element for key: " + key + " in map: " - + values.stream().map(Map::keySet).toList()); + throw new IllegalStateException("More targets found in list element for key: " + key + + " in map: " + values.stream().map(Map::keySet).toList()); } return new AbstractMap.SimpleEntry<>(lastIndex, possibleTargets.get(0)); } @@ -411,9 +402,7 @@ private Optional<ManagedFieldsEntry> checkIfFieldManagerExists(R actual, String .toList(); if (targetManagedFields.isEmpty()) { log.debug("No field manager exists for resource: {} with name: {} and operation {}", - actual.getKind(), - actual.getMetadata().getName(), - APPLY_OPERATION); + actual.getKind(), actual.getMetadata().getName(), APPLY_OPERATION); return Optional.empty(); } // this should not happen in theory diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/AbstractWorkflowExecutor.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/AbstractWorkflowExecutor.java index 60d137fa1a..5153e685b8 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/AbstractWorkflowExecutor.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/AbstractWorkflowExecutor.java @@ -111,8 +111,7 @@ protected void markAsExecuting(DependentResourceNode<?, P> dependentResourceNode } protected synchronized void handleExceptionInExecutor( - DependentResourceNode<?, P> dependentResourceNode, - RuntimeException e) { + DependentResourceNode<?, P> dependentResourceNode, RuntimeException e) { createOrGetResultFor(dependentResourceNode).withError(e); } @@ -134,8 +133,7 @@ protected synchronized void handleNodeExecutionFinish( } @SuppressWarnings({"unchecked", "OptionalUsedAsFieldOrParameterType"}) - protected <R> boolean isConditionMet( - Optional<ConditionWithType<R, P, ?>> condition, + protected <R> boolean isConditionMet(Optional<ConditionWithType<R, P, ?>> condition, DependentResourceNode<R, P> dependentResource) { final var dr = dependentResource.getDependentResource(); return condition.map(c -> { @@ -157,8 +155,7 @@ protected <R> void submit(DependentResourceNode<R, P> dependentResourceNode, } protected <R> void registerOrDeregisterEventSourceBasedOnActivation( - boolean activationConditionMet, - DependentResourceNode<R, P> dependentResourceNode) { + boolean activationConditionMet, DependentResourceNode<R, P> dependentResourceNode) { if (dependentResourceNode.getActivationCondition().isPresent()) { final var dr = dependentResourceNode.getDependentResource(); final var eventSourceRetriever = context.eventSourceRetriever(); @@ -174,8 +171,7 @@ protected <R> void registerOrDeregisterEventSourceBasedOnActivation( } protected synchronized Map<DependentResource, BaseWorkflowResult.Detail<?>> asDetails() { - return results.entrySet().stream() - .collect( - Collectors.toMap(e -> e.getKey().getDependentResource(), e -> e.getValue().build())); + return results.entrySet().stream().collect( + Collectors.toMap(e -> e.getKey().getDependentResource(), e -> e.getValue().build())); } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/BaseWorkflowResult.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/BaseWorkflowResult.java index cf759022dc..b9bb7c9c13 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/BaseWorkflowResult.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/BaseWorkflowResult.java @@ -54,22 +54,18 @@ public <T> Optional<T> getDependentConditionResult(DependentResource dependentRe try { return Optional.ofNullable(results().get(dependentResource)) .flatMap(detail -> detail.getResultForConditionWithType(conditionType)) - .map(r -> result[0] = r.getDetail()) - .map(expectedResultType::cast); + .map(r -> result[0] = r.getDetail()).map(expectedResultType::cast); } catch (Exception e) { - throw new IllegalArgumentException("Condition " + - "result " + result[0] + - " for Dependent " + dependentResource.name() + " doesn't match expected type " - + expectedResultType.getSimpleName(), e); + throw new IllegalArgumentException( + "Condition " + "result " + result[0] + " for Dependent " + dependentResource.name() + + " doesn't match expected type " + expectedResultType.getSimpleName(), + e); } } - protected List<DependentResource> listFilteredBy( - Function<Detail, Boolean> filter) { - return results.entrySet().stream() - .filter(e -> filter.apply(e.getValue())) - .map(Map.Entry::getKey) - .toList(); + protected List<DependentResource> listFilteredBy(Function<Detail, Boolean> filter) { + return results.entrySet().stream().filter(e -> filter.apply(e.getValue())) + .map(Map.Entry::getKey).toList(); } @Override @@ -168,19 +164,23 @@ DetailBuilder<R> markForDelete() { } - record Detail<R>(Exception error, ReconcileResult<R> reconcileResult, - DetailedCondition.Result activationConditionResult, - DetailedCondition.Result deletePostconditionResult, - DetailedCondition.Result readyPostconditionResult, - DetailedCondition.Result reconcilePostconditionResult, - boolean deleted, boolean visited, boolean markedForDelete) { - - boolean isConditionWithTypeMet(Condition.Type conditionType) { - return getResultForConditionWithType(conditionType).map(DetailedCondition.Result::isSuccess) - .orElse(true); - } + record Detail<R>( + Exception error, ReconcileResult<R>reconcileResult, + DetailedCondition.Result activationConditionResult, DetailedCondition. + Result deletePostconditionResult, DetailedCondition. + Result readyPostconditionResult, DetailedCondition. + Result reconcilePostconditionResult, + boolean deleted, + boolean visited, + boolean markedForDelete) + { + + boolean isConditionWithTypeMet(Condition.Type conditionType) { + return getResultForConditionWithType(conditionType).map(DetailedCondition.Result::isSuccess) + .orElse(true); + } - Optional<DetailedCondition.Result<?>> getResultForConditionWithType( + Optional<DetailedCondition.Result<?>> getResultForConditionWithType( Condition.Type conditionType) { return switch (conditionType) { case ACTIVATION -> Optional.ofNullable(activationConditionResult); @@ -189,5 +189,4 @@ Optional<DetailedCondition.Result<?>> getResultForConditionWithType( case RECONCILE -> Optional.ofNullable(reconcilePostconditionResult); }; } - } -} +}} diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/CRDPresentActivationCondition.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/CRDPresentActivationCondition.java index 5a60b63d41..3d29a52929 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/CRDPresentActivationCondition.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/CRDPresentActivationCondition.java @@ -50,19 +50,16 @@ public CRDPresentActivationCondition(int checkLimit, Duration crdCheckInterval) } @Override - public boolean isMet(DependentResource<R, P> dependentResource, - P primary, Context<P> context) { + public boolean isMet(DependentResource<R, P> dependentResource, P primary, Context<P> context) { var resourceClass = dependentResource.resourceType(); final var crdName = HasMetadata.getFullResourceName(resourceClass); - var crdCheckState = crdPresenceCache.computeIfAbsent(crdName, - g -> new CRDCheckState()); + var crdCheckState = crdPresenceCache.computeIfAbsent(crdName, g -> new CRDCheckState()); synchronized (crdCheckState) { if (shouldCheckStateNow(crdCheckState)) { - boolean isPresent = crdPresentChecker - .checkIfCRDPresent(crdName, context.getClient()); + boolean isPresent = crdPresentChecker.checkIfCRDPresent(crdName, context.getClient()); crdCheckState.checkedNow(isPresent); } } @@ -119,8 +116,7 @@ public int getCheckCount() { public static class CRDPresentChecker { boolean checkIfCRDPresent(String crdName, KubernetesClient client) { - return client.resources(CustomResourceDefinition.class) - .withName(crdName).get() != null; + return client.resources(CustomResourceDefinition.class).withName(crdName).get() != null; } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ConditionWithType.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ConditionWithType.java index de95830a92..882ddc9338 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ConditionWithType.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ConditionWithType.java @@ -24,8 +24,7 @@ public Result<T> detailedIsMet(DependentResource<R, P> dependentResource, P prim if (condition instanceof DetailedCondition detailedCondition) { return detailedCondition.detailedIsMet(dependentResource, primary, context); } else { - return Result - .withoutResult(condition.isMet(dependentResource, primary, context)); + return Result.withoutResult(condition.isMet(dependentResource, primary, context)); } } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DefaultManagedWorkflow.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DefaultManagedWorkflow.java index 017dbb74a5..2d16007056 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DefaultManagedWorkflow.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DefaultManagedWorkflow.java @@ -27,9 +27,8 @@ public class DefaultManagedWorkflow<P extends HasMetadata> implements ManagedWor protected DefaultManagedWorkflow(List<DependentResourceSpec> orderedSpecs, boolean hasCleaner) { this.hasCleaner = hasCleaner; topLevelResources = new HashSet<>(orderedSpecs.size()); - bottomLevelResources = orderedSpecs.stream() - .map(DependentResourceSpec::getName) - .collect(Collectors.toSet()); + bottomLevelResources = + orderedSpecs.stream().map(DependentResourceSpec::getName).collect(Collectors.toSet()); this.orderedSpecs = orderedSpecs; for (DependentResourceSpec<?, ?, ?> spec : orderedSpecs) { // add cycle detection? @@ -73,20 +72,15 @@ public boolean isEmpty() { @Override @SuppressWarnings("unchecked") - public Workflow<P> resolve(KubernetesClient client, - ControllerConfiguration<P> configuration) { + public Workflow<P> resolve(KubernetesClient client, ControllerConfiguration<P> configuration) { final var alreadyResolved = new HashMap<String, DependentResourceNode>(orderedSpecs.size()); for (DependentResourceSpec<?, P, ?> spec : orderedSpecs) { final var dependentResource = resolve(spec, client, configuration); - final var node = new DependentResourceNode( - spec.getReconcileCondition(), - spec.getDeletePostCondition(), - spec.getReadyCondition(), - spec.getActivationCondition(), - dependentResource); + final var node = + new DependentResourceNode(spec.getReconcileCondition(), spec.getDeletePostCondition(), + spec.getReadyCondition(), spec.getActivationCondition(), dependentResource); alreadyResolved.put(dependentResource.name(), node); - spec.getDependsOn() - .forEach(depend -> node.addDependsOnRelation(alreadyResolved.get(depend))); + spec.getDependsOn().forEach(depend -> node.addDependsOnRelation(alreadyResolved.get(depend))); } final var bottom = @@ -100,28 +94,25 @@ public Workflow<P> resolve(KubernetesClient client, @SuppressWarnings({"rawtypes", "unchecked"}) private <R> DependentResource<R, P> resolve(DependentResourceSpec<R, P, ?> spec, - KubernetesClient client, - ControllerConfiguration<P> configuration) { - final DependentResource<R, P> dependentResource = - configuration.getConfigurationService().dependentResourceFactory() - .createFrom(spec, configuration); + KubernetesClient client, ControllerConfiguration<P> configuration) { + final DependentResource<R, P> dependentResource = configuration.getConfigurationService() + .dependentResourceFactory().createFrom(spec, configuration); final var name = spec.getName(); if (name != null && !NO_VALUE_SET.equals(name) && dependentResource instanceof NameSetter) { ((NameSetter) dependentResource).setName(name); } - spec.getUseEventSourceWithName() - .ifPresent(esName -> { - if (dependentResource instanceof EventSourceReferencer) { - ((EventSourceReferencer) dependentResource).useEventSourceWithName(esName); - } else { - throw new IllegalStateException( - "DependentResource " + spec + " wants to use EventSource named " + esName - + " but doesn't implement support for this feature by implementing " - + EventSourceReferencer.class.getSimpleName()); - } - }); + spec.getUseEventSourceWithName().ifPresent(esName -> { + if (dependentResource instanceof EventSourceReferencer) { + ((EventSourceReferencer) dependentResource).useEventSourceWithName(esName); + } else { + throw new IllegalStateException( + "DependentResource " + spec + " wants to use EventSource named " + esName + + " but doesn't implement support for this feature by implementing " + + EventSourceReferencer.class.getSimpleName()); + } + }); return dependentResource; } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DefaultWorkflow.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DefaultWorkflow.java index 3b928ad78a..91ba655a64 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DefaultWorkflow.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DefaultWorkflow.java @@ -37,8 +37,7 @@ class DefaultWorkflow<P extends HasMetadata> implements Workflow<P> { } DefaultWorkflow(Set<DependentResourceNode> dependentResourceNodes, - boolean throwExceptionAutomatically, - boolean hasCleaner) { + boolean throwExceptionAutomatically, boolean hasCleaner) { this.throwExceptionAutomatically = throwExceptionAutomatically; this.hasCleaner = hasCleaner; @@ -55,8 +54,7 @@ class DefaultWorkflow<P extends HasMetadata> implements Workflow<P> { protected DefaultWorkflow(Map<String, DependentResourceNode> dependentResourceNodes, Set<DependentResourceNode> bottomLevelResource, Set<DependentResourceNode> topLevelResources, - boolean throwExceptionAutomatically, - boolean hasCleaner) { + boolean throwExceptionAutomatically, boolean hasCleaner) { this.throwExceptionAutomatically = throwExceptionAutomatically; this.hasCleaner = hasCleaner; this.topLevelResources = topLevelResources; @@ -159,7 +157,6 @@ public Map<String, DependentResource> getDependentResourcesByName() { public List<DependentResource> getDependentResourcesWithoutActivationCondition() { return dependentResourceNodes.values().stream() .filter(n -> n.getActivationCondition().isEmpty()) - .map(DependentResourceNode::getDependentResource) - .toList(); + .map(DependentResourceNode::getDependentResource).toList(); } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupport.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupport.java index d6404aa392..446c6d03dc 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupport.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupport.java @@ -143,8 +143,7 @@ private Set<DependentResourceSpec> getTopDependentResources( private Map<String, DRInfo> createDRInfos(List<DependentResourceSpec> dependentResourceSpecs) { // first create mappings - final var infos = dependentResourceSpecs.stream() - .map(DRInfo::new) + final var infos = dependentResourceSpecs.stream().map(DRInfo::new) .collect(Collectors.toMap(DRInfo::name, Function.identity())); // then populate the reverse depends on information diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowBuilder.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowBuilder.java index 7493058723..7125564109 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowBuilder.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowBuilder.java @@ -44,9 +44,7 @@ DependentResourceNode getNodeByDependentResource(DependentResource<?, ?> depende return node; } else { return dependentResourceNodes.values().stream() - .filter(dr -> dr.getDependentResource() == dependentResource) - .findFirst() - .orElseThrow(); + .filter(dr -> dr.getDependentResource() == dependentResource).findFirst().orElseThrow(); } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowCleanupExecutor.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowCleanupExecutor.java index 4681502a3b..197c2c7569 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowCleanupExecutor.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowCleanupExecutor.java @@ -57,8 +57,8 @@ private synchronized void handleCleanup(DependentResourceNode dependentResourceN if (hasErroredDependent) { causes.add("errored dependent"); } - log.debug("Skipping: {} primaryID: {} causes: {}", dependentResourceNode, - primaryID, String.join(", ", causes)); + log.debug("Skipping: {} primaryID: {} causes: {}", dependentResourceNode, primaryID, + String.join(", ", causes)); } return; } @@ -116,8 +116,7 @@ private synchronized void handleDependentCleaned( private boolean allDependentsCleaned(DependentResourceNode dependentResourceNode) { List<DependentResourceNode> parents = dependentResourceNode.getParents(); return parents.isEmpty() - || parents.stream() - .allMatch(d -> alreadyVisited(d) && !postDeleteConditionNotMet(d)); + || parents.stream().allMatch(d -> alreadyVisited(d) && !postDeleteConditionNotMet(d)); } @SuppressWarnings("unchecked") diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowReconcileExecutor.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowReconcileExecutor.java index 432a168ad7..c65d1f0db8 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowReconcileExecutor.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowReconcileExecutor.java @@ -63,20 +63,20 @@ private synchronized <R> void handleReconcile(DependentResourceNode<R, P> depend if (hasErroredParent) { causes.add("errored parent"); } - log.debug("Skipping: {} primaryID: {} causes: {}", dependentResourceNode, - primaryID, String.join(", ", causes)); + log.debug("Skipping: {} primaryID: {} causes: {}", dependentResourceNode, primaryID, + String.join(", ", causes)); } return; } - boolean activationConditionMet = isConditionMet(dependentResourceNode.getActivationCondition(), - dependentResourceNode); + boolean activationConditionMet = + isConditionMet(dependentResourceNode.getActivationCondition(), dependentResourceNode); registerOrDeregisterEventSourceBasedOnActivation(activationConditionMet, dependentResourceNode); boolean reconcileConditionMet = true; if (activationConditionMet) { - reconcileConditionMet = isConditionMet(dependentResourceNode.getReconcilePrecondition(), - dependentResourceNode); + reconcileConditionMet = + isConditionMet(dependentResourceNode.getReconcilePrecondition(), dependentResourceNode); } if (!reconcileConditionMet || !activationConditionMet) { handleReconcileOrActivationConditionNotMet(dependentResourceNode, activationConditionMet); @@ -108,20 +108,18 @@ private synchronized void handleDelete(DependentResourceNode dependentResourceNo causes.add("waiting on dependents"); } log.debug("Skipping submit for delete of: {} primaryID: {} causes: {}", - dependentResourceNode, - primaryID, String.join(", ", causes)); + dependentResourceNode, primaryID, String.join(", ", causes)); } return; } - submit(dependentResourceNode, - new NodeDeleteExecutor<>(dependentResourceNode), DELETE); + submit(dependentResourceNode, new NodeDeleteExecutor<>(dependentResourceNode), DELETE); } private boolean allDependentsDeletedAlready(DependentResourceNode<?, P> dependentResourceNode) { var dependents = dependentResourceNode.getParents(); - return dependents.stream().allMatch(d -> alreadyVisited(d) && isReady(d) - && !isInError(d) && !postDeleteConditionNotMet(d)); + return dependents.stream().allMatch( + d -> alreadyVisited(d) && isReady(d) && !isInError(d) && !postDeleteConditionNotMet(d)); } private class NodeReconcileExecutor<R> extends NodeExecutor<R, P> { @@ -133,15 +131,14 @@ private NodeReconcileExecutor(DependentResourceNode<R, P> dependentResourceNode) @Override protected void doRun(DependentResourceNode<R, P> dependentResourceNode) { final var dependentResource = dependentResourceNode.getDependentResource(); - log.debug( - "Reconciling for primary: {} node: {} ", primaryID, dependentResourceNode); + log.debug("Reconciling for primary: {} node: {} ", primaryID, dependentResourceNode); ReconcileResult reconcileResult = dependentResource.reconcile(primary, context); final var detailBuilder = createOrGetResultFor(dependentResourceNode); detailBuilder.withReconcileResult(reconcileResult).markAsVisited(); if (isConditionMet(dependentResourceNode.getReadyPostcondition(), dependentResourceNode)) { - log.debug("Setting already reconciled for: {} primaryID: {}", - dependentResourceNode, primaryID); + log.debug("Setting already reconciled for: {} primaryID: {}", dependentResourceNode, + primaryID); handleDependentsReconcile(dependentResourceNode); } else { log.debug("Setting already reconciled but not ready for: {}", dependentResourceNode); @@ -198,8 +195,7 @@ private synchronized void handleDependentsReconcile( } private void handleReconcileOrActivationConditionNotMet( - DependentResourceNode<?, P> dependentResourceNode, - boolean activationConditionMet) { + DependentResourceNode<?, P> dependentResourceNode, boolean activationConditionMet) { Set<DependentResourceNode> bottomNodes = new HashSet<>(); markDependentsForDelete(dependentResourceNode, bottomNodes, activationConditionMet); bottomNodes.forEach(this::handleDelete); @@ -229,15 +225,13 @@ private void markDependentsForDelete(DependentResourceNode<?, P> dependentResour } private boolean allParentsReconciledAndReady(DependentResourceNode<?, ?> dependentResourceNode) { - return dependentResourceNode.getDependsOn().isEmpty() - || dependentResourceNode.getDependsOn().stream() - .allMatch(d -> alreadyVisited(d) && isReady(d)); + return dependentResourceNode.getDependsOn().isEmpty() || dependentResourceNode.getDependsOn() + .stream().allMatch(d -> alreadyVisited(d) && isReady(d)); } private boolean hasErroredParent(DependentResourceNode<?, ?> dependentResourceNode) { return !dependentResourceNode.getDependsOn().isEmpty() - && dependentResourceNode.getDependsOn().stream() - .anyMatch(this::isInError); + && dependentResourceNode.getDependsOn().stream().anyMatch(this::isInError); } private WorkflowReconcileResult createReconcileResult() { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/Event.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/Event.java index 227a297795..3856a0cf08 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/Event.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/Event.java @@ -16,9 +16,7 @@ public ResourceID getRelatedCustomResourceID() { @Override public String toString() { - return "Event{" + - "relatedCustomResource=" + relatedCustomResource + - '}'; + return "Event{" + "relatedCustomResource=" + relatedCustomResource + '}'; } @Override diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java index e05ea4830f..17a74eed5c 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java @@ -49,27 +49,21 @@ public class EventProcessor<P extends HasMetadata> implements EventHandler, Life public EventProcessor(EventSourceManager<P> eventSourceManager, ConfigurationService configurationService) { - this( - eventSourceManager.getController().getConfiguration(), + this(eventSourceManager.getController().getConfiguration(), new ReconciliationDispatcher<>(eventSourceManager.getController()), eventSourceManager, configurationService.getMetrics(), eventSourceManager.getControllerEventSource()); } @SuppressWarnings("rawtypes") - EventProcessor( - ControllerConfiguration controllerConfiguration, + EventProcessor(ControllerConfiguration controllerConfiguration, ReconciliationDispatcher<P> reconciliationDispatcher, - EventSourceManager<P> eventSourceManager, - Metrics metrics) { - this( - controllerConfiguration, - reconciliationDispatcher, eventSourceManager, metrics, + EventSourceManager<P> eventSourceManager, Metrics metrics) { + this(controllerConfiguration, reconciliationDispatcher, eventSourceManager, metrics, eventSourceManager.getControllerEventSource()); } @SuppressWarnings({"rawtypes", "unchecked"}) - private EventProcessor( - ControllerConfiguration controllerConfiguration, + private EventProcessor(ControllerConfiguration controllerConfiguration, ReconciliationDispatcher<P> reconciliationDispatcher, EventSourceManager<P> eventSourceManager, Metrics metrics, Cache<P> cache) { this.controllerConfiguration = controllerConfiguration; @@ -81,11 +75,11 @@ private EventProcessor( this.eventSourceManager = eventSourceManager; this.rateLimiter = controllerConfiguration.getRateLimiter(); - metricsMetadata = Optional.ofNullable(eventSourceManager.getController()) - .map(c -> Map.of( - Constants.RESOURCE_GVK_KEY, c.getAssociatedGroupVersionKind(), - Constants.CONTROLLER_NAME, controllerConfiguration.getName())) - .orElseGet(HashMap::new); + metricsMetadata = + Optional.ofNullable(eventSourceManager.getController()) + .map(c -> Map.of(Constants.RESOURCE_GVK_KEY, c.getAssociatedGroupVersionKind(), + Constants.CONTROLLER_NAME, controllerConfiguration.getName())) + .orElseGet(HashMap::new); } @Override @@ -147,9 +141,7 @@ private void submitReconciliationExecution(ResourceState state) { } else { log.debug( "Skipping executing controller for resource id: {}. Controller in execution: {}. Latest Resource present: {}", - resourceID, - controllerUnderExecution, - maybeLatest.isPresent()); + resourceID, controllerUnderExecution, maybeLatest.isPresent()); if (maybeLatest.isEmpty()) { // there can be multiple reasons why the primary resource is not present, one is that the // informer is currently disconnected from k8s api server, but will eventually receive the @@ -190,8 +182,7 @@ private void handleEventMarking(Event event, ResourceState state) { } else if (log.isDebugEnabled()) { log.debug( "Skipped marking event as received. Delete event present: {}, processed mark for deletion: {}", - state.deleteEventPresent(), - state.processedMarkForDeletionPresent()); + state.deleteEventPresent(), state.processedMarkForDeletionPresent()); } } @@ -212,16 +203,14 @@ private void handleRateLimitedSubmission(ResourceID resourceID, Duration minimal Math.max(minimalDurationMillis, MINIMAL_RATE_LIMIT_RESCHEDULE_DURATION)); } - synchronized void eventProcessingFinished( - ExecutionScope<P> executionScope, PostExecutionControl<P> postExecutionControl) { + synchronized void eventProcessingFinished(ExecutionScope<P> executionScope, + PostExecutionControl<P> postExecutionControl) { if (!running) { return; } ResourceID resourceID = executionScope.getResourceID(); final var state = resourceStateManager.getOrCreate(resourceID); - log.debug( - "Event processing finished. Scope: {}, PostExecutionControl: {}", - executionScope, + log.debug("Event processing finished. Scope: {}, PostExecutionControl: {}", executionScope, postExecutionControl); unsetUnderExecution(resourceID); @@ -229,11 +218,10 @@ synchronized void eventProcessingFinished( // If a delete event present at this phase, it was received during reconciliation. // So we either removed the finalizer during reconciliation or we don't use finalizers. // Either way we don't want to retry. - if (isRetryConfigured() - && postExecutionControl.exceptionDuringExecution() + if (isRetryConfigured() && postExecutionControl.exceptionDuringExecution() && !state.deleteEventPresent()) { - handleRetryOnException( - executionScope, postExecutionControl.getRuntimeException().orElseThrow()); + handleRetryOnException(executionScope, + postExecutionControl.getRuntimeException().orElseThrow()); return; } cleanupOnSuccessfulExecution(executionScope); @@ -263,29 +251,24 @@ private void logErrorIfNoRetryConfigured(ExecutionScope<P> executionScope, } } - private void reScheduleExecutionIfInstructed( - PostExecutionControl<P> postExecutionControl, P customResource) { + private void reScheduleExecutionIfInstructed(PostExecutionControl<P> postExecutionControl, + P customResource) { - postExecutionControl - .getReScheduleDelay() - .ifPresentOrElse(delay -> { - var resourceID = ResourceID.fromResource(customResource); - log.debug("Rescheduling event for resource: {} with delay: {}", resourceID, delay); - retryEventSource().scheduleOnce(resourceID, delay); - }, () -> scheduleExecutionForMaxReconciliationInterval(customResource)); + postExecutionControl.getReScheduleDelay().ifPresentOrElse(delay -> { + var resourceID = ResourceID.fromResource(customResource); + log.debug("Rescheduling event for resource: {} with delay: {}", resourceID, delay); + retryEventSource().scheduleOnce(resourceID, delay); + }, () -> scheduleExecutionForMaxReconciliationInterval(customResource)); } private void scheduleExecutionForMaxReconciliationInterval(P customResource) { - this.controllerConfiguration - .maxReconciliationInterval() - .ifPresent(m -> { - var resourceID = ResourceID.fromResource(customResource); - var delay = m.toMillis(); - log.debug("Rescheduling event for max reconciliation interval for resource: {} : " + - "with delay: {}", - resourceID, delay); - retryEventSource().scheduleOnce(resourceID, delay); - }); + this.controllerConfiguration.maxReconciliationInterval().ifPresent(m -> { + var resourceID = ResourceID.fromResource(customResource); + var delay = m.toMillis(); + log.debug("Rescheduling event for max reconciliation interval for resource: {} : " + + "with delay: {}", resourceID, delay); + retryEventSource().scheduleOnce(resourceID, delay); + }); } TimerEventSource<P> retryEventSource() { @@ -297,8 +280,7 @@ TimerEventSource<P> retryEventSource() { * events (received meanwhile retry is in place or already in buffer) instantly or always wait * according to the retry timing if there was an exception. */ - private void handleRetryOnException( - ExecutionScope<P> executionScope, Exception exception) { + private void handleRetryOnException(ExecutionScope<P> executionScope, Exception exception) { final var state = getOrInitRetryExecution(executionScope); var resourceID = state.getId(); boolean eventPresent = state.eventPresent(); @@ -312,24 +294,19 @@ private void handleRetryOnException( } Optional<Long> nextDelay = state.getRetry().nextDelay(); - nextDelay.ifPresentOrElse( - delay -> { - log.debug( - "Scheduling timer event for retry with delay:{} for resource: {}", - delay, - resourceID); - metrics.failedReconciliation(executionScope.getResource(), exception, metricsMetadata); - retryEventSource().scheduleOnce(resourceID, delay); - }, - () -> { - log.error("Exhausted retries for scope {}.", executionScope); - scheduleExecutionForMaxReconciliationInterval(executionScope.getResource()); - }); + nextDelay.ifPresentOrElse(delay -> { + log.debug("Scheduling timer event for retry with delay:{} for resource: {}", delay, + resourceID); + metrics.failedReconciliation(executionScope.getResource(), exception, metricsMetadata); + retryEventSource().scheduleOnce(resourceID, delay); + }, () -> { + log.error("Exhausted retries for scope {}.", executionScope); + scheduleExecutionForMaxReconciliationInterval(executionScope.getResource()); + }); } private void retryAwareErrorLogging(RetryExecution retry, boolean eventPresent, - Exception exception, - ExecutionScope<P> executionScope) { + Exception exception, ExecutionScope<P> executionScope) { if (!eventPresent && !retry.isLastAttempt() && exception instanceof KubernetesClientException ex) { if (ex.getCode() == HttpURLConnection.HTTP_CONFLICT) { @@ -341,13 +318,12 @@ private void retryAwareErrorLogging(RetryExecution retry, boolean eventPresent, return; } } - log.error("Error during event processing {}", executionScope, - exception); + log.error("Error during event processing {}", executionScope, exception); } private void cleanupOnSuccessfulExecution(ExecutionScope<P> executionScope) { - log.debug( - "Cleanup for successful execution for resource: {}", getName(executionScope.getResource())); + log.debug("Cleanup for successful execution for resource: {}", + getName(executionScope.getResource())); if (isRetryConfigured()) { resourceStateManager.getOrCreate(executionScope.getResourceID()).setRetry(null); } @@ -432,8 +408,7 @@ public void run() { try { var actualResource = cache.get(resourceID); if (actualResource.isEmpty()) { - log.debug("Skipping execution; primary resource missing from cache: {}", - resourceID); + log.debug("Skipping execution; primary resource missing from cache: {}", resourceID); return; } actualResource.ifPresent(executionScope::setResource); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSourceManager.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSourceManager.java index 174ffa0978..d0b0feea17 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSourceManager.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSourceManager.java @@ -72,14 +72,12 @@ public synchronized void start() { executorServiceManager.boundedExecuteAndWaitForAllToComplete( eventSources.additionalEventSources() .filter(es -> es.priority().equals(EventSourceStartPriority.RESOURCE_STATE_LOADER)), - this::startEventSource, - getThreadNamer("start")); + this::startEventSource, getThreadNamer("start")); executorServiceManager.boundedExecuteAndWaitForAllToComplete( eventSources.additionalEventSources() .filter(es -> es.priority().equals(EventSourceStartPriority.DEFAULT)), - this::startEventSource, - getThreadNamer("start")); + this::startEventSource, getThreadNamer("start")); } @SuppressWarnings("rawtypes") @@ -95,16 +93,13 @@ private static Function<NamespaceChangeable, String> getEventSourceThreadNamer(S public synchronized void stop() { stopEventSource(eventSources.controllerEventSource()); executorServiceManager.boundedExecuteAndWaitForAllToComplete( - eventSources.additionalEventSources(), - this::stopEventSource, - getThreadNamer("stop")); + eventSources.additionalEventSources(), this::stopEventSource, getThreadNamer("stop")); } @SuppressWarnings("rawtypes") private void logEventSourceEvent(EventSource eventSource, String event) { if (log.isDebugEnabled()) { - log.debug("{} event source {} for {}", event, eventSource.name(), - eventSource.resourceType()); + log.debug("{} event source {} for {}", event, eventSource.name(), eventSource.resourceType()); } } @@ -138,8 +133,7 @@ public final synchronized <R> void registerEventSource(EventSource<R, P> eventSo Objects.requireNonNull(eventSource, "EventSource must not be null"); try { if (eventSource instanceof ManagedInformerEventSource managedInformerEventSource) { - managedInformerEventSource.setControllerConfiguration( - controller.getConfiguration()); + managedInformerEventSource.setControllerConfiguration(controller.getConfiguration()); } eventSources.add(eventSource); eventSource.setEventHandler(controller.getEventProcessor()); @@ -153,42 +147,37 @@ public final synchronized <R> void registerEventSource(EventSource<R, P> eventSo @SuppressWarnings("unchecked") public void broadcastOnResourceEvent(ResourceAction action, P resource, P oldResource) { - eventSources.additionalEventSources() - .forEach(source -> { - if (source instanceof ResourceEventAware) { - var lifecycleAwareES = ((ResourceEventAware<P>) source); - switch (action) { - case ADDED: - lifecycleAwareES.onResourceCreated(resource); - break; - case UPDATED: - lifecycleAwareES.onResourceUpdated(resource, oldResource); - break; - case DELETED: - lifecycleAwareES.onResourceDeleted(resource); - break; - } - } - }); + eventSources.additionalEventSources().forEach(source -> { + if (source instanceof ResourceEventAware) { + var lifecycleAwareES = ((ResourceEventAware<P>) source); + switch (action) { + case ADDED: + lifecycleAwareES.onResourceCreated(resource); + break; + case UPDATED: + lifecycleAwareES.onResourceUpdated(resource, oldResource); + break; + case DELETED: + lifecycleAwareES.onResourceDeleted(resource); + break; + } + } + }); } public void changeNamespaces(Set<String> namespaces) { eventSources.controllerEventSource().changeNamespaces(namespaces); - final var namespaceChangeables = eventSources - .additionalEventSources() - .filter(NamespaceChangeable.class::isInstance) - .map(NamespaceChangeable.class::cast) + final var namespaceChangeables = eventSources.additionalEventSources() + .filter(NamespaceChangeable.class::isInstance).map(NamespaceChangeable.class::cast) .filter(NamespaceChangeable::allowsNamespaceChanges); executorServiceManager.boundedExecuteAndWaitForAllToComplete(namespaceChangeables, e -> { e.changeNamespaces(namespaces); return null; - }, - getEventSourceThreadNamer("changeNamespace")); + }, getEventSourceThreadNamer("changeNamespace")); } public Set<EventSource<?, P>> getRegisteredEventSources() { - return eventSources.flatMappedSources() - .collect(Collectors.toCollection(LinkedHashSet::new)); + return eventSources.flatMappedSources().collect(Collectors.toCollection(LinkedHashSet::new)); } @SuppressWarnings("rawtypes") @@ -243,8 +232,7 @@ public EventSourceContext<P> eventSourceContextForDynamicRegistration() { } @Override - public <R> EventSource<R, P> getEventSourceFor( - Class<R> dependentType, String name) { + public <R> EventSource<R, P> getEventSourceFor(Class<R> dependentType, String name) { Objects.requireNonNull(dependentType, "dependentType is Mandatory"); return eventSources.get(dependentType, name); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSources.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSources.java index c21509f41c..8e17a1fb10 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSources.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSources.java @@ -31,8 +31,8 @@ public void add(EventSource eventSource) { final var name = eventSource.name(); var existing = sourceByName.get(name); if (existing != null) { - throw new IllegalArgumentException("Event source " + existing - + " is already registered with name: " + name); + throw new IllegalArgumentException( + "Event source " + existing + " is already registered with name: " + name); } sourceByName.put(name, eventSource); sources.computeIfAbsent(keyFor(eventSource), k -> new ConcurrentHashMap<>()).put(name, @@ -68,15 +68,13 @@ TimerEventSource<P> retryEventSource() { @SuppressWarnings("rawtypes") public Stream<EventSource> allEventSources() { - return Stream.concat( - Stream.of(controllerEventSource(), retryAndRescheduleTimerEventSource), + return Stream.concat(Stream.of(controllerEventSource(), retryAndRescheduleTimerEventSource), flatMappedSources()); } @SuppressWarnings("rawtypes") Stream<EventSource> additionalEventSources() { - return Stream.concat( - Stream.of(retryEventSource()).filter(Objects::nonNull), + return Stream.concat(Stream.of(retryEventSource()).filter(Objects::nonNull), flatMappedSources()); } @@ -119,25 +117,23 @@ public <S> EventSource<S, P> get(Class<S> dependentType, String name) { source = (EventSource<S, P>) sourcesForType.get(name); if (source == null) { - throw new IllegalArgumentException("There is no event source found for class:" + - " " + dependentType.getName() + ", name:" + name); + throw new IllegalArgumentException("There is no event source found for class:" + " " + + dependentType.getName() + ", name:" + name); } } final var resourceClass = source.resourceType(); if (!resourceClass.isAssignableFrom(dependentType)) { - throw new IllegalArgumentException(source + " associated with " - + keyAsString(dependentType, name) - + " is handling " + resourceClass.getName() + " resources but asked for " - + dependentType.getName()); + throw new IllegalArgumentException( + source + " associated with " + keyAsString(dependentType, name) + " is handling " + + resourceClass.getName() + " resources but asked for " + dependentType.getName()); } return source; } @SuppressWarnings("rawtypes") private String keyAsString(Class dependentType, String name) { - return name != null && !name.isEmpty() - ? "(" + dependentType.getName() + ", " + name + ")" + return name != null && !name.isEmpty() ? "(" + dependentType.getName() + ", " + name + ")" : dependentType.getName(); } @@ -147,7 +143,6 @@ public <S> List<EventSource<S, P>> getEventSources(Class<S> dependentType) { if (sourcesForType == null) { return Collections.emptyList(); } - return sourcesForType.values().stream() - .map(es -> (EventSource<S, P>) es).toList(); + return sourcesForType.values().stream().map(es -> (EventSource<S, P>) es).toList(); } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ExecutionScope.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ExecutionScope.java index 90899a6e1a..a523ee258f 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ExecutionScope.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ExecutionScope.java @@ -31,12 +31,8 @@ public String toString() { if (resource == null) { return "ExecutionScope{resource: null}"; } else - return "ExecutionScope{" - + " resource id: " - + ResourceID.fromResource(resource) - + ", version: " - + resource.getMetadata().getResourceVersion() - + '}'; + return "ExecutionScope{" + " resource id: " + ResourceID.fromResource(resource) + + ", version: " + resource.getMetadata().getResourceVersion() + '}'; } public RetryInfo getRetryInfo() { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/PostExecutionControl.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/PostExecutionControl.java index 3343cff80a..c9f26a1ab4 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/PostExecutionControl.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/PostExecutionControl.java @@ -13,9 +13,7 @@ final class PostExecutionControl<R extends HasMetadata> { private Long reScheduleDelay = null; - private PostExecutionControl( - boolean finalizerRemoved, - R updatedCustomResource, + private PostExecutionControl(boolean finalizerRemoved, R updatedCustomResource, boolean updateIsStatusPatch, Exception runtimeException) { this.finalizerRemoved = finalizerRemoved; this.updatedCustomResource = updatedCustomResource; @@ -79,14 +77,9 @@ public boolean updateIsStatusPatch() { @Override public String toString() { - return "PostExecutionControl{" - + "onlyFinalizerHandled=" - + finalizerRemoved - + ", updatedCustomResource=" - + updatedCustomResource - + ", runtimeException=" - + runtimeException - + '}'; + return "PostExecutionControl{" + "onlyFinalizerHandled=" + finalizerRemoved + + ", updatedCustomResource=" + updatedCustomResource + ", runtimeException=" + + runtimeException + '}'; } public boolean isFinalizerRemoved() { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ReconciliationDispatcher.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ReconciliationDispatcher.java index baa7c36121..b068d19a50 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ReconciliationDispatcher.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ReconciliationDispatcher.java @@ -59,7 +59,7 @@ class ReconciliationDispatcher<P extends HasMetadata> { public ReconciliationDispatcher(Controller<P> controller) { this(controller, new CustomResourceFacade<>(controller.getCRClient(), controller.getConfiguration(), - controller.getConfiguration().getConfigurationService().getResourceCloner())); + controller.getConfiguration().getConfigurationService().getResourceCloner())); } public PostExecutionControl<P> handleExecution(ExecutionScope<P> executionScope) { @@ -81,8 +81,7 @@ private PostExecutionControl<P> handleDispatch(ExecutionScope<P> executionScope) if (markedForDeletion && shouldNotDispatchToCleanupWhenMarkedForDeletion(originalResource)) { log.debug( "Skipping cleanup of resource {} because finalizer(s) {} don't allow processing yet", - getName(originalResource), - originalResource.getMetadata().getFinalizers()); + getName(originalResource), originalResource.getMetadata().getFinalizers()); return PostExecutionControl.defaultDispatch(); } @@ -96,14 +95,13 @@ private PostExecutionControl<P> handleDispatch(ExecutionScope<P> executionScope) } private boolean shouldNotDispatchToCleanupWhenMarkedForDeletion(P resource) { - var alreadyRemovedFinalizer = controller.useFinalizer() - && !resource.hasFinalizer(configuration().getFinalizerName()); + var alreadyRemovedFinalizer = + controller.useFinalizer() && !resource.hasFinalizer(configuration().getFinalizerName()); return !controller.useFinalizer() || alreadyRemovedFinalizer; } - private PostExecutionControl<P> handleReconcile( - ExecutionScope<P> executionScope, P resourceForExecution, P originalResource, - Context<P> context) throws Exception { + private PostExecutionControl<P> handleReconcile(ExecutionScope<P> executionScope, + P resourceForExecution, P originalResource, Context<P> context) throws Exception { if (controller.useFinalizer() && !originalResource.hasFinalizer(configuration().getFinalizerName())) { /* @@ -116,8 +114,7 @@ private PostExecutionControl<P> handleReconcile( if (useSSA) { updatedResource = addFinalizerWithSSA(originalResource); } else { - updatedResource = - updateCustomResourceWithFinalizer(resourceForExecution, originalResource); + updatedResource = updateCustomResourceWithFinalizer(resourceForExecution, originalResource); } return PostExecutionControl.onlyFinalizerAdded(updatedResource); } else { @@ -135,11 +132,8 @@ private P cloneResource(P resource) { private PostExecutionControl<P> reconcileExecution(ExecutionScope<P> executionScope, P resourceForExecution, P originalResource, Context<P> context) throws Exception { - log.debug( - "Reconciling resource {} with version: {} with execution scope: {}", - getName(resourceForExecution), - getVersion(resourceForExecution), - executionScope); + log.debug("Reconciling resource {} with version: {} with execution scope: {}", + getName(resourceForExecution), getVersion(resourceForExecution), executionScope); UpdateControl<P> updateControl = controller.reconcile(resourceForExecution, context); @@ -172,8 +166,7 @@ private PostExecutionControl<P> reconcileExecution(ExecutionScope<P> executionSc @SuppressWarnings("unchecked") private PostExecutionControl<P> handleErrorStatusHandler(P resource, P originalResource, - Context<P> context, - Exception e) throws Exception { + Context<P> context, Exception e) throws Exception { RetryInfo retryInfo = context.getRetryInfo().orElseGet(() -> new RetryInfo() { @Override @@ -184,13 +177,13 @@ public int getAttemptCount() { @Override public boolean isLastAttempt() { // check also if the retry is limited to 0 - return retryConfigurationHasZeroAttempts || - controller.getConfiguration().getRetry() == null; + return retryConfigurationHasZeroAttempts + || controller.getConfiguration().getRetry() == null; } }); ((DefaultContext<P>) context).setRetryInfo(retryInfo); - var errorStatusUpdateControl = controller.getReconciler() - .updateErrorStatus(resource, context, e); + var errorStatusUpdateControl = + controller.getReconciler().updateErrorStatus(resource, context, e); if (errorStatusUpdateControl.isDefaultErrorProcessing()) { throw e; @@ -204,13 +197,11 @@ public boolean isLastAttempt() { if (errorStatusUpdateControl.isNoRetry()) { PostExecutionControl<P> postExecutionControl; if (updatedResource != null) { - postExecutionControl = - PostExecutionControl.customResourceStatusPatched(updatedResource); + postExecutionControl = PostExecutionControl.customResourceStatusPatched(updatedResource); } else { postExecutionControl = PostExecutionControl.defaultDispatch(); } - errorStatusUpdateControl.getScheduleDelay() - .ifPresent(postExecutionControl::withReSchedule); + errorStatusUpdateControl.getScheduleDelay().ifPresent(postExecutionControl::withReSchedule); return postExecutionControl; } throw e; @@ -230,18 +221,15 @@ private PostExecutionControl<P> createPostExecutionControl(P updatedCustomResour } private void updatePostExecutionControlWithReschedule( - PostExecutionControl<P> postExecutionControl, - BaseControl<?> baseControl) { + PostExecutionControl<P> postExecutionControl, BaseControl<?> baseControl) { baseControl.getScheduleDelay().ifPresent(postExecutionControl::withReSchedule); } - private PostExecutionControl<P> handleCleanup(P resourceForExecution, - P originalResource, Context<P> context) { + private PostExecutionControl<P> handleCleanup(P resourceForExecution, P originalResource, + Context<P> context) { if (log.isDebugEnabled()) { - log.debug( - "Executing delete for resource: {} with version: {}", - ResourceID.fromResource(resourceForExecution), - getVersion(resourceForExecution)); + log.debug("Executing delete for resource: {} with version: {}", + ResourceID.fromResource(resourceForExecution), getVersion(resourceForExecution)); } DeleteControl deleteControl = controller.cleanup(resourceForExecution, context); final var useFinalizer = controller.useFinalizer(); @@ -254,10 +242,8 @@ private PostExecutionControl<P> handleCleanup(P resourceForExecution, // the operator might not be allowed to retrieve the resource on a retry, e.g. when its // permissions are removed by deleting the namespace concurrently if (r == null) { - log.warn( - "Could not remove finalizer on null resource: {} with version: {}", - getUID(resourceForExecution), - getVersion(resourceForExecution)); + log.warn("Could not remove finalizer on null resource: {} with version: {}", + getUID(resourceForExecution), getVersion(resourceForExecution)); return false; } return r.removeFinalizer(finalizerName); @@ -267,9 +253,7 @@ private PostExecutionControl<P> handleCleanup(P resourceForExecution, } log.debug( "Skipping finalizer remove for resource: {} with version: {}. delete control: {}, uses finalizer: {}", - getUID(resourceForExecution), - getVersion(resourceForExecution), - deleteControl, + getUID(resourceForExecution), getVersion(resourceForExecution), deleteControl, useFinalizer); PostExecutionControl<P> postExecutionControl = PostExecutionControl.defaultDispatch(); updatePostExecutionControlWithReschedule(postExecutionControl, deleteControl); @@ -278,9 +262,8 @@ private PostExecutionControl<P> handleCleanup(P resourceForExecution, @SuppressWarnings("unchecked") private P addFinalizerWithSSA(P originalResource) { - log.debug( - "Adding finalizer (using SSA) for resource: {} version: {}", - getUID(originalResource), getVersion(originalResource)); + log.debug("Adding finalizer (using SSA) for resource: {} version: {}", getUID(originalResource), + getVersion(originalResource)); try { P resource = (P) originalResource.getClass().getConstructor().newInstance(); ObjectMeta objectMeta = new ObjectMeta(); @@ -291,24 +274,21 @@ private P addFinalizerWithSSA(P originalResource) { return customResourceFacade.patchResourceWithSSA(resource); } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { - throw new RuntimeException("Issue with creating custom resource instance with reflection." + - " Custom Resources must provide a no-arg constructor. Class: " - + originalResource.getClass().getName(), - e); + throw new RuntimeException("Issue with creating custom resource instance with reflection." + + " Custom Resources must provide a no-arg constructor. Class: " + + originalResource.getClass().getName(), e); } } private P updateCustomResourceWithFinalizer(P resourceForExecution, P originalResource) { - log.debug( - "Adding finalizer for resource: {} version: {}", getUID(originalResource), + log.debug("Adding finalizer for resource: {} version: {}", getUID(originalResource), getVersion(originalResource)); return conflictRetryingPatch(resourceForExecution, originalResource, r -> r.addFinalizer(configuration().getFinalizerName()), false); } private P patchResource(P resource, P originalResource) { - log.debug("Updating resource: {} with version: {}", getUID(resource), - getVersion(resource)); + log.debug("Updating resource: {} with version: {}", getUID(resource), getVersion(resource)); log.trace("Resource before update: {}", resource); final var finalizerName = configuration().getFinalizerName(); @@ -348,10 +328,8 @@ public P conflictRetryingPatch(P resource, P originalResource, throw e; } if (retryIndex >= MAX_UPDATE_RETRY) { - throw new OperatorException( - "Exceeded maximum (" + MAX_UPDATE_RETRY - + ") retry attempts to patch resource: " - + ResourceID.fromResource(resource)); + throw new OperatorException("Exceeded maximum (" + MAX_UPDATE_RETRY + + ") retry attempts to patch resource: " + ResourceID.fromResource(resource)); } resource = customResourceFacade.getResource(resource.getMetadata().getNamespace(), resource.getMetadata().getName()); @@ -368,11 +346,10 @@ static class CustomResourceFacade<R extends HasMetadata> { private final Cloner cloner; public CustomResourceFacade( - MixedOperation<R, KubernetesResourceList<R>, Resource<R>> resourceOperation, - ControllerConfiguration<R> configuration, Cloner cloner) { + MixedOperation<R, KubernetesResourceList<R>, Resource<R>> resourceOperation, + ControllerConfiguration<R> configuration, Cloner cloner) { this.resourceOperation = resourceOperation; - this.useSSA = - configuration.getConfigurationService().useSSAToPatchPrimaryResource(); + this.useSSA = configuration.getConfigurationService().useSSAToPatchPrimaryResource(); this.fieldManager = configuration.fieldManager(); this.cloner = cloner; } @@ -391,9 +368,7 @@ public R patchResourceWithoutSSA(R resource, R originalResource) { public R patchResource(R resource, R originalResource) { if (log.isDebugEnabled()) { - log.debug( - "Trying to replace resource {}, version: {}", - ResourceID.fromResource(resource), + log.debug("Trying to replace resource {}, version: {}", ResourceID.fromResource(resource), resource.getMetadata().getResourceVersion()); } if (useSSA) { @@ -410,11 +385,9 @@ public R patchStatus(R resource, R originalResource) { try { resource.getMetadata().setManagedFields(null); var res = resource(resource); - return res.subresource("status").patch(new PatchContext.Builder() - .withFieldManager(fieldManager) - .withForce(true) - .withPatchType(PatchType.SERVER_SIDE_APPLY) - .build()); + return res.subresource("status") + .patch(new PatchContext.Builder().withFieldManager(fieldManager).withForce(true) + .withPatchType(PatchType.SERVER_SIDE_APPLY).build()); } finally { resource.getMetadata().setManagedFields(managedFields); } @@ -441,17 +414,14 @@ private R editStatus(R resource, R originalResource) { } public R patchResourceWithSSA(R resource) { - return resource(resource).patch(new PatchContext.Builder() - .withFieldManager(fieldManager) - .withForce(true) - .withPatchType(PatchType.SERVER_SIDE_APPLY) - .build()); + return resource(resource).patch(new PatchContext.Builder().withFieldManager(fieldManager) + .withForce(true).withPatchType(PatchType.SERVER_SIDE_APPLY).build()); } private Resource<R> resource(R resource) { - return resource instanceof Namespaced ? resourceOperation - .inNamespace(resource.getMetadata().getNamespace()) - .resource(resource) : resourceOperation.resource(resource); + return resource instanceof Namespaced + ? resourceOperation.inNamespace(resource.getMetadata().getNamespace()).resource(resource) + : resourceOperation.resource(resource); } } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceID.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceID.java index 071dd49f29..76495f1e01 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceID.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceID.java @@ -10,8 +10,7 @@ public class ResourceID implements Serializable { public static ResourceID fromResource(HasMetadata resource) { - return new ResourceID(resource.getMetadata().getName(), - resource.getMetadata().getNamespace()); + return new ResourceID(resource.getMetadata().getName(), resource.getMetadata().getNamespace()); } public static ResourceID fromOwnerReference(HasMetadata resource, OwnerReference ownerReference, @@ -47,14 +46,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; ResourceID that = (ResourceID) o; - return Objects.equals(name, that.name) && Objects.equals(namespace, - that.namespace); + return Objects.equals(name, that.name) && Objects.equals(namespace, that.namespace); } public boolean isSameResource(HasMetadata hasMetadata) { final var metadata = hasMetadata.getMetadata(); - return getName().equals(metadata.getName()) && - getNamespace().map(ns -> ns.equals(metadata.getNamespace())).orElse(true); + return getName().equals(metadata.getName()) + && getNamespace().map(ns -> ns.equals(metadata.getNamespace())).orElse(true); } @Override @@ -72,10 +70,7 @@ public static String toString(HasMetadata resource) { } private static String toString(String name, String namespace) { - return "ResourceID{" + - "name='" + name + '\'' + - ", namespace='" + namespace + '\'' + - '}'; + return "ResourceID{" + "name='" + name + '\'' + ", namespace='" + namespace + '\'' + '}'; } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceState.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceState.java index d52c1b19ec..a6163b11cc 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceState.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceState.java @@ -114,12 +114,7 @@ public void unMarkEventReceived() { @Override public String toString() { - return "ResourceState{" + - "id=" + id + - ", underProcessing=" + underProcessing + - ", retry=" + retry + - ", eventing=" + eventing + - ", rateLimit=" + rateLimit + - '}'; + return "ResourceState{" + "id=" + id + ", underProcessing=" + underProcessing + ", retry=" + + retry + ", eventing=" + eventing + ", rateLimit=" + rateLimit + '}'; } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceStateManager.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceStateManager.java index 4e03d1a34e..ba41117635 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceStateManager.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceStateManager.java @@ -25,8 +25,7 @@ public boolean contains(ResourceID resourceID) { } public List<ResourceState> resourcesWithEventPresent() { - return states.values().stream() - .filter(state -> !state.noEventPresent()) + return states.values().stream().filter(state -> !state.noEventPresent()) .collect(Collectors.toList()); } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/rate/LinearRateLimiter.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/rate/LinearRateLimiter.java index 2692b60bd0..4fae406a88 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/rate/LinearRateLimiter.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/rate/LinearRateLimiter.java @@ -60,8 +60,7 @@ public RateState initState() { @Override public void initFrom(RateLimited configuration) { - this.refreshPeriod = Duration.of(configuration.within(), - configuration.unit().toChronoUnit()); + this.refreshPeriod = Duration.of(configuration.within(), configuration.unit().toChronoUnit()); this.limitForPeriod = configuration.maxReconciliations(); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/AbstractEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/AbstractEventSource.java index a2306378d4..e71322771c 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/AbstractEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/AbstractEventSource.java @@ -80,13 +80,11 @@ public void setOnAddFilter(OnAddFilter<? super R> onAddFilter) { this.onAddFilter = onAddFilter; } - public void setOnUpdateFilter( - OnUpdateFilter<? super R> onUpdateFilter) { + public void setOnUpdateFilter(OnUpdateFilter<? super R> onUpdateFilter) { this.onUpdateFilter = onUpdateFilter; } - public void setOnDeleteFilter( - OnDeleteFilter<? super R> onDeleteFilter) { + public void setOnDeleteFilter(OnDeleteFilter<? super R> onDeleteFilter) { this.onDeleteFilter = onDeleteFilter; } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/ExternalResourceCachingEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/ExternalResourceCachingEventSource.java index 130e3db179..d0b7e31676 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/ExternalResourceCachingEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/ExternalResourceCachingEventSource.java @@ -82,8 +82,8 @@ protected synchronized void handleDelete(ResourceID primaryID, Set<String> resou } var cachedValues = cache.get(primaryID); List<R> removedResources = cachedValues == null ? Collections.emptyList() - : resourceIDs.stream() - .flatMap(id -> Stream.ofNullable(cachedValues.remove(id))).collect(Collectors.toList()); + : resourceIDs.stream().flatMap(id -> Stream.ofNullable(cachedValues.remove(id))) + .collect(Collectors.toList()); if (cachedValues != null && cachedValues.isEmpty()) { cache.remove(primaryID); @@ -133,9 +133,8 @@ private boolean acceptedByFiler(Map<String, R> cachedResourceMap, var addedResources = new HashMap<>(newResourcesMap); addedResources.keySet().removeAll(cachedResourceMap.keySet()); if (onAddFilter != null || genericFilter != null) { - var anyAddAccepted = - addedResources.values().stream().anyMatch(r -> acceptedByGenericFiler(r) && - onAddFilter.accept(r)); + var anyAddAccepted = addedResources.values().stream() + .anyMatch(r -> acceptedByGenericFiler(r) && onAddFilter.accept(r)); if (anyAddAccepted) { return true; } @@ -146,9 +145,8 @@ private boolean acceptedByFiler(Map<String, R> cachedResourceMap, var deletedResource = new HashMap<>(cachedResourceMap); deletedResource.keySet().removeAll(newResourcesMap.keySet()); if (onDeleteFilter != null || genericFilter != null) { - var anyDeleteAccepted = - deletedResource.values().stream() - .anyMatch(r -> acceptedByGenericFiler(r) && onDeleteFilter.accept(r, false)); + var anyDeleteAccepted = deletedResource.values().stream() + .anyMatch(r -> acceptedByGenericFiler(r) && onDeleteFilter.accept(r, false)); if (anyDeleteAccepted) { return true; } @@ -159,18 +157,15 @@ private boolean acceptedByFiler(Map<String, R> cachedResourceMap, Map<String, R> possibleUpdatedResources = new HashMap<>(cachedResourceMap); possibleUpdatedResources.keySet().retainAll(newResourcesMap.keySet()); possibleUpdatedResources = possibleUpdatedResources.entrySet().stream() - .filter(entry -> !newResourcesMap - .get(entry.getKey()).equals(entry.getValue())) + .filter(entry -> !newResourcesMap.get(entry.getKey()).equals(entry.getValue())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); if (onUpdateFilter != null || genericFilter != null) { - return possibleUpdatedResources.entrySet().stream() - .anyMatch( - entry -> { - var newResource = newResourcesMap.get(entry.getKey()); - return acceptedByGenericFiler(newResource) && - onUpdateFilter.accept(newResource, entry.getValue()); - }); + return possibleUpdatedResources.entrySet().stream().anyMatch(entry -> { + var newResource = newResourcesMap.get(entry.getKey()); + return acceptedByGenericFiler(newResource) + && onUpdateFilter.accept(newResource, entry.getValue()); + }); } else return !possibleUpdatedResources.isEmpty(); } @@ -193,8 +188,8 @@ public synchronized void handleRecentResourceCreate(ResourceID primaryID, R reso } @Override - public synchronized void handleRecentResourceUpdate( - ResourceID primaryID, R resource, R previousVersionOfResource) { + public synchronized void handleRecentResourceUpdate(ResourceID primaryID, R resource, + R previousVersionOfResource) { var actualValues = cache.get(primaryID); if (actualValues != null) { var resourceId = cacheKeyMapper.keyFor(resource); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/BoundedItemStore.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/BoundedItemStore.java index 4f0fcad280..a0b8994a85 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/BoundedItemStore.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/BoundedItemStore.java @@ -17,8 +17,7 @@ import io.fabric8.kubernetes.client.informers.cache.ItemStore; import io.javaoperatorsdk.operator.api.config.Utils; -public class BoundedItemStore<R extends HasMetadata> - implements ItemStore<R> { +public class BoundedItemStore<R extends HasMetadata> implements ItemStore<R> { private static final Logger log = LoggerFactory.getLogger(BoundedItemStore.class); @@ -34,10 +33,8 @@ public BoundedItemStore(BoundedCache<String, R> cache, Class<R> resourceClass, new KubernetesResourceFetcher<>(resourceClass, client)); } - public BoundedItemStore(BoundedCache<String, R> cache, - Class<R> resourceClass, - Function<R, String> keyFunction, - ResourceFetcher<String, R> resourceFetcher) { + public BoundedItemStore(BoundedCache<String, R> cache, Class<R> resourceClass, + Function<R, String> keyFunction, ResourceFetcher<String, R> resourceFetcher) { this.resourceFetcher = resourceFetcher; this.cache = cache; this.keyFunction = keyFunction; @@ -61,10 +58,8 @@ private R createMinimalResource(R obj) { try { R minimal = resourceConstructor.newInstance(); final var metadata = obj.getMetadata(); - minimal.setMetadata(new ObjectMetaBuilder() - .withName(metadata.getName()) - .withNamespace(metadata.getNamespace()) - .withResourceVersion(metadata.getResourceVersion()) + minimal.setMetadata(new ObjectMetaBuilder().withName(metadata.getName()) + .withNamespace(metadata.getNamespace()).withResourceVersion(metadata.getResourceVersion()) .build()); return minimal; } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/KubernetesResourceFetcher.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/KubernetesResourceFetcher.java index ad996afc36..597eff14dd 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/KubernetesResourceFetcher.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/KubernetesResourceFetcher.java @@ -17,8 +17,7 @@ public KubernetesResourceFetcher(Class<R> rClass, KubernetesClient client) { this(rClass, client, inverseNamespaceKeyFunction()); } - public KubernetesResourceFetcher(Class<R> rClass, - KubernetesClient client, + public KubernetesResourceFetcher(Class<R> rClass, KubernetesClient client, Function<String, ResourceID> resourceIDFunction) { this.rClass = rClass; this.client = client; @@ -28,8 +27,8 @@ public KubernetesResourceFetcher(Class<R> rClass, @Override public R fetchResource(String key) { var resourceId = resourceIDFunction.apply(key); - return resourceId.getNamespace().map(ns -> client.resources(rClass).inNamespace(ns) - .withName(resourceId.getName()).get()) + return resourceId.getNamespace() + .map(ns -> client.resources(rClass).inNamespace(ns).withName(resourceId.getName()).get()) .orElse(client.resources(rClass).withName(resourceId.getName()).get()); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerEventSource.java index 07e5bd3fa2..f59e74cb47 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerEventSource.java @@ -37,17 +37,16 @@ public ControllerEventSource(Controller<T> controller) { final var config = controller.getConfiguration(); OnUpdateFilter internalOnUpdateFilter = - onUpdateFinalizerNeededAndApplied(controller.useFinalizer(), - config.getFinalizerName()) + onUpdateFinalizerNeededAndApplied(controller.useFinalizer(), config.getFinalizerName()) .or(onUpdateGenerationAware(config.isGenerationAware())) .or(onUpdateMarkedForDeletion()); // by default the on add should be processed in all cases regarding internal filters final var informerConfig = config.getInformerConfig(); Optional.ofNullable(informerConfig.getOnAddFilter()).ifPresent(this::setOnAddFilter); - Optional.ofNullable(informerConfig.getOnUpdateFilter()) - .ifPresentOrElse(filter -> setOnUpdateFilter(filter.and(internalOnUpdateFilter)), - () -> setOnUpdateFilter(internalOnUpdateFilter)); + Optional.ofNullable(informerConfig.getOnUpdateFilter()).ifPresentOrElse( + filter -> setOnUpdateFilter(filter.and(internalOnUpdateFilter)), + () -> setOnUpdateFilter(internalOnUpdateFilter)); Optional.ofNullable(informerConfig.getGenericFilter()).ifPresent(this::setGenericFilter); setControllerConfiguration(config); } @@ -66,18 +65,17 @@ public void eventReceived(ResourceAction action, T resource, T oldResource) { try { if (log.isDebugEnabled()) { log.debug("Event received for resource: {} version: {} uuid: {} action: {}", - ResourceID.fromResource(resource), - getVersion(resource), resource.getMetadata().getUid(), action); + ResourceID.fromResource(resource), getVersion(resource), + resource.getMetadata().getUid(), action); log.trace("Event Old resource: {},\n new resource: {}", oldResource, resource); } MDCUtils.addResourceInfo(resource); controller.getEventSourceManager().broadcastOnResourceEvent(action, resource, oldResource); if (isAcceptedByFilters(action, resource, oldResource)) { - getEventHandler().handleEvent( - new ResourceEvent(action, ResourceID.fromResource(resource), resource)); + getEventHandler() + .handleEvent(new ResourceEvent(action, ResourceID.fromResource(resource), resource)); } else { - log.debug("Skipping event handling resource {}", - ResourceID.fromResource(resource)); + log.debug("Skipping event handling resource {}", ResourceID.fromResource(resource)); } } finally { MDCUtils.removeResourceInfo(); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/InternalEventFilters.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/InternalEventFilters.java index b7c4249411..3da01d0a93 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/InternalEventFilters.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/InternalEventFilters.java @@ -27,14 +27,12 @@ static <T extends HasMetadata> OnUpdateFilter<T> onUpdateGenerationAware( return true; } - return oldResource.getMetadata().getGeneration() < newResource - .getMetadata().getGeneration(); + return oldResource.getMetadata().getGeneration() < newResource.getMetadata().getGeneration(); }; } static <T extends HasMetadata> OnUpdateFilter<T> onUpdateFinalizerNeededAndApplied( - boolean useFinalizer, - String finalizerName) { + boolean useFinalizer, String finalizerName) { return (newResource, oldResource) -> { if (useFinalizer) { boolean oldFinalizer = oldResource.hasFinalizer(finalizerName); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEvent.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEvent.java index ba9ea72cd9..c2765d1f07 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEvent.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEvent.java @@ -12,8 +12,7 @@ public class ResourceEvent extends Event { private final ResourceAction action; private final HasMetadata resource; - public ResourceEvent(ResourceAction action, - ResourceID resourceID, HasMetadata resource) { + public ResourceEvent(ResourceAction action, ResourceID resourceID, HasMetadata resource) { super(resourceID); this.action = action; this.resource = resource; @@ -21,10 +20,8 @@ public ResourceEvent(ResourceAction action, @Override public String toString() { - return "ResourceEvent{" + - "action=" + action + - ", associated resource id=" + getRelatedCustomResourceID() + - '}'; + return "ResourceEvent{" + "action=" + action + ", associated resource id=" + + getRelatedCustomResourceID() + '}'; } public ResourceAction getAction() { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/inbound/CachingInboundEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/inbound/CachingInboundEventSource.java index 450e308904..a96a53caae 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/inbound/CachingInboundEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/inbound/CachingInboundEventSource.java @@ -12,14 +12,12 @@ import io.javaoperatorsdk.operator.processing.event.source.ResourceEventAware; public class CachingInboundEventSource<R, P extends HasMetadata> - extends ExternalResourceCachingEventSource<R, P> - implements ResourceEventAware<P> { + extends ExternalResourceCachingEventSource<R, P> implements ResourceEventAware<P> { private final ResourceFetcher<R, P> resourceFetcher; private final Set<ResourceID> fetchedForPrimaries = ConcurrentHashMap.newKeySet(); - public CachingInboundEventSource( - ResourceFetcher<R, P> resourceFetcher, Class<R> resourceClass, + public CachingInboundEventSource(ResourceFetcher<R, P> resourceFetcher, Class<R> resourceClass, CacheKeyMapper<R> cacheKeyMapper) { super(resourceClass, cacheKeyMapper); this.resourceFetcher = resourceFetcher; diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/DefaultPrimaryToSecondaryIndex.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/DefaultPrimaryToSecondaryIndex.java index a1a5a96d36..894596154b 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/DefaultPrimaryToSecondaryIndex.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/DefaultPrimaryToSecondaryIndex.java @@ -19,30 +19,27 @@ public DefaultPrimaryToSecondaryIndex(SecondaryToPrimaryMapper<R> secondaryToPri @Override public synchronized void onAddOrUpdate(R resource) { Set<ResourceID> primaryResources = secondaryToPrimaryMapper.toPrimaryResourceIDs(resource); - primaryResources.forEach( - primaryResource -> { - var resourceSet = - index.computeIfAbsent(primaryResource, pr -> ConcurrentHashMap.newKeySet()); - resourceSet.add(ResourceID.fromResource(resource)); - }); + primaryResources.forEach(primaryResource -> { + var resourceSet = index.computeIfAbsent(primaryResource, pr -> ConcurrentHashMap.newKeySet()); + resourceSet.add(ResourceID.fromResource(resource)); + }); } @Override public synchronized void onDelete(R resource) { Set<ResourceID> primaryResources = secondaryToPrimaryMapper.toPrimaryResourceIDs(resource); - primaryResources.forEach( - primaryResource -> { - var secondaryResources = index.get(primaryResource); - // this can be null in just very special cases, like when the secondaryToPrimaryMapper is - // changing dynamically. Like if a list of ResourceIDs mapped dynamically extended in the - // mapper between the onAddOrUpdate and onDelete is called. - if (secondaryResources != null) { - secondaryResources.remove(ResourceID.fromResource(resource)); - if (secondaryResources.isEmpty()) { - index.remove(primaryResource); - } - } - }); + primaryResources.forEach(primaryResource -> { + var secondaryResources = index.get(primaryResource); + // this can be null in just very special cases, like when the secondaryToPrimaryMapper is + // changing dynamically. Like if a list of ResourceIDs mapped dynamically extended in the + // mapper between the onAddOrUpdate and onDelete is called. + if (secondaryResources != null) { + secondaryResources.remove(ResourceID.fromResource(resource)); + if (secondaryResources.isEmpty()) { + index.remove(primaryResource); + } + } + }); } @Override diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSource.java index 48534a27b3..ebcc75e0c2 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSource.java @@ -76,10 +76,9 @@ public class InformerEventSource<R extends HasMetadata, P extends HasMetadata> private final PrimaryToSecondaryMapper<P> primaryToSecondaryMapper; private final String id = UUID.randomUUID().toString(); - public InformerEventSource( - InformerEventSourceConfiguration<R> configuration, EventSourceContext<P> context) { - this(configuration, - configuration.getKubernetesClient().orElse(context.getClient()), + public InformerEventSource(InformerEventSourceConfiguration<R> configuration, + EventSourceContext<P> context) { + this(configuration, configuration.getKubernetesClient().orElse(context.getClient()), context.getControllerConfiguration().getConfigurationService() .parseResourceVersionsForEventFilteringAndCaching()); } @@ -90,8 +89,7 @@ public InformerEventSource( @SuppressWarnings({"unchecked", "rawtypes"}) private InformerEventSource(InformerEventSourceConfiguration<R> configuration, - KubernetesClient client, - boolean parseResourceVersions) { + KubernetesClient client, boolean parseResourceVersions) { super(configuration.name(), configuration.getGroupVersionKind() .map(gvk -> client.genericKubernetesResources(gvk.apiVersion(), gvk.getKind())) @@ -118,8 +116,8 @@ private InformerEventSource(InformerEventSourceConfiguration<R> configuration, public void onAdd(R newResource) { if (log.isDebugEnabled()) { log.debug("On add event received for resource id: {} type: {} version: {}", - ResourceID.fromResource(newResource), - resourceType().getSimpleName(), newResource.getMetadata().getResourceVersion()); + ResourceID.fromResource(newResource), resourceType().getSimpleName(), + newResource.getMetadata().getResourceVersion()); } primaryToSecondaryIndex.onAddOrUpdate(newResource); onAddOrUpdate(Operation.ADD, newResource, null, @@ -131,8 +129,7 @@ public void onUpdate(R oldObject, R newObject) { if (log.isDebugEnabled()) { log.debug( "On update event received for resource id: {} type: {} version: {} old version: {} ", - ResourceID.fromResource(newObject), - resourceType().getSimpleName(), + ResourceID.fromResource(newObject), resourceType().getSimpleName(), newObject.getMetadata().getResourceVersion(), oldObject.getMetadata().getResourceVersion()); } @@ -145,8 +142,7 @@ public void onUpdate(R oldObject, R newObject) { public void onDelete(R resource, boolean b) { if (log.isDebugEnabled()) { log.debug("On delete event received for resource id: {} type: {}", - ResourceID.fromResource(resource), - resourceType().getSimpleName()); + ResourceID.fromResource(resource), resourceType().getSimpleName()); } primaryToSecondaryIndex.onDelete(resource); super.onDelete(resource, b); @@ -162,16 +158,14 @@ private synchronized void onAddOrUpdate(Operation operation, R newObject, R oldO if (canSkipEvent(newObject, oldObject, resourceID)) { log.debug( "Skipping event propagation for {}, since was a result of a reconcile action. Resource ID: {}", - operation, - ResourceID.fromResource(newObject)); + operation, ResourceID.fromResource(newObject)); superOnOp.run(); } else { superOnOp.run(); if (eventAcceptedByFilter(operation, newObject, oldObject)) { log.debug( "Propagating event for {}, resource with same version not result of a reconciliation. Resource ID: {}", - operation, - resourceID); + operation, resourceID); propagateEvent(newObject); } else { log.debug("Event filtered out for operation: {}, resourceID: {}", operation, resourceID); @@ -189,8 +183,8 @@ private boolean canSkipEvent(R newObject, R oldObject, ResourceID resourceID) { } boolean resVersionsEqual = newObject.getMetadata().getResourceVersion() .equals(res.get().getMetadata().getResourceVersion()); - log.debug("Resource found in temporal cache for id: {} resource versions equal: {}", - resourceID, resVersionsEqual); + log.debug("Resource found in temporal cache for id: {} resource versions equal: {}", resourceID, + resVersionsEqual); return resVersionsEqual; } @@ -217,19 +211,18 @@ private void propagateEvent(R object) { if (primaryResourceIdSet.isEmpty()) { return; } - primaryResourceIdSet.forEach( - resourceId -> { - Event event = new Event(resourceId); - /* - * In fabric8 client for certain cases informers can be created on in a way that they are - * automatically started, what would cause a NullPointerException here, since an event - * might be received between creation and registration. - */ - final EventHandler eventHandler = getEventHandler(); - if (eventHandler != null) { - eventHandler.handleEvent(event); - } - }); + primaryResourceIdSet.forEach(resourceId -> { + Event event = new Event(resourceId); + /* + * In fabric8 client for certain cases informers can be created on in a way that they are + * automatically started, what would cause a NullPointerException here, since an event might + * be received between creation and registration. + */ + final EventHandler eventHandler = getEventHandler(); + if (eventHandler != null) { + eventHandler.handleEvent(event); + } + }); } @Override @@ -289,8 +282,8 @@ private boolean eventAcceptedByFilter(Operation operation, R newObject, R oldObj } private boolean acceptedByDeleteFilters(R resource, boolean b) { - return (onDeleteFilter == null || onDeleteFilter.accept(resource, b)) && - (genericFilter == null || genericFilter.accept(resource)); + return (onDeleteFilter == null || onDeleteFilter.accept(resource, b)) + && (genericFilter == null || genericFilter.accept(resource)); } /** diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java index 57bbf2a8ce..44e7067930 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerManager.java @@ -41,8 +41,7 @@ class InformerManager<R extends HasMetadata, C extends Informable<R>> private final Map<String, Function<R, List<String>>> indexers = new HashMap<>(); private ControllerConfiguration<R> controllerConfiguration; - InformerManager(MixedOperation<R, KubernetesResourceList<R>, Resource<R>> client, - C configuration, + InformerManager(MixedOperation<R, KubernetesResourceList<R>, Resource<R>> client, C configuration, ResourceEventHandler<R> eventHandler) { this.client = client; this.configuration = configuration; @@ -58,14 +57,11 @@ public void start() throws OperatorException { initSources(); // make sure informers are all started before proceeding further controllerConfiguration.getConfigurationService().getExecutorServiceManager() - .boundedExecuteAndWaitForAllToComplete( - sources.values().stream(), - iw -> { - iw.start(); - return null; - }, - iw -> "InformerStarter-" + iw.getTargetNamespace() + "-" - + configuration.getResourceClass().getSimpleName()); + .boundedExecuteAndWaitForAllToComplete(sources.values().stream(), iw -> { + iw.start(); + return null; + }, iw -> "InformerStarter-" + iw.getTargetNamespace() + "-" + + configuration.getResourceClass().getSimpleName()); } private void initSources() { @@ -78,12 +74,10 @@ private void initSources() { var source = createEventSourceForNamespace(WATCH_ALL_NAMESPACES); log.debug("Registered {} -> {} for any namespace", this, source); } else { - targetNamespaces.forEach( - ns -> { - final var source = createEventSourceForNamespace(ns); - log.debug("Registered {} -> {} for namespace: {}", this, source, - ns); - }); + targetNamespaces.forEach(ns -> { + final var source = createEventSourceForNamespace(ns); + log.debug("Registered {} -> {} for namespace: {}", this, source, ns); + }); } } @@ -92,8 +86,8 @@ C configuration() { } public void changeNamespaces(Set<String> namespaces) { - var sourcesToRemove = sources.keySet().stream() - .filter(k -> !namespaces.contains(k)).collect(Collectors.toSet()); + var sourcesToRemove = + sources.keySet().stream().filter(k -> !namespaces.contains(k)).collect(Collectors.toSet()); log.debug("Stopped informer {} for namespaces: {}", this, sourcesToRemove); sourcesToRemove.forEach(k -> sources.remove(k).stop()); @@ -101,8 +95,7 @@ public void changeNamespaces(Set<String> namespaces) { if (!sources.containsKey(ns)) { final InformerWrapper<R> source = createEventSourceForNamespace(ns); source.start(); - log.debug("Registered new {} -> {} for namespace: {}", this, source, - ns); + log.debug("Registered new {} -> {} for namespace: {}", this, source, ns); } }); } @@ -112,12 +105,10 @@ private InformerWrapper<R> createEventSourceForNamespace(String namespace) { final InformerWrapper<R> source; final var labelSelector = configuration.getInformerConfig().getLabelSelector(); if (namespace.equals(WATCH_ALL_NAMESPACES)) { - final var filteredBySelectorClient = - client.inAnyNamespace().withLabelSelector(labelSelector); + final var filteredBySelectorClient = client.inAnyNamespace().withLabelSelector(labelSelector); source = createEventSource(filteredBySelectorClient, eventHandler, WATCH_ALL_NAMESPACES); } else { - source = createEventSource( - client.inNamespace(namespace).withLabelSelector(labelSelector), + source = createEventSource(client.inNamespace(namespace).withLabelSelector(labelSelector), eventHandler, namespace); } source.addIndexers(indexers); @@ -129,8 +120,8 @@ private InformerWrapper<R> createEventSource( ResourceEventHandler<R> eventHandler, String namespaceIdentifier) { final var informerConfig = configuration.getInformerConfig(); var informer = Optional.ofNullable(informerConfig.getInformerListLimit()) - .map(filteredBySelectorClient::withLimit) - .orElse(filteredBySelectorClient).runnableInformer(0); + .map(filteredBySelectorClient::withLimit).orElse(filteredBySelectorClient) + .runnableInformer(0); Optional.ofNullable(informerConfig.getItemStore()).ifPresent(informer::itemStore); var source = new InformerWrapper<>(informer, controllerConfiguration.getConfigurationService(), namespaceIdentifier); @@ -163,13 +154,10 @@ public Stream<R> list(Predicate<R> predicate) { @Override public Stream<R> list(String namespace, Predicate<R> predicate) { if (isWatchingAllNamespaces()) { - return getSource(WATCH_ALL_NAMESPACES) - .map(source -> source.list(namespace, predicate)) + return getSource(WATCH_ALL_NAMESPACES).map(source -> source.list(namespace, predicate)) .orElseGet(Stream::empty); } else { - return getSource(namespace) - .map(source -> source.list(predicate)) - .orElseGet(Stream::empty); + return getSource(namespace).map(source -> source.list(predicate)).orElseGet(Stream::empty); } } @@ -204,8 +192,8 @@ public void addIndexers(Map<String, Function<R, List<String>>> indexers) { @Override public List<R> byIndex(String indexName, String indexKey) { - return sources.values().stream().map(s -> s.byIndex(indexName, indexKey)) - .flatMap(List::stream).collect(Collectors.toList()); + return sources.values().stream().map(s -> s.byIndex(indexName, indexKey)).flatMap(List::stream) + .collect(Collectors.toList()); } @Override @@ -214,8 +202,7 @@ public String toString() { final var selector = informerConfig.getLabelSelector(); return "InformerManager [" + ReconcilerUtils.getResourceTypeNameWithVersion(configuration.getResourceClass()) - + "] watching: " - + informerConfig.getEffectiveNamespaces(controllerConfiguration) + + "] watching: " + informerConfig.getEffectiveNamespaces(controllerConfiguration) + (selector != null ? " selector: " + selector : ""); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java index 28cf33a041..27cc983678 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerWrapper.java @@ -60,8 +60,7 @@ public void start() throws OperatorException { }); } else { final var apiTypeClass = informer.getApiTypeClass(); - final var fullResourceName = - HasMetadata.getFullResourceName(apiTypeClass); + final var fullResourceName = HasMetadata.getFullResourceName(apiTypeClass); final var version = HasMetadata.getVersion(apiTypeClass); throw new IllegalStateException( "Cannot retrieve 'stopped' callback to listen to informer stopping for informer for " @@ -141,8 +140,8 @@ public Stream<T> list(Predicate<T> predicate) { @Override public Stream<T> list(String namespace, Predicate<T> predicate) { - final var stream = cache.list().stream() - .filter(r -> namespace.equals(r.getMetadata().getNamespace())); + final var stream = + cache.list().stream().filter(r -> namespace.equals(r.getMetadata().getNamespace())); return predicate != null ? stream.filter(predicate) : stream; } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java index f5e899826d..9420db20bd 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java @@ -28,9 +28,8 @@ @SuppressWarnings("rawtypes") public abstract class ManagedInformerEventSource<R extends HasMetadata, P extends HasMetadata, C extends Informable<R>> - extends AbstractEventSource<R, P> - implements ResourceEventHandler<R>, Cache<R>, IndexerResourceCache<R>, - RecentOperationCacheFiller<R>, NamespaceChangeable, + extends AbstractEventSource<R, P> implements ResourceEventHandler<R>, Cache<R>, + IndexerResourceCache<R>, RecentOperationCacheFiller<R>, NamespaceChangeable, InformerWrappingEventSourceHealthIndicator<R>, Configurable<C> { private static final Logger log = LoggerFactory.getLogger(ManagedInformerEventSource.class); @@ -42,8 +41,7 @@ public abstract class ManagedInformerEventSource<R extends HasMetadata, P extend protected TemporaryResourceCache<R> temporaryResourceCache; protected MixedOperation client; - protected ManagedInformerEventSource(String name, - MixedOperation client, C configuration, + protected ManagedInformerEventSource(String name, MixedOperation client, C configuration, boolean parseResourceVersions) { super(configuration.getResourceClass(), name); this.parseResourceVersions = parseResourceVersions; @@ -119,8 +117,8 @@ public Optional<R> get(ResourceID resourceID) { log.debug("Resource found in temporary cache for Resource ID: {}", resourceID); return resource; } else { - log.debug("Resource not found in temporary cache reading it from informer cache," + - " for Resource ID: {}", resourceID); + log.debug("Resource not found in temporary cache reading it from informer cache," + + " for Resource ID: {}", resourceID); var res = cache.get(resourceID); log.debug("Resource found in cache: {} for id: {}", res.isPresent(), resourceID); return res; @@ -181,9 +179,8 @@ public C configuration() { @Override public String toString() { - return getClass().getSimpleName() + "{" + - "resourceClass: " + configuration().getResourceClass().getSimpleName() + - "}"; + return getClass().getSimpleName() + "{" + "resourceClass: " + + configuration().getResourceClass().getSimpleName() + "}"; } public void setControllerConfiguration(ControllerConfiguration<R> controllerConfiguration) { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/Mappers.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/Mappers.java index db3877376c..5113c2e612 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/Mappers.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/Mappers.java @@ -19,22 +19,20 @@ public class Mappers { private Mappers() {} - public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromAnnotation( - String nameKey, String typeKey, Class<? extends HasMetadata> primaryResourceType) { + public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromAnnotation(String nameKey, + String typeKey, Class<? extends HasMetadata> primaryResourceType) { return fromAnnotation(nameKey, null, typeKey, primaryResourceType); } @SuppressWarnings("unused") - public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromAnnotation( - String nameKey, String namespaceKey, String typeKey, - Class<? extends HasMetadata> primaryResourceType) { + public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromAnnotation(String nameKey, + String namespaceKey, String typeKey, Class<? extends HasMetadata> primaryResourceType) { return fromMetadata(nameKey, namespaceKey, typeKey, primaryResourceType, false); } @SuppressWarnings("unused") public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromLabel(String nameKey, - String typeKey, - Class<? extends HasMetadata> primaryResourceType) { + String typeKey, Class<? extends HasMetadata> primaryResourceType) { return fromLabel(nameKey, null, typeKey, primaryResourceType); } @@ -45,9 +43,8 @@ public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromDefaultAnn } @SuppressWarnings("unused") - public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromLabel( - String nameKey, String namespaceKey, String typeKey, - Class<? extends HasMetadata> primaryResourceType) { + public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromLabel(String nameKey, + String namespaceKey, String typeKey, Class<? extends HasMetadata> primaryResourceType) { return fromMetadata(nameKey, namespaceKey, typeKey, primaryResourceType, true); } @@ -59,8 +56,7 @@ public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromOwnerRefer public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromOwnerReferences( Class<? extends HasMetadata> primaryResourceType, boolean clusterScoped) { return fromOwnerReferences(HasMetadata.getApiVersion(primaryResourceType), - HasMetadata.getKind(primaryResourceType), - clusterScoped); + HasMetadata.getKind(primaryResourceType), clusterScoped); } public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromOwnerReferences( @@ -69,26 +65,22 @@ public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromOwnerRefer } public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromOwnerReferences( - HasMetadata primaryResource, - boolean clusterScoped) { + HasMetadata primaryResource, boolean clusterScoped) { return fromOwnerReferences(primaryResource.getApiVersion(), primaryResource.getKind(), clusterScoped); } public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromOwnerReferences( - String apiVersion, String kind, - boolean clusterScope) { - return resource -> resource.getMetadata().getOwnerReferences() - .stream() - .filter(r -> r.getKind().equals(kind) - && r.getApiVersion().equals(apiVersion)) + String apiVersion, String kind, boolean clusterScope) { + return resource -> resource.getMetadata().getOwnerReferences().stream() + .filter(r -> r.getKind().equals(kind) && r.getApiVersion().equals(apiVersion)) .map(or -> ResourceID.fromOwnerReference(resource, or, clusterScope)) .collect(Collectors.toSet()); } - private static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromMetadata( - String nameKey, String namespaceKey, String typeKey, - Class<? extends HasMetadata> primaryResourceType, boolean isLabel) { + private static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromMetadata(String nameKey, + String namespaceKey, String typeKey, Class<? extends HasMetadata> primaryResourceType, + boolean isLabel) { return resource -> { final var metadata = resource.getMetadata(); if (metadata == null) { @@ -107,9 +99,8 @@ private static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromMetadata( String gvkSimple = map.get(typeKey); - if (gvkSimple != null && - !GroupVersionKind.fromString(gvkSimple) - .equals(GroupVersionKind.gvkFor(primaryResourceType))) { + if (gvkSimple != null && !GroupVersionKind.fromString(gvkSimple) + .equals(GroupVersionKind.gvkFor(primaryResourceType))) { return Set.of(); } @@ -119,16 +110,9 @@ private static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromMetadata( } public static ResourceID fromString(String cacheKey) { - if (cacheKey == null) { - return null; - } + if(cacheKey==null){return null;} - final String[] split = cacheKey.split("/"); - return switch (split.length) { - case 1 -> new ResourceID(split[0]); - case 2 -> new ResourceID(split[1], split[0]); - default -> throw new IllegalArgumentException("Cannot extract a ResourceID from " + cacheKey); - }; + final String[]split=cacheKey.split("/");return switch(split.length){case 1->new ResourceID(split[0]);case 2->new ResourceID(split[1],split[0]);default->throw new IllegalArgumentException("Cannot extract a ResourceID from "+cacheKey);}; } /** @@ -146,8 +130,7 @@ public static <OWNER extends HasMetadata, T extends HasMetadata> SecondaryToPrim if (owners == null || owners.isEmpty()) { return Set.of(); } - return owners.stream() - .filter(it -> kind.equals(it.getKind())) + return owners.stream().filter(it -> kind.equals(it.getKind())) .map(it -> new ResourceID(it.getName(), resource.getMetadata().getNamespace())) .collect(Collectors.toSet()); }; diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/NOOPPrimaryToSecondaryIndex.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/NOOPPrimaryToSecondaryIndex.java index 0830d8bb1b..abefbba638 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/NOOPPrimaryToSecondaryIndex.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/NOOPPrimaryToSecondaryIndex.java @@ -5,8 +5,7 @@ import io.fabric8.kubernetes.api.model.HasMetadata; import io.javaoperatorsdk.operator.processing.event.ResourceID; -class NOOPPrimaryToSecondaryIndex<R extends HasMetadata> - implements PrimaryToSecondaryIndex<R> { +class NOOPPrimaryToSecondaryIndex<R extends HasMetadata> implements PrimaryToSecondaryIndex<R> { @SuppressWarnings("rawtypes") private static final NOOPPrimaryToSecondaryIndex instance = new NOOPPrimaryToSecondaryIndex(); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java index 07c9e0a6cc..18a75a2a92 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java @@ -106,9 +106,8 @@ public synchronized void onAddOrUpdateEvent(T resource) { } synchronized void onEvent(T resource, boolean unknownState) { - cache.computeIfPresent(ResourceID.fromResource(resource), - (id, cached) -> (unknownState || !isLaterResourceVersion(id, cached, resource)) ? null - : cached); + cache.computeIfPresent(ResourceID.fromResource(resource), (id, + cached) -> (unknownState || !isLaterResourceVersion(id, cached, resource)) ? null : cached); } public synchronized void putAddedResource(T newResource) { @@ -132,9 +131,8 @@ public synchronized void putResource(T newResource, String previousResourceVersi boolean moveAhead = false; if (previousResourceVersion == null && cachedResource == null) { if (tombstones.contains(newResource.getMetadata().getUid())) { - log.debug( - "Won't resurrect uid {} for resource id: {}", - newResource.getMetadata().getUid(), resourceId); + log.debug("Won't resurrect uid {} for resource id: {}", newResource.getMetadata().getUid(), + resourceId); return; } // we can skip further checks as this is a simple add and there's no previous entry to @@ -142,12 +140,10 @@ public synchronized void putResource(T newResource, String previousResourceVersi moveAhead = true; } - if (moveAhead - || (cachedResource != null - && (cachedResource.getMetadata().getResourceVersion().equals(previousResourceVersion)) - || isLaterResourceVersion(resourceId, newResource, cachedResource))) { - log.debug( - "Temporarily moving ahead to target version {} for resource id: {}", + if (moveAhead || (cachedResource != null + && (cachedResource.getMetadata().getResourceVersion().equals(previousResourceVersion)) + || isLaterResourceVersion(resourceId, newResource, cachedResource))) { + log.debug("Temporarily moving ahead to target version {} for resource id: {}", newResource.getMetadata().getResourceVersion(), resourceId); cache.put(resourceId, newResource); } else if (cache.remove(resourceId) != null) { @@ -173,8 +169,7 @@ private boolean isLaterResourceVersion(ResourceID resourceId, T newResource, T c return true; } } catch (NumberFormatException e) { - log.debug( - "Could not compare resourceVersions {} and {} for {}", + log.debug("Could not compare resourceVersions {} and {} for {}", newResource.getMetadata().getResourceVersion(), cachedResource.getMetadata().getResourceVersion(), resourceId); } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/polling/PerResourcePollingEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/polling/PerResourcePollingEventSource.java index 983679a27a..a08372774c 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/polling/PerResourcePollingEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/polling/PerResourcePollingEventSource.java @@ -36,8 +36,7 @@ * @param <P> related custom resource */ public class PerResourcePollingEventSource<R, P extends HasMetadata> - extends ExternalResourceCachingEventSource<R, P> - implements ResourceEventAware<P> { + extends ExternalResourceCachingEventSource<R, P> implements ResourceEventAware<P> { private static final Logger log = LoggerFactory.getLogger(PerResourcePollingEventSource.class); @@ -52,8 +51,7 @@ public class PerResourcePollingEventSource<R, P extends HasMetadata> - public PerResourcePollingEventSource(Class<R> resourceClass, - EventSourceContext<P> context, + public PerResourcePollingEventSource(Class<R> resourceClass, EventSourceContext<P> context, PerResourcePollingConfiguration<R, P> config) { super(config.name(), resourceClass, config.cacheKeyMapper()); this.primaryResourceCache = context.getPrimaryCache(); @@ -108,8 +106,8 @@ public void onResourceDeleted(P resource) { // important because otherwise there will be a race condition related to the timerTasks. private void checkAndRegisterTask(P resource) { var primaryID = ResourceID.fromResource(resource); - if (scheduledFutures.get(primaryID) == null && (registerPredicate == null - || registerPredicate.test(resource))) { + if (scheduledFutures.get(primaryID) == null + && (registerPredicate == null || registerPredicate.test(resource))) { var cachedResources = cache.get(primaryID); var actualResources = cachedResources == null ? null : new HashSet<>(cachedResources.values()); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSource.java index 6549030c4b..058d4792a4 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSource.java @@ -64,25 +64,22 @@ public PollingEventSource(Class<R> resourceClass, PollingConfiguration<R> config public void start() throws OperatorException { super.start(); getStateAndFillCache(); - timer.schedule( - new TimerTask() { - @Override - public void run() { - try { - if (!isRunning()) { - log.debug("Event source not yet started. Will not run."); - return; - } - getStateAndFillCache(); - healthy.set(true); - } catch (RuntimeException e) { - healthy.set(false); - log.error("Error during polling.", e); - } + timer.schedule(new TimerTask() { + @Override + public void run() { + try { + if (!isRunning()) { + log.debug("Event source not yet started. Will not run."); + return; } - }, - period.toMillis(), - period.toMillis()); + getStateAndFillCache(); + healthy.set(true); + } catch (RuntimeException e) { + healthy.set(false); + log.error("Error during polling.", e); + } + } + }, period.toMillis(), period.toMillis()); } protected synchronized void getStateAndFillCache() { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSource.java index b909083a00..53c0d328a8 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSource.java @@ -15,8 +15,7 @@ import io.javaoperatorsdk.operator.processing.event.source.AbstractEventSource; import io.javaoperatorsdk.operator.processing.event.source.ResourceEventAware; -public class TimerEventSource<R extends HasMetadata> - extends AbstractEventSource<Void, HasMetadata> +public class TimerEventSource<R extends HasMetadata> extends AbstractEventSource<Void, HasMetadata> implements ResourceEventAware<R> { private static final Logger log = LoggerFactory.getLogger(TimerEventSource.class); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GenericRetry.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GenericRetry.java index d1809de566..6e3ca21100 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GenericRetry.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GenericRetry.java @@ -82,8 +82,8 @@ public void initFrom(GradualRetry configuration) { this.initialInterval = configuration.initialInterval(); this.maxAttempts = configuration.maxAttempts(); this.intervalMultiplier = configuration.intervalMultiplier(); - this.maxInterval = configuration.maxInterval() == GradualRetry.UNSET_VALUE - ? GradualRetry.DEFAULT_MAX_INTERVAL - : configuration.maxInterval(); + this.maxInterval = + configuration.maxInterval() == GradualRetry.UNSET_VALUE ? GradualRetry.DEFAULT_MAX_INTERVAL + : configuration.maxInterval(); } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GenericRetryExecution.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GenericRetryExecution.java index 32bf154f97..a2c7a9a609 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GenericRetryExecution.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GenericRetryExecution.java @@ -15,8 +15,7 @@ public GenericRetryExecution(GenericRetry genericRetry) { } public Optional<Long> nextDelay() { - if (genericRetry.getMaxAttempts() > -1 - && lastAttemptIndex >= genericRetry.getMaxAttempts()) { + if (genericRetry.getMaxAttempts() > -1 && lastAttemptIndex >= genericRetry.getMaxAttempts()) { return Optional.empty(); } if (lastAttemptIndex > 1) { @@ -31,8 +30,7 @@ public Optional<Long> nextDelay() { @Override public boolean isLastAttempt() { - return genericRetry.getMaxAttempts() > -1 - && lastAttemptIndex >= genericRetry.getMaxAttempts(); + return genericRetry.getMaxAttempts() > -1 && lastAttemptIndex >= genericRetry.getMaxAttempts(); } @Override diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GradualRetry.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GradualRetry.java index f5033fc7aa..3ba8070141 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GradualRetry.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/retry/GradualRetry.java @@ -15,8 +15,8 @@ long DEFAULT_INITIAL_INTERVAL = 2000L; double DEFAULT_MULTIPLIER = 1.5D; - long DEFAULT_MAX_INTERVAL = (long) (GradualRetry.DEFAULT_INITIAL_INTERVAL * Math.pow( - GradualRetry.DEFAULT_MULTIPLIER, GradualRetry.DEFAULT_MAX_ATTEMPTS)); + long DEFAULT_MAX_INTERVAL = (long) (GradualRetry.DEFAULT_INITIAL_INTERVAL + * Math.pow(GradualRetry.DEFAULT_MULTIPLIER, GradualRetry.DEFAULT_MAX_ATTEMPTS)); long UNSET_VALUE = Long.MAX_VALUE; diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/ControllerManagerTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/ControllerManagerTest.java index c8c4cb5008..c0d82793ab 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/ControllerManagerTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/ControllerManagerTest.java @@ -20,8 +20,7 @@ class ControllerManagerTest { @Test void addingReconcilerWithSameNameShouldNotWork() { final var controllerConfiguration = - new TestControllerConfiguration<>(new TestCustomReconciler(null), - TestCustomResource.class); + new TestControllerConfiguration<>(new TestCustomReconciler(null), TestCustomResource.class); var controller = new Controller<>(controllerConfiguration.reconciler, controllerConfiguration, MockKubernetesClient.client(controllerConfiguration.getResourceClass())); ConfigurationService configurationService = new BaseConfigurationService(); @@ -46,8 +45,7 @@ public TestControllerConfiguration(Reconciler<R> reconciler, Class<R> crClass) { this.reconciler = reconciler; } - static <R extends HasMetadata> String getControllerName( - Reconciler<R> controller) { + static <R extends HasMetadata> String getControllerName(Reconciler<R> controller) { return controller.getClass().getSimpleName() + "Controller"; } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/CustomResourceUtilsTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/CustomResourceUtilsTest.java index 3b05d81477..7d32362a8f 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/CustomResourceUtilsTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/CustomResourceUtilsTest.java @@ -18,8 +18,7 @@ public void assertClusterCustomResourceIsCluster() { public void assertClusterCustomResourceNotNamespaced() { var crd = TestUtils.testCRD("Cluster"); - Assertions.assertThrows( - OperatorException.class, + Assertions.assertThrows(OperatorException.class, () -> CustomResourceUtils.assertCustomResource(NamespacedTestCustomResource.class, crd)); } @@ -34,8 +33,7 @@ public void assertNamespacedCustomResourceIsNamespaced() { public void assertNamespacedCustomResourceNotCluster() { var crd = TestUtils.testCRD("Namespaced"); - Assertions.assertThrows( - OperatorException.class, + Assertions.assertThrows(OperatorException.class, () -> CustomResourceUtils.assertCustomResource(TestCustomResource.class, crd)); } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/LeaderElectionManagerTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/LeaderElectionManagerTest.java index ee56d6a99d..4db17c7f61 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/LeaderElectionManagerTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/LeaderElectionManagerTest.java @@ -32,10 +32,9 @@ private LeaderElectionManager leaderElectionManager(Object selfSubjectReview) { ControllerManager controllerManager = mock(ControllerManager.class); final var kubernetesClient = MockKubernetesClient.client(Lease.class, selfSubjectReview); when(kubernetesClient.getConfiguration()).thenReturn(Config.autoConfigure(null)); - var configurationService = - ConfigurationService.newOverriddenConfigurationService( - o -> o.withLeaderElectionConfiguration(new LeaderElectionConfiguration("test")) - .withKubernetesClient(kubernetesClient)); + var configurationService = ConfigurationService.newOverriddenConfigurationService( + o -> o.withLeaderElectionConfiguration(new LeaderElectionConfiguration("test")) + .withKubernetesClient(kubernetesClient)); return new LeaderElectionManager(controllerManager, configurationService); } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/MockKubernetesClient.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/MockKubernetesClient.java index 31fec8b924..ed20ebf88c 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/MockKubernetesClient.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/MockKubernetesClient.java @@ -55,15 +55,14 @@ public static <T extends HasMetadata> KubernetesClient client(Class<T> clazz, @SuppressWarnings({"unchecked", "rawtypes"}) public static <T extends HasMetadata> KubernetesClient client(Class<T> clazz, - Consumer<Void> informerRunBehavior, - Object selfSubjectReview) { + Consumer<Void> informerRunBehavior, Object selfSubjectReview) { final var client = mock(KubernetesClient.class); MixedOperation<T, KubernetesResourceList<T>, Resource<T>> resources = mock(MixedOperation.class); NonNamespaceOperation<T, KubernetesResourceList<T>, Resource<T>> nonNamespaceOperation = mock(NonNamespaceOperation.class); - AnyNamespaceOperation<T, KubernetesResourceList<T>, Resource<T>> inAnyNamespace = mock( - AnyNamespaceOperation.class); + AnyNamespaceOperation<T, KubernetesResourceList<T>, Resource<T>> inAnyNamespace = + mock(AnyNamespaceOperation.class); FilterWatchListDeletable<T, KubernetesResourceList<T>, Resource<T>> filterable = mock(FilterWatchListDeletable.class); when(resources.inNamespace(anyString())).thenReturn(nonNamespaceOperation); @@ -104,9 +103,8 @@ public static <T extends HasMetadata> KubernetesClient client(Class<T> clazz, var selfSubjectResourceResourceMock = mock(NamespaceableResource.class); when(client.resource(any(SelfSubjectRulesReview.class))) .thenReturn(selfSubjectResourceResourceMock); - when(selfSubjectResourceResourceMock.create()) - .thenReturn(Optional.ofNullable(selfSubjectReview) - .orElseGet(MockKubernetesClient::allowSelfSubjectReview)); + when(selfSubjectResourceResourceMock.create()).thenReturn(Optional.ofNullable(selfSubjectReview) + .orElseGet(MockKubernetesClient::allowSelfSubjectReview)); final var apiGroupDSL = mock(ApiextensionsAPIGroupDSL.class); when(client.apiextensions()).thenReturn(apiGroupDSL); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/ReconcilerUtilsTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/ReconcilerUtilsTest.java index 827bf7916a..aa598dcbd4 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/ReconcilerUtilsTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/ReconcilerUtilsTest.java @@ -36,14 +36,11 @@ class ReconcilerUtilsTest { @Test void defaultReconcilerNameShouldWork() { - assertEquals( - "testcustomreconciler", + assertEquals("testcustomreconciler", getDefaultReconcilerName(TestCustomReconciler.class.getCanonicalName())); - assertEquals( - getDefaultNameFor(TestCustomReconciler.class), + assertEquals(getDefaultNameFor(TestCustomReconciler.class), getDefaultReconcilerName(TestCustomReconciler.class.getCanonicalName())); - assertEquals( - getDefaultNameFor(TestCustomReconciler.class), + assertEquals(getDefaultNameFor(TestCustomReconciler.class), getDefaultReconcilerName(TestCustomReconciler.class.getSimpleName())); } @@ -140,25 +137,21 @@ private Deployment createTestDeployment() { @Test void handleKubernetesExceptionShouldThrowMissingCRDExceptionWhenAppropriate() { var request = mock(HttpRequest.class); - when(request.uri()).thenReturn(URI - .create(RESOURCE_URI)); - assertThrows(MissingCRDException.class, () -> handleKubernetesClientException( - new KubernetesClientException( - "Failure executing: GET at: " + RESOURCE_URI + ". Message: Not Found.", - null, 404, null, request), - HasMetadata.getFullResourceName(Tomcat.class))); + when(request.uri()).thenReturn(URI.create(RESOURCE_URI)); + assertThrows(MissingCRDException.class, + () -> handleKubernetesClientException(new KubernetesClientException( + "Failure executing: GET at: " + RESOURCE_URI + ". Message: Not Found.", null, 404, null, + request), HasMetadata.getFullResourceName(Tomcat.class))); } @Test void checksIfOwnerReferenceCanBeAdded() { - assertThrows(OperatorException.class, - () -> ReconcilerUtils.checkIfCanAddOwnerReference(namespacedResource(), - namespacedResourceFromOtherNamespace())); + assertThrows(OperatorException.class, () -> ReconcilerUtils + .checkIfCanAddOwnerReference(namespacedResource(), namespacedResourceFromOtherNamespace())); - assertThrows(OperatorException.class, - () -> ReconcilerUtils.checkIfCanAddOwnerReference(namespacedResource(), - clusterScopedResource())); + assertThrows(OperatorException.class, () -> ReconcilerUtils + .checkIfCanAddOwnerReference(namespacedResource(), clusterScopedResource())); assertDoesNotThrow(() -> { ReconcilerUtils.checkIfCanAddOwnerReference(clusterScopedResource(), clusterScopedResource()); @@ -167,26 +160,17 @@ void checksIfOwnerReferenceCanBeAdded() { } private ClusterRole clusterScopedResource() { - return new ClusterRoleBuilder() - .withMetadata(new ObjectMetaBuilder() - .build()) - .build(); + return new ClusterRoleBuilder().withMetadata(new ObjectMetaBuilder().build()).build(); } private ConfigMap namespacedResource() { return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withNamespace("testns1") - .build()) - .build(); + .withMetadata(new ObjectMetaBuilder().withNamespace("testns1").build()).build(); } private ConfigMap namespacedResourceFromOtherNamespace() { return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withNamespace("testns2") - .build()) - .build(); + .withMetadata(new ObjectMetaBuilder().withNamespace("testns2").build()).build(); } @Group("tomcatoperator.io") diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/TestUtils.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/TestUtils.java index 3b2c5354f5..e2c802a3db 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/TestUtils.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/TestUtils.java @@ -18,14 +18,8 @@ public static TestCustomResource testCustomResource() { } public static CustomResourceDefinition testCRD(String scope) { - return new CustomResourceDefinitionBuilder() - .editOrNewSpec() - .withScope(scope) - .and() - .editOrNewMetadata() - .withName("test.operator.javaoperatorsdk.io") - .and() - .build(); + return new CustomResourceDefinitionBuilder().editOrNewSpec().withScope(scope).and() + .editOrNewMetadata().withName("test.operator.javaoperatorsdk.io").and().build(); } public static TestCustomResource testCustomResource1() { @@ -34,13 +28,8 @@ public static TestCustomResource testCustomResource1() { public static TestCustomResource testCustomResource(ResourceID id) { TestCustomResource resource = new TestCustomResource(); - resource.setMetadata( - new ObjectMetaBuilder() - .withName(id.getName()) - .withResourceVersion("1") - .withGeneration(1L) - .withNamespace(id.getNamespace().orElse(null)) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(id.getName()).withResourceVersion("1") + .withGeneration(1L).withNamespace(id.getNamespace().orElse(null)).build()); resource.getMetadata().setAnnotations(new HashMap<>()); resource.setSpec(new TestCustomResourceSpec()); resource.getSpec().setConfigMapName("test-config-map"); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverriderTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverriderTest.java index 0e2b8e9cc2..f891284367 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverriderTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverriderTest.java @@ -48,24 +48,20 @@ public Optional<LeaderElectionConfiguration> getLeaderElectionConfiguration() { return Optional.of(LEADER_ELECTION_CONFIGURATION); } }; - final var overridden = new ConfigurationServiceOverrider(config) - .checkingCRDAndValidateLocalModel(true) - .withExecutorService(Executors.newSingleThreadExecutor()) - .withWorkflowExecutorService(Executors.newFixedThreadPool(4)) - .withCloseClientOnStop(false) - .withResourceCloner(new Cloner() { - @Override - public <R extends HasMetadata> R clone(R object) { - return null; - } - }) - .withConcurrentReconciliationThreads(25) - .withMetrics(new Metrics() {}) - .withLeaderElectionConfiguration(new LeaderElectionConfiguration("newLease", "newLeaseNS")) - .withInformerStoppedHandler((informer, ex) -> { - }) - .withReconciliationTerminationTimeout(Duration.ofSeconds(30)) - .build(); + final var overridden = + new ConfigurationServiceOverrider(config).checkingCRDAndValidateLocalModel(true) + .withExecutorService(Executors.newSingleThreadExecutor()) + .withWorkflowExecutorService(Executors.newFixedThreadPool(4)) + .withCloseClientOnStop(false).withResourceCloner(new Cloner() { + @Override + public <R extends HasMetadata> R clone(R object) { + return null; + } + }).withConcurrentReconciliationThreads(25).withMetrics(new Metrics() {}) + .withLeaderElectionConfiguration( + new LeaderElectionConfiguration("newLease", "newLeaseNS")) + .withInformerStoppedHandler((informer, ex) -> { + }).withReconciliationTerminationTimeout(Duration.ofSeconds(30)).build(); assertNotEquals(config.closeClientOnStop(), overridden.closeClientOnStop()); assertNotEquals(config.checkCRDAndValidateLocalModel(), diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java index 21382adbd5..5afd4ef76a 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java @@ -63,17 +63,15 @@ void overridingNSShouldPreserveUntouchedDependents() { final var externalDRName = DependentResource.defaultNameFor(NamedDependentReconciler.ExternalDependentResource.class); final var stringConfig = "some String configuration"; - configuration = ControllerConfigurationOverrider.override(configuration) - .settingNamespace(namespace) - .replacingNamedDependentResourceConfig(externalDRName, stringConfig) - .build(); + configuration = + ControllerConfigurationOverrider.override(configuration).settingNamespace(namespace) + .replacingNamedDependentResourceConfig(externalDRName, stringConfig).build(); assertEquals(Set.of(namespace), configuration.getInformerConfig().getNamespaces()); // check that we still have the proper number of dependent configs dependentResources = configuration.getWorkflowSpec().orElseThrow().getDependentResourceSpecs(); assertEquals(2, dependentResources.size()); - final var resourceConfig = extractDependentKubernetesResourceConfig( - configuration, 1); + final var resourceConfig = extractDependentKubernetesResourceConfig(configuration, 1); assertEquals(stringConfig, resourceConfig); } @@ -98,46 +96,40 @@ void overridingNamespacesShouldWork() { assertFalse(informerConfig.watchCurrentNamespace()); configuration = ControllerConfigurationOverrider.override(configuration) - .addingNamespaces("foo", "bar") - .build(); + .addingNamespaces("foo", "bar").build(); informerConfig = configuration.getInformerConfig(); assertEquals(Set.of("foo", "bar"), informerConfig.getNamespaces()); assertFalse(informerConfig.watchAllNamespaces()); assertFalse(informerConfig.watchCurrentNamespace()); - configuration = ControllerConfigurationOverrider.override(configuration) - .removingNamespaces("bar") - .build(); + configuration = + ControllerConfigurationOverrider.override(configuration).removingNamespaces("bar").build(); informerConfig = configuration.getInformerConfig(); assertEquals(Set.of("foo"), informerConfig.getNamespaces()); assertFalse(informerConfig.watchAllNamespaces()); assertFalse(informerConfig.watchCurrentNamespace()); - configuration = ControllerConfigurationOverrider.override(configuration) - .removingNamespaces("foo") - .build(); + configuration = + ControllerConfigurationOverrider.override(configuration).removingNamespaces("foo").build(); informerConfig = configuration.getInformerConfig(); assertTrue(informerConfig.watchAllNamespaces()); assertFalse(informerConfig.watchCurrentNamespace()); - configuration = ControllerConfigurationOverrider.override(configuration) - .settingNamespace("foo") - .build(); + configuration = + ControllerConfigurationOverrider.override(configuration).settingNamespace("foo").build(); informerConfig = configuration.getInformerConfig(); assertFalse(informerConfig.watchAllNamespaces()); assertFalse(informerConfig.watchCurrentNamespace()); assertEquals(Set.of("foo"), informerConfig.getNamespaces()); configuration = ControllerConfigurationOverrider.override(configuration) - .watchingOnlyCurrentNamespace() - .build(); + .watchingOnlyCurrentNamespace().build(); informerConfig = configuration.getInformerConfig(); assertFalse(informerConfig.watchAllNamespaces()); assertTrue(informerConfig.watchCurrentNamespace()); - configuration = ControllerConfigurationOverrider.override(configuration) - .watchingAllNamespaces() - .build(); + configuration = + ControllerConfigurationOverrider.override(configuration).watchingAllNamespaces().build(); informerConfig = configuration.getInformerConfig(); assertTrue(informerConfig.watchAllNamespaces()); assertFalse(informerConfig.watchCurrentNamespace()); @@ -147,8 +139,7 @@ void overridingNamespacesShouldWork() { void itemStorePreserved() { var configuration = createConfiguration(new WatchCurrentReconciler()); - configuration = ControllerConfigurationOverrider.override(configuration) - .build(); + configuration = ControllerConfigurationOverrider.override(configuration).build(); assertNotNull(configuration.getInformerConfig().getItemStore()); } @@ -201,9 +192,7 @@ void shouldBePossibleToForceDependentToWatchAllNamespaces() { var config = extractFirstDependentKubernetesResourceConfig(configuration); // check that the DependentResource inherits the controller's configuration if applicable - assertTrue( - InformerConfiguration - .allNamespacesWatched(config.informerConfig().getNamespaces())); + assertTrue(InformerConfiguration.allNamespacesWatched(config.informerConfig().getNamespaces())); // override the NS final var newNS = "bar"; @@ -212,9 +201,7 @@ void shouldBePossibleToForceDependentToWatchAllNamespaces() { // check that dependent config is still configured to watch all NS config = extractFirstDependentKubernetesResourceConfig(configuration); - assertTrue( - InformerConfiguration - .allNamespacesWatched(config.informerConfig().getNamespaces())); + assertTrue(InformerConfiguration.allNamespacesWatched(config.informerConfig().getNamespaces())); } @Test @@ -234,8 +221,7 @@ void alreadyOverriddenDependentNamespacesShouldNotBePropagated() { var config = extractFirstDependentKubernetesResourceConfig(configuration); // DependentResource has its own NS - assertEquals(Set.of(OverriddenNSDependent.DEP_NS), - config.informerConfig().getNamespaces()); + assertEquals(Set.of(OverriddenNSDependent.DEP_NS), config.informerConfig().getNamespaces()); // override the NS final var newNS = "bar"; @@ -244,8 +230,7 @@ void alreadyOverriddenDependentNamespacesShouldNotBePropagated() { // check that dependent config is still using its own NS config = extractFirstDependentKubernetesResourceConfig(configuration); - assertEquals(Set.of(OverriddenNSDependent.DEP_NS), - config.informerConfig().getNamespaces()); + assertEquals(Set.of(OverriddenNSDependent.DEP_NS), config.informerConfig().getNamespaces()); } @Test @@ -259,8 +244,7 @@ void replaceNamedDependentResourceConfigShouldWork() { final var dependentResourceName = DependentResource.defaultNameFor(ReadOnlyDependent.class); assertTrue(dependents.stream().anyMatch(dr -> dr.getName().equals(dependentResourceName))); - var dependentSpec = dependents.stream() - .filter(dr -> dr.getName().equals(dependentResourceName)) + var dependentSpec = dependents.stream().filter(dr -> dr.getName().equals(dependentResourceName)) .findFirst().orElseThrow(); assertEquals(ReadOnlyDependent.class, dependentSpec.getDependentResourceClass()); var maybeConfig = extractFirstDependentKubernetesResourceConfig(configuration); @@ -277,21 +261,16 @@ void replaceNamedDependentResourceConfigShouldWork() { final var overriddenNS = "newNS"; final var labelSelector = "foo=bar"; final var overridingInformerConfig = InformerConfiguration.builder(ConfigMap.class) - .withNamespaces(Set.of(overriddenNS)) - .withLabelSelector(labelSelector) - .build(); - final var overridden = ControllerConfigurationOverrider.override(configuration) - .replacingNamedDependentResourceConfig( - dependentResourceName, - new KubernetesDependentResourceConfigBuilder<ConfigMap>() - .withKubernetesDependentInformerConfig(overridingInformerConfig) - .build()) - .build(); + .withNamespaces(Set.of(overriddenNS)).withLabelSelector(labelSelector).build(); + final var overridden = + ControllerConfigurationOverrider.override(configuration) + .replacingNamedDependentResourceConfig(dependentResourceName, + new KubernetesDependentResourceConfigBuilder<ConfigMap>() + .withKubernetesDependentInformerConfig(overridingInformerConfig).build()) + .build(); dependents = overridden.getWorkflowSpec().orElseThrow().getDependentResourceSpecs(); - dependentSpec = dependents.stream() - .filter(dr -> dr.getName().equals(dependentResourceName)) - .findFirst() - .orElseThrow(); + dependentSpec = dependents.stream().filter(dr -> dr.getName().equals(dependentResourceName)) + .findFirst().orElseThrow(); config = (KubernetesDependentResourceConfig) overridden.getConfigurationFor(dependentSpec); informerConfig = config.informerConfig(); assertEquals(labelSelector, informerConfig.getLabelSelector()); @@ -308,8 +287,7 @@ public MyItemStore() { } - @ControllerConfiguration( - informer = @Informer(namespaces = "foo", itemStore = MyItemStore.class)) + @ControllerConfiguration(informer = @Informer(namespaces = "foo", itemStore = MyItemStore.class)) private static class WatchCurrentReconciler implements Reconciler<ConfigMap> { @Override @@ -342,16 +320,14 @@ private static class TestCondition implements Condition<ConfigMap, ConfigMap> { @Override public boolean isMet(DependentResource<ConfigMap, ConfigMap> dependentResource, - ConfigMap primary, - Context<ConfigMap> context) { + ConfigMap primary, Context<ConfigMap> context) { return true; } } @Workflow(dependents = @Dependent(type = ReadOnlyDependent.class, readyPostcondition = TestCondition.class)) - @ControllerConfiguration( - informer = @Informer(namespaces = OneDepReconciler.CONFIGURED_NS)) + @ControllerConfiguration(informer = @Informer(namespaces = OneDepReconciler.CONFIGURED_NS)) private static class OneDepReconciler implements Reconciler<ConfigMap> { private static final String CONFIGURED_NS = "foo"; @@ -370,10 +346,8 @@ public ReadOnlyDependent() { } } - @KubernetesDependent( - informer = @Informer(namespaces = Constants.WATCH_ALL_NAMESPACES)) - public static class WatchAllNSDependent - extends KubernetesDependentResource<ConfigMap, ConfigMap> + @KubernetesDependent(informer = @Informer(namespaces = Constants.WATCH_ALL_NAMESPACES)) + public static class WatchAllNSDependent extends KubernetesDependentResource<ConfigMap, ConfigMap> implements GarbageCollected<ConfigMap> { public WatchAllNSDependent() { @@ -395,9 +369,8 @@ public UpdateControl<ConfigMap> reconcile(ConfigMap resource, Context<ConfigMap> } @KubernetesDependent(informer = @Informer(namespaces = OverriddenNSDependent.DEP_NS)) - public static class OverriddenNSDependent - extends KubernetesDependentResource<ConfigMap, ConfigMap> - implements GarbageCollected<ConfigMap> { + public static class OverriddenNSDependent extends + KubernetesDependentResource<ConfigMap, ConfigMap> implements GarbageCollected<ConfigMap> { private static final String DEP_NS = "dependentNS"; @@ -406,10 +379,8 @@ public OverriddenNSDependent() { } } - @Workflow(dependents = { - @Dependent(type = NamedDependentReconciler.NamedDependentResource.class), - @Dependent(type = NamedDependentReconciler.ExternalDependentResource.class) - }) + @Workflow(dependents = {@Dependent(type = NamedDependentReconciler.NamedDependentResource.class), + @Dependent(type = NamedDependentReconciler.ExternalDependentResource.class)}) @ControllerConfiguration public static class NamedDependentReconciler implements Reconciler<ConfigMap> { @@ -418,9 +389,8 @@ public UpdateControl<ConfigMap> reconcile(ConfigMap resource, Context<ConfigMap> return null; } - private static class NamedDependentResource - extends KubernetesDependentResource<ConfigMap, ConfigMap> - implements GarbageCollected<ConfigMap> { + private static class NamedDependentResource extends + KubernetesDependentResource<ConfigMap, ConfigMap> implements GarbageCollected<ConfigMap> { public NamedDependentResource() { super(ConfigMap.class); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/InformerConfigurationTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/InformerConfigurationTest.java index 2857ab9335..bf03a88a4f 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/InformerConfigurationTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/InformerConfigurationTest.java @@ -19,8 +19,8 @@ void allNamespacesWatched() { () -> InformerConfiguration.allNamespacesWatched(null)); assertThrows(IllegalArgumentException.class, () -> InformerConfiguration.allNamespacesWatched( Set.of(Constants.WATCH_CURRENT_NAMESPACE, Constants.WATCH_ALL_NAMESPACES, "foo"))); - assertThrows(IllegalArgumentException.class, () -> InformerConfiguration.allNamespacesWatched( - Collections.emptySet())); + assertThrows(IllegalArgumentException.class, + () -> InformerConfiguration.allNamespacesWatched(Collections.emptySet())); assertFalse(InformerConfiguration.allNamespacesWatched(Set.of("foo", "bar"))); assertTrue(InformerConfiguration.allNamespacesWatched(Set.of(Constants.WATCH_ALL_NAMESPACES))); assertFalse(InformerConfiguration.allNamespacesWatched(Set.of("foo"))); @@ -70,10 +70,10 @@ void failIfNotValid() { () -> InformerConfiguration.failIfNotValid(Collections.emptySet())); assertThrows(IllegalArgumentException.class, () -> InformerConfiguration.failIfNotValid( Set.of(Constants.WATCH_CURRENT_NAMESPACE, Constants.WATCH_ALL_NAMESPACES, "foo"))); - assertThrows(IllegalArgumentException.class, () -> InformerConfiguration.failIfNotValid( - Set.of(Constants.WATCH_CURRENT_NAMESPACE, "foo"))); - assertThrows(IllegalArgumentException.class, () -> InformerConfiguration.failIfNotValid( - Set.of(Constants.WATCH_ALL_NAMESPACES, "foo"))); + assertThrows(IllegalArgumentException.class, () -> InformerConfiguration + .failIfNotValid(Set.of(Constants.WATCH_CURRENT_NAMESPACE, "foo"))); + assertThrows(IllegalArgumentException.class, + () -> InformerConfiguration.failIfNotValid(Set.of(Constants.WATCH_ALL_NAMESPACES, "foo"))); // should work InformerConfiguration.failIfNotValid(Set.of("foo", "bar")); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/UtilsTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/UtilsTest.java index ec1223377c..a08d90559e 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/UtilsTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/UtilsTest.java @@ -88,12 +88,10 @@ void getsFirstTypeArgumentFromExtendedClass() { @Test void getsFirstTypeArgumentFromInterface() { assertThat(Utils.getFirstTypeArgumentFromInterface(EmptyTestDependentResource.class, - DependentResource.class)) - .isEqualTo(Deployment.class); + DependentResource.class)).isEqualTo(Deployment.class); - assertThatIllegalArgumentException().isThrownBy( - () -> Utils.getFirstTypeArgumentFromInterface(TestKubernetesDependentResource.class, - DependentResource.class)); + assertThatIllegalArgumentException().isThrownBy(() -> Utils.getFirstTypeArgumentFromInterface( + TestKubernetesDependentResource.class, DependentResource.class)); } @Test diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolverTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolverTest.java index 5cc5472798..387f527e55 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolverTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/dependent/DependentResourceConfigurationResolverTest.java @@ -52,10 +52,9 @@ private <P extends HasMetadata> io.javaoperatorsdk.operator.api.config.Controlle private static Object extractDependentKubernetesResourceConfig( io.javaoperatorsdk.operator.api.config.ControllerConfiguration<?> configuration, Class<? extends DependentResource> target) { - final var spec = - configuration.getWorkflowSpec().orElseThrow().getDependentResourceSpecs().stream() - .filter(s -> target.isAssignableFrom(s.getDependentResourceClass())) - .findFirst().orElseThrow(); + final var spec = configuration.getWorkflowSpec().orElseThrow().getDependentResourceSpecs() + .stream().filter(s -> target.isAssignableFrom(s.getDependentResourceClass())).findFirst() + .orElseThrow(); return configuration.getConfigurationFor(spec); } @@ -69,12 +68,9 @@ void controllerConfigurationProvidedShouldBeReturnedIfAvailable() { assertEquals(CustomAnnotatedDep.PROVIDED_VALUE, ((CustomConfig) customConfig).getValue()); final var newConfig = new CustomConfig(72); final var overridden = ControllerConfigurationOverrider.override(cfg) - .replacingNamedDependentResourceConfig(DR_NAME, newConfig) - .build(); + .replacingNamedDependentResourceConfig(DR_NAME, newConfig).build(); final var spec = cfg.getWorkflowSpec().orElseThrow().getDependentResourceSpecs().stream() - .filter(s -> DR_NAME.equals(s.getName())) - .findFirst() - .orElseThrow(); + .filter(s -> DR_NAME.equals(s.getName())).findFirst().orElseThrow(); assertEquals(newConfig, overridden.getConfigurationFor(spec)); } @@ -104,8 +100,7 @@ public Object configFrom(Annotation configAnnotation, DependentResourceSpec spec return null; } }; - DependentResourceConfigurationResolver.registerConverter(ServiceDep.class, - overriddenConverter); + DependentResourceConfigurationResolver.registerConverter(ServiceDep.class, overriddenConverter); configFor(new CustomAnnotationReconciler()); // non overridden dependents should use the default converter @@ -117,12 +112,9 @@ public Object configFrom(Annotation configAnnotation, DependentResourceSpec spec assertEquals(overriddenConverter, converter); } - @Workflow(dependents = { - @Dependent(type = CustomAnnotatedDep.class, name = DR_NAME), - @Dependent(type = ChildCustomAnnotatedDep.class), - @Dependent(type = ConfigMapDep.class), - @Dependent(type = ServiceDep.class) - }) + @Workflow(dependents = {@Dependent(type = CustomAnnotatedDep.class, name = DR_NAME), + @Dependent(type = ChildCustomAnnotatedDep.class), @Dependent(type = ConfigMapDep.class), + @Dependent(type = ServiceDep.class)}) @ControllerConfiguration static class CustomAnnotationReconciler implements Reconciler<ConfigMap> { diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/DefaultManagedDependentResourceContextTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/DefaultManagedDependentResourceContextTest.java index 3ea53668fa..3f260f4395 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/DefaultManagedDependentResourceContextTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/reconciler/dependent/managed/DefaultManagedDependentResourceContextTest.java @@ -84,8 +84,7 @@ void getMandatory() { void getMandatoryWhenEmpty() { assertThatThrownBy(() -> { context.getMandatory("key", String.class); - }).isInstanceOf(IllegalStateException.class) - .hasMessage( - "Mandatory attribute (key: key, type: java.lang.String) is missing or not of the expected type"); + }).isInstanceOf(IllegalStateException.class).hasMessage( + "Mandatory attribute (key: key, type: java.lang.String) is missing or not of the expected type"); } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/ControllerTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/ControllerTest.java index a81f524326..d35cf312ef 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/ControllerTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/ControllerTest.java @@ -77,16 +77,10 @@ void usesFinalizerIfThereIfReconcilerImplementsCleaner() { } @ParameterizedTest - @CsvSource({ - "true, true, true, false", - "true, true, false, true", - "false, true, true, true", - "false, true, false, true", - "true, false, true, false", - }) + @CsvSource({"true, true, true, false", "true, true, false, true", "false, true, true, true", + "false, true, false, true", "true, false, true, false",}) void callsCleanupOnWorkflowWhenHasCleanerAndReconcilerIsNotCleaner(boolean reconcilerIsCleaner, - boolean workflowIsCleaner, - boolean isExplicitWorkflowInvocation, + boolean workflowIsCleaner, boolean isExplicitWorkflowInvocation, boolean workflowCleanerExecuted) throws Exception { Reconciler reconciler; diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResourceTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResourceTest.java index 330f5b85b7..22a63599dc 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResourceTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResourceTest.java @@ -58,10 +58,8 @@ void throwsExceptionIfUpdateReturnsNull() { private ConfigMap configMap() { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName("test") - .withNamespace("default") - .build()); + configMap + .setMetadata(new ObjectMetaBuilder().withName("test").withNamespace("default").build()); return configMap; } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericKubernetesResourceMatcherTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericKubernetesResourceMatcherTest.java index 2663657157..ee5f6ce904 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericKubernetesResourceMatcherTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericKubernetesResourceMatcherTest.java @@ -48,15 +48,13 @@ void matchesTrivialCases() { void matchesAdditiveOnlyChanges() { actual.getSpec().getTemplate().getMetadata().getLabels().put("new-key", "val"); assertThat(GenericKubernetesResourceMatcher.match(desired, actual, context).matched()) - .withFailMessage("Additive changes should not cause a mismatch by default") - .isTrue(); + .withFailMessage("Additive changes should not cause a mismatch by default").isTrue(); } @Test void matchesWithStrongSpecEquality() { actual.getSpec().getTemplate().getMetadata().getLabels().put("new-key", "val"); - assertThat(match(desired, actual, true, true, context) - .matched()) + assertThat(match(desired, actual, true, true, context).matched()) .withFailMessage("Adding values should fail matching when strong equality is required") .isFalse(); } @@ -66,8 +64,7 @@ void doesNotMatchRemovedValues() { actual = createDeployment(); assertThat(GenericKubernetesResourceMatcher .match(dependentResource.desired(createPrimary("removed"), null), actual, context) - .matched()) - .withFailMessage("Removing values in metadata should lead to a mismatch") + .matched()).withFailMessage("Removing values in metadata should lead to a mismatch") .isFalse(); } @@ -76,8 +73,7 @@ void doesNotMatchChangedValues() { actual = createDeployment(); actual.getSpec().setReplicas(2); assertThat(GenericKubernetesResourceMatcher.match(desired, actual, context).matched()) - .withFailMessage("Should not have matched because values have changed") - .isFalse(); + .withFailMessage("Should not have matched because values have changed").isFalse(); } @Test @@ -85,8 +81,7 @@ void ignoreStatus() { actual = createDeployment(); actual.setStatus(new DeploymentStatusBuilder().withReadyReplicas(1).build()); assertThat(GenericKubernetesResourceMatcher.match(desired, actual, context).matched()) - .withFailMessage("Should ignore status in actual") - .isTrue(); + .withFailMessage("Should ignore status in actual").isTrue(); } @Test @@ -104,8 +99,7 @@ void doesNotAttemptToMatchIgnoredPaths() { actual = createDeployment(); actual.getSpec().setReplicas(2); assertThat(match(dependentResource, actual, null, context, false, "/spec/replicas").matched()) - .withFailMessage("Should not have compared ignored paths") - .isTrue(); + .withFailMessage("Should not have compared ignored paths").isTrue(); } @Test @@ -113,28 +107,21 @@ void ignoresWholeSubPath() { actual = createDeployment(); actual.getSpec().getTemplate().getMetadata().getLabels().put("additional-key", "val"); assertThat(match(dependentResource, actual, null, context, false, "/spec/template").matched()) - .withFailMessage("Should match when only changes impact ignored sub-paths") - .isTrue(); + .withFailMessage("Should match when only changes impact ignored sub-paths").isTrue(); } @Test void matchesMetadata() { - actual = new DeploymentBuilder(createDeployment()) - .editOrNewMetadata() - .addToAnnotations("test", "value") - .endMetadata() - .build(); + actual = new DeploymentBuilder(createDeployment()).editOrNewMetadata() + .addToAnnotations("test", "value").endMetadata().build(); assertThat(match(dependentResource, actual, null, context, false).matched()) - .withFailMessage("Annotations shouldn't matter when metadata is not considered") - .isTrue(); + .withFailMessage("Annotations shouldn't matter when metadata is not considered").isTrue(); assertThat(match(desired, actual, true, true, context).matched()) - .withFailMessage("Annotations should matter when metadata is considered") - .isFalse(); + .withFailMessage("Annotations should matter when metadata is considered").isFalse(); - assertThat(match(desired, actual, false, false, context).matched()) - .withFailMessage( - "Should match when strong equality is not considered and only additive changes are made") + assertThat(match(desired, actual, false, false, context).matched()).withFailMessage( + "Should match when strong equality is not considered and only additive changes are made") .isTrue(); } @@ -144,12 +131,12 @@ void checkServiceAccount() { final var serviceAccountDR = new ServiceAccountDR(); final var desired = serviceAccountDR.desired(null, context); - var actual = new ServiceAccountBuilder(desired) - .addNewImagePullSecret("imagePullSecret3") - .build(); + var actual = + new ServiceAccountBuilder(desired).addNewImagePullSecret("imagePullSecret3").build(); - assertThat(GenericKubernetesResourceMatcher.match(desired, actual, false, false, context) - .matched()).isTrue(); + assertThat( + GenericKubernetesResourceMatcher.match(desired, actual, false, false, context).matched()) + .isTrue(); } @Test @@ -158,31 +145,23 @@ void matchConfigMap() { var actual = createConfigMap(); actual.getData().put("key2", "val2"); - var match = GenericKubernetesResourceMatcher.match(desired, actual, - true, false, context); + var match = GenericKubernetesResourceMatcher.match(desired, actual, true, false, context); assertThat(match.matched()).isTrue(); } ConfigMap createConfigMap() { return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName("tes1") - .withNamespace("default") - .build()) - .withData(Map.of("key1", "val1")) - .build(); + .withMetadata(new ObjectMetaBuilder().withName("tes1").withNamespace("default").build()) + .withData(Map.of("key1", "val1")).build(); } Deployment createDeployment() { - return ReconcilerUtils.loadYaml( - Deployment.class, GenericKubernetesResourceMatcherTest.class, "nginx-deployment.yaml"); + return ReconcilerUtils.loadYaml(Deployment.class, GenericKubernetesResourceMatcherTest.class, + "nginx-deployment.yaml"); } HasMetadata createPrimary(String caseName) { - return new DeploymentBuilder() - .editOrNewMetadata() - .addToLabels("case", caseName) - .endMetadata() + return new DeploymentBuilder().editOrNewMetadata().addToLabels("case", caseName).endMetadata() .build(); } @@ -195,12 +174,9 @@ public ServiceAccountDR() { @Override protected ServiceAccount desired(HasMetadata primary, Context<HasMetadata> context) { - return new ServiceAccountBuilder() - .withNewMetadata().withName("foo").endMetadata() - .withAutomountServiceAccountToken() - .addNewImagePullSecret("imagePullSecret1") - .addNewImagePullSecret("imagePullSecret2") - .build(); + return new ServiceAccountBuilder().withNewMetadata().withName("foo").endMetadata() + .withAutomountServiceAccountToken().addNewImagePullSecret("imagePullSecret1") + .addNewImagePullSecret("imagePullSecret2").build(); } } @@ -216,8 +192,7 @@ public TestDependentResource(Deployment desired) { @Override protected Deployment desired(HasMetadata primary, Context context) { final var currentCase = Optional.ofNullable(primary) - .map(p -> p.getMetadata().getLabels().get("case")) - .orElse(null); + .map(p -> p.getMetadata().getLabels().get("case")).orElse(null); var d = desired; if ("removed".equals(currentCase)) { d = createDeployment(); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericResourceUpdaterTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericResourceUpdaterTest.java index 313520b89e..0da91a8244 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericResourceUpdaterTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/GenericResourceUpdaterTest.java @@ -82,13 +82,9 @@ void checkNamespaces() { @Test void checkSecret() { - var desired = - new SecretBuilder() - .withMetadata(new ObjectMeta()) - .withImmutable().withType("Opaque").addToData("foo", "bar").build(); - var actual = new SecretBuilder() - .withMetadata(new ObjectMeta()) - .build(); + var desired = new SecretBuilder().withMetadata(new ObjectMeta()).withImmutable() + .withType("Opaque").addToData("foo", "bar").build(); + var actual = new SecretBuilder().withMetadata(new ObjectMeta()).build(); final var secret = GenericResourceUpdater.updateResource(actual, desired, context); assertThat(secret.getImmutable()).isTrue(); @@ -99,12 +95,10 @@ void checkSecret() { @Test void checkServiceAccount() { var desired = new ServiceAccountBuilder() - .withMetadata(new ObjectMetaBuilder().addToLabels("new", "label").build()) - .build(); + .withMetadata(new ObjectMetaBuilder().addToLabels("new", "label").build()).build(); var actual = new ServiceAccountBuilder() .withMetadata(new ObjectMetaBuilder().addToLabels("a", "label").build()) - .withImagePullSecrets(new LocalObjectReferenceBuilder().withName("secret").build()) - .build(); + .withImagePullSecrets(new LocalObjectReferenceBuilder().withName("secret").build()).build(); final var serviceAccount = GenericResourceUpdater.updateResource(actual, desired, context); assertThat(serviceAccount.getMetadata().getLabels()) @@ -113,8 +107,8 @@ void checkServiceAccount() { } Deployment createDeployment() { - return ReconcilerUtils.loadYaml( - Deployment.class, GenericResourceUpdaterTest.class, "nginx-deployment.yaml"); + return ReconcilerUtils.loadYaml(Deployment.class, GenericResourceUpdaterTest.class, + "nginx-deployment.yaml"); } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/ResourceRequirementsSanitizerTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/ResourceRequirementsSanitizerTest.java index b1ed6f0080..03eded97df 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/ResourceRequirementsSanitizerTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/ResourceRequirementsSanitizerTest.java @@ -53,13 +53,11 @@ void testSanitizeResourceRequirements_whenTemplateSpecIsNull_doNothing() { @Test void testSanitizeResourceRequirements_whenContainerSizeMismatch_doNothing() { - final var template = new PodTemplateSpecBuilder().withNewSpec() - .addNewContainer().withName("test").endContainer() - .endSpec().build(); - final var templateWithTwoContainers = new PodTemplateSpecBuilder().withNewSpec() - .addNewContainer().withName("test").endContainer() - .addNewContainer().withName("test-new").endContainer() - .endSpec().build(); + final var template = new PodTemplateSpecBuilder().withNewSpec().addNewContainer() + .withName("test").endContainer().endSpec().build(); + final var templateWithTwoContainers = + new PodTemplateSpecBuilder().withNewSpec().addNewContainer().withName("test").endContainer() + .addNewContainer().withName("test-new").endContainer().endSpec().build(); sanitizeResourceRequirements(actualMap, template, templateWithTwoContainers); sanitizeResourceRequirements(actualMap, templateWithTwoContainers, template); @@ -68,12 +66,10 @@ void testSanitizeResourceRequirements_whenContainerSizeMismatch_doNothing() { @Test void testSanitizeResourceRequirements_whenContainerNameMismatch_doNothing() { - final var template = new PodTemplateSpecBuilder().withNewSpec() - .addNewContainer().withName("test").endContainer() - .endSpec().build(); + final var template = new PodTemplateSpecBuilder().withNewSpec().addNewContainer() + .withName("test").endContainer().endSpec().build(); final var templateWithNewContainerName = new PodTemplateSpecBuilder().withNewSpec() - .addNewContainer().withName("test-new").endContainer() - .endSpec().build(); + .addNewContainer().withName("test-new").endContainer().endSpec().build(); sanitizeResourceRequirements(actualMap, template, templateWithNewContainerName); sanitizeResourceRequirements(actualMap, templateWithNewContainerName, template); @@ -82,12 +78,10 @@ void testSanitizeResourceRequirements_whenContainerNameMismatch_doNothing() { @Test void testSanitizeResourceRequirements_whenResourceIsNull_doNothing() { - final var template = new PodTemplateSpecBuilder().withNewSpec() - .addNewContainer().withName("test").endContainer() - .endSpec().build(); - final var templateWithResource = new PodTemplateSpecBuilder().withNewSpec() - .addNewContainer().withName("test").withNewResources().endResources().endContainer() - .endSpec().build(); + final var template = new PodTemplateSpecBuilder().withNewSpec().addNewContainer() + .withName("test").endContainer().endSpec().build(); + final var templateWithResource = new PodTemplateSpecBuilder().withNewSpec().addNewContainer() + .withName("test").withNewResources().endResources().endContainer().endSpec().build(); sanitizeResourceRequirements(actualMap, template, templateWithResource); sanitizeResourceRequirements(actualMap, templateWithResource, template); @@ -97,44 +91,28 @@ void testSanitizeResourceRequirements_whenResourceIsNull_doNothing() { @Test void testSanitizeResourceRequirements_whenResourceSizeMismatch_doNothing() { final var actualMap = sanitizeRequestsAndLimits(ContainerType.CONTAINER, - Map.of("cpu", new Quantity("2")), - Map.of(), - Map.of("cpu", new Quantity("4")), + Map.of("cpu", new Quantity("2")), Map.of(), Map.of("cpu", new Quantity("4")), Map.of("cpu", new Quantity("4"), "memory", new Quantity("4Gi"))); - assertContainerResources(actualMap, "requests") - .hasSize(1) - .containsEntry("cpu", "2"); - assertContainerResources(actualMap, "limits") - .hasSize(1) - .containsEntry("cpu", "4"); + assertContainerResources(actualMap, "requests").hasSize(1).containsEntry("cpu", "2"); + assertContainerResources(actualMap, "limits").hasSize(1).containsEntry("cpu", "4"); } @Test void testSanitizeResourceRequirements_whenResourceKeyMismatch_doNothing() { - final var actualMap = sanitizeRequestsAndLimits(ContainerType.INIT_CONTAINER, - Map.of("cpu", new Quantity("2")), - Map.of("memory", new Quantity("4Gi")), - Map.of(), - Map.of()); - assertInitContainerResources(actualMap, "requests") - .hasSize(1) - .containsEntry("cpu", "2"); + final var actualMap = + sanitizeRequestsAndLimits(ContainerType.INIT_CONTAINER, Map.of("cpu", new Quantity("2")), + Map.of("memory", new Quantity("4Gi")), Map.of(), Map.of()); + assertInitContainerResources(actualMap, "requests").hasSize(1).containsEntry("cpu", "2"); assertInitContainerResources(actualMap, "limits").isNull(); } @Test void testSanitizeResourceRequirements_whenResourcesHaveSameAmountAndFormat_doNothing() { final var actualMap = sanitizeRequestsAndLimits(ContainerType.CONTAINER, - Map.of("memory", new Quantity("4Gi")), - Map.of("memory", new Quantity("4Gi")), - Map.of("cpu", new Quantity("2")), - Map.of("cpu", new Quantity("2"))); - assertContainerResources(actualMap, "requests") - .hasSize(1) - .containsEntry("memory", "4Gi"); - assertContainerResources(actualMap, "limits") - .hasSize(1) - .containsEntry("cpu", "2"); + Map.of("memory", new Quantity("4Gi")), Map.of("memory", new Quantity("4Gi")), + Map.of("cpu", new Quantity("2")), Map.of("cpu", new Quantity("2"))); + assertContainerResources(actualMap, "requests").hasSize(1).containsEntry("memory", "4Gi"); + assertContainerResources(actualMap, "limits").hasSize(1).containsEntry("cpu", "2"); } @Test @@ -142,15 +120,10 @@ void testSanitizeResourceRequirements_whenResourcesHaveNumericalAmountMismatch_d final var actualMap = sanitizeRequestsAndLimits(ContainerType.INIT_CONTAINER, Map.of("cpu", new Quantity("2"), "memory", new Quantity("4Gi")), Map.of("cpu", new Quantity("4"), "memory", new Quantity("4Ti")), - Map.of("cpu", new Quantity("2")), - Map.of("cpu", new Quantity("4000m"))); - assertInitContainerResources(actualMap, "requests") - .hasSize(2) - .containsEntry("cpu", "2") + Map.of("cpu", new Quantity("2")), Map.of("cpu", new Quantity("4000m"))); + assertInitContainerResources(actualMap, "requests").hasSize(2).containsEntry("cpu", "2") .containsEntry("memory", "4Gi"); - assertInitContainerResources(actualMap, "limits") - .hasSize(1) - .containsEntry("cpu", "2"); + assertInitContainerResources(actualMap, "limits").hasSize(1).containsEntry("cpu", "2"); } @Test @@ -158,15 +131,10 @@ void testSanitizeResourceRequirements_whenResourcesHaveAmountAndFormatMismatchWi final var actualMap = sanitizeRequestsAndLimits(ContainerType.CONTAINER, Map.of("cpu", new Quantity("2"), "memory", new Quantity("4Gi")), Map.of("cpu", new Quantity("2000m"), "memory", new Quantity("4096Mi")), - Map.of("cpu", new Quantity("4")), - Map.of("cpu", new Quantity("4000m"))); - assertContainerResources(actualMap, "requests") - .hasSize(2) - .containsEntry("cpu", "2000m") + Map.of("cpu", new Quantity("4")), Map.of("cpu", new Quantity("4000m"))); + assertContainerResources(actualMap, "requests").hasSize(2).containsEntry("cpu", "2000m") .containsEntry("memory", "4096Mi"); - assertContainerResources(actualMap, "limits") - .hasSize(1) - .containsEntry("cpu", "4000m"); + assertContainerResources(actualMap, "limits").hasSize(1).containsEntry("cpu", "4000m"); } @SuppressWarnings("unchecked") @@ -176,8 +144,7 @@ private Map<String, Object> sanitizeRequestsAndLimits(final ContainerType type, final var actual = createStatefulSet(type, actualRequests, actualLimits); final var desired = createStatefulSet(type, desiredRequests, desiredLimits); final var actualMap = serialization.convertValue(actual, Map.class); - sanitizeResourceRequirements(actualMap, - actual.getSpec().getTemplate(), + sanitizeResourceRequirements(actualMap, actual.getSpec().getTemplate(), desired.getSpec().getTemplate()); return actualMap; } @@ -190,34 +157,24 @@ private static StatefulSet createStatefulSet(final ContainerType type, final Map<String, Quantity> requests, final Map<String, Quantity> limits) { var builder = new StatefulSetBuilder().withNewSpec().withNewTemplate().withNewSpec(); if (type == ContainerType.CONTAINER) { - builder = builder.addNewContainer() - .withName("test") - .withNewResources() - .withRequests(requests) - .withLimits(limits) - .endResources() - .endContainer(); + builder = builder.addNewContainer().withName("test").withNewResources().withRequests(requests) + .withLimits(limits).endResources().endContainer(); } else { - builder = builder.addNewInitContainer() - .withName("test") - .withNewResources() - .withRequests(requests) - .withLimits(limits) - .endResources() - .endInitContainer(); + builder = builder.addNewInitContainer().withName("test").withNewResources() + .withRequests(requests).withLimits(limits).endResources().endInitContainer(); } return builder.endSpec().endTemplate().endSpec().build(); } private static MapAssert<String, Object> assertContainerResources( final Map<String, Object> actualMap, final String resourceName) { - return assertThat(GenericKubernetesResource.<Map<String, Object>>get(actualMap, - "spec", "template", "spec", "containers", 0, "resources", resourceName)); + return assertThat(GenericKubernetesResource.<Map<String, Object>>get(actualMap, "spec", + "template", "spec", "containers", 0, "resources", resourceName)); } private static MapAssert<String, Object> assertInitContainerResources( final Map<String, Object> actualMap, final String resourceName) { - return assertThat(GenericKubernetesResource.<Map<String, Object>>get(actualMap, - "spec", "template", "spec", "initContainers", 0, "resources", resourceName)); + return assertThat(GenericKubernetesResource.<Map<String, Object>>get(actualMap, "spec", + "template", "spec", "initContainers", 0, "resources", resourceName)); } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcherTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcherTest.java index f30b6949fa..02c3031d17 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcherTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/SSABasedGenericKubernetesResourceMatcherTest.java @@ -58,10 +58,9 @@ void checksIfAddsNotAddedByController() { // managed but not listed @Test void emptyListElementMatchesAllFields() { - var desiredConfigMap = loadResource("configmap.empty-owner-reference-desired.yaml", - ConfigMap.class); - var actualConfigMap = loadResource("configmap.empty-owner-reference.yaml", - ConfigMap.class); + var desiredConfigMap = + loadResource("configmap.empty-owner-reference-desired.yaml", ConfigMap.class); + var actualConfigMap = loadResource("configmap.empty-owner-reference.yaml", ConfigMap.class); assertThat(matcher.matches(actualConfigMap, desiredConfigMap, mockedContext)).isTrue(); } @@ -69,42 +68,37 @@ void emptyListElementMatchesAllFields() { // the whole "rules:" part is just implicitly managed @Test void wholeComplexFieldManaged() { - var desiredConfigMap = loadResource("sample-whole-complex-part-managed-desired.yaml", - ConfigMap.class); - var actualConfigMap = loadResource("sample-whole-complex-part-managed.yaml", - ConfigMap.class); + var desiredConfigMap = + loadResource("sample-whole-complex-part-managed-desired.yaml", ConfigMap.class); + var actualConfigMap = loadResource("sample-whole-complex-part-managed.yaml", ConfigMap.class); assertThat(matcher.matches(actualConfigMap, desiredConfigMap, mockedContext)).isTrue(); } @Test void multiItemList() { - var desiredConfigMap = loadResource("multi-container-pod-desired.yaml", - ConfigMap.class); - var actualConfigMap = loadResource("multi-container-pod.yaml", - ConfigMap.class); + var desiredConfigMap = loadResource("multi-container-pod-desired.yaml", ConfigMap.class); + var actualConfigMap = loadResource("multi-container-pod.yaml", ConfigMap.class); assertThat(matcher.matches(actualConfigMap, desiredConfigMap, mockedContext)).isTrue(); } @Test void changeValueInDesiredMakesMatchFail() { - var desiredConfigMap = loadResource("configmap.empty-owner-reference-desired.yaml", - ConfigMap.class); + var desiredConfigMap = + loadResource("configmap.empty-owner-reference-desired.yaml", ConfigMap.class); desiredConfigMap.getData().put("key1", "different value"); - var actualConfigMap = loadResource("configmap.empty-owner-reference.yaml", - ConfigMap.class); + var actualConfigMap = loadResource("configmap.empty-owner-reference.yaml", ConfigMap.class); assertThat(matcher.matches(actualConfigMap, desiredConfigMap, mockedContext)).isFalse(); } @Test void changeValueActualMakesMatchFail() { - var desiredConfigMap = loadResource("configmap.empty-owner-reference-desired.yaml", - ConfigMap.class); + var desiredConfigMap = + loadResource("configmap.empty-owner-reference-desired.yaml", ConfigMap.class); - var actualConfigMap = loadResource("configmap.empty-owner-reference.yaml", - ConfigMap.class); + var actualConfigMap = loadResource("configmap.empty-owner-reference.yaml", ConfigMap.class); actualConfigMap.getData().put("key1", "different value"); assertThat(matcher.matches(actualConfigMap, desiredConfigMap, mockedContext)).isFalse(); @@ -112,12 +106,11 @@ void changeValueActualMakesMatchFail() { @Test void addedLabelInDesiredMakesMatchFail() { - var desiredConfigMap = loadResource("configmap.empty-owner-reference-desired.yaml", - ConfigMap.class); + var desiredConfigMap = + loadResource("configmap.empty-owner-reference-desired.yaml", ConfigMap.class); desiredConfigMap.getMetadata().setLabels(Map.of("newlabel", "val")); - var actualConfigMap = loadResource("configmap.empty-owner-reference.yaml", - ConfigMap.class); + var actualConfigMap = loadResource("configmap.empty-owner-reference.yaml", ConfigMap.class); assertThat(matcher.matches(actualConfigMap, desiredConfigMap, mockedContext)).isFalse(); } @@ -170,8 +163,7 @@ void testSortMapWithNestedMap() { "sample-sts-volumeclaimtemplates-desired-with-volumemode.yaml"}) void testSanitizeState_statefulSetWithVolumeClaims(String desiredResourceFileName) { var desiredStatefulSet = loadResource(desiredResourceFileName, StatefulSet.class); - var actualStatefulSet = loadResource("sample-sts-volumeclaimtemplates.yaml", - StatefulSet.class); + var actualStatefulSet = loadResource("sample-sts-volumeclaimtemplates.yaml", StatefulSet.class); assertThat(matcher.matches(actualStatefulSet, desiredStatefulSet, mockedContext)).isTrue(); } @@ -183,8 +175,7 @@ void testSanitizeState_statefulSetWithVolumeClaims(String desiredResourceFileNam "sample-sts-volumeclaimtemplates-desired-with-volumemode-mismatch.yaml"}) void testSanitizeState_statefulSetWithVolumeClaims_withMismatch(String desiredResourceFileName) { var desiredStatefulSet = loadResource(desiredResourceFileName, StatefulSet.class); - var actualStatefulSet = loadResource("sample-sts-volumeclaimtemplates.yaml", - StatefulSet.class); + var actualStatefulSet = loadResource("sample-sts-volumeclaimtemplates.yaml", StatefulSet.class); assertThat(matcher.matches(actualStatefulSet, desiredStatefulSet, mockedContext)).isFalse(); } @@ -192,8 +183,7 @@ void testSanitizeState_statefulSetWithVolumeClaims_withMismatch(String desiredRe @Test void testSanitizeState_statefulSetWithResources() { var desiredStatefulSet = loadResource("sample-sts-resources-desired.yaml", StatefulSet.class); - var actualStatefulSet = loadResource("sample-sts-resources.yaml", - StatefulSet.class); + var actualStatefulSet = loadResource("sample-sts-resources.yaml", StatefulSet.class); assertThat(matcher.matches(actualStatefulSet, desiredStatefulSet, mockedContext)).isTrue(); } @@ -202,8 +192,7 @@ void testSanitizeState_statefulSetWithResources() { void testSanitizeState_statefulSetWithResources_withMismatch() { var desiredStatefulSet = loadResource("sample-sts-resources-desired-update.yaml", StatefulSet.class); - var actualStatefulSet = loadResource("sample-sts-resources.yaml", - StatefulSet.class); + var actualStatefulSet = loadResource("sample-sts-resources.yaml", StatefulSet.class); assertThat(matcher.matches(actualStatefulSet, desiredStatefulSet, mockedContext)).isFalse(); } @@ -211,8 +200,7 @@ void testSanitizeState_statefulSetWithResources_withMismatch() { @Test void testSanitizeState_replicaSetWithResources() { var desiredReplicaSet = loadResource("sample-rs-resources-desired.yaml", ReplicaSet.class); - var actualReplicaSet = loadResource("sample-rs-resources.yaml", - ReplicaSet.class); + var actualReplicaSet = loadResource("sample-rs-resources.yaml", ReplicaSet.class); assertThat(matcher.matches(actualReplicaSet, desiredReplicaSet, mockedContext)).isTrue(); } @@ -221,8 +209,7 @@ void testSanitizeState_replicaSetWithResources() { void testSanitizeState_replicaSetWithResources_withMismatch() { var desiredReplicaSet = loadResource("sample-rs-resources-desired-update.yaml", ReplicaSet.class); - var actualReplicaSet = loadResource("sample-rs-resources.yaml", - ReplicaSet.class); + var actualReplicaSet = loadResource("sample-rs-resources.yaml", ReplicaSet.class); assertThat(matcher.matches(actualReplicaSet, desiredReplicaSet, mockedContext)).isFalse(); } @@ -230,18 +217,15 @@ void testSanitizeState_replicaSetWithResources_withMismatch() { @Test void testSanitizeState_daemonSetWithResources() { var desiredDaemonSet = loadResource("sample-ds-resources-desired.yaml", DaemonSet.class); - var actualDaemonSet = loadResource("sample-ds-resources.yaml", - DaemonSet.class); + var actualDaemonSet = loadResource("sample-ds-resources.yaml", DaemonSet.class); assertThat(matcher.matches(actualDaemonSet, desiredDaemonSet, mockedContext)).isTrue(); } @Test void testSanitizeState_daemonSetWithResources_withMismatch() { - var desiredDaemonSet = - loadResource("sample-ds-resources-desired-update.yaml", DaemonSet.class); - var actualDaemonSet = loadResource("sample-ds-resources.yaml", - DaemonSet.class); + var desiredDaemonSet = loadResource("sample-ds-resources-desired-update.yaml", DaemonSet.class); + var actualDaemonSet = loadResource("sample-ds-resources.yaml", DaemonSet.class); assertThat(matcher.matches(actualDaemonSet, desiredDaemonSet, mockedContext)).isFalse(); } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/BaseWorkflowResultTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/BaseWorkflowResultTest.java index 8503e402f1..99b3152d94 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/BaseWorkflowResultTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/BaseWorkflowResultTest.java @@ -13,14 +13,12 @@ import static org.assertj.core.api.Assertions.assertThat; class BaseWorkflowResultTest { - private final static BaseWorkflowResult.Detail<?> detail = - new BaseWorkflowResult.Detail<>(new RuntimeException(), null, null, null, null, null, false, - false, false); + private final static BaseWorkflowResult.Detail<?> detail = new BaseWorkflowResult.Detail<>( + new RuntimeException(), null, null, null, null, null, false, false, false); @Test void throwsExceptionWithoutNumberingIfAllDifferentClass() { - var res = new BaseWorkflowResult(Map.of(new DependentA(), detail, - new DependentB(), detail)); + var res = new BaseWorkflowResult(Map.of(new DependentA(), detail, new DependentB(), detail)); try { res.throwAggregateExceptionIfErrorsPresent(); } catch (AggregatedOperatorException e) { @@ -31,8 +29,8 @@ void throwsExceptionWithoutNumberingIfAllDifferentClass() { @Test void numbersDependentClassNamesIfMoreOfSameType() { - var res = new BaseWorkflowResult(Map.of(new DependentA("name1"), detail, - new DependentA("name2"), detail)); + var res = new BaseWorkflowResult( + Map.of(new DependentA("name1"), detail, new DependentA("name2"), detail)); try { res.throwAggregateExceptionIfErrorsPresent(); } catch (AggregatedOperatorException e) { diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/CRDPresentActivationConditionTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/CRDPresentActivationConditionTest.java index 58990214a3..552810d0c6 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/CRDPresentActivationConditionTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/CRDPresentActivationConditionTest.java @@ -21,8 +21,7 @@ class CRDPresentActivationConditionTest { private final CRDPresentActivationCondition.CRDPresentChecker checkerMock = mock(CRDPresentActivationCondition.CRDPresentChecker.class); private final CRDPresentActivationCondition condition = - new CRDPresentActivationCondition(checkerMock, 2, - Duration.ofMillis(TEST_CHECK_INTERVAL)); + new CRDPresentActivationCondition(checkerMock, 2, Duration.ofMillis(TEST_CHECK_INTERVAL)); private final DependentResource<TestCustomResource, TestCustomResource> dr = mock(DependentResource.class); private final Context context = mock(Context.class); @@ -37,12 +36,12 @@ void setup() { @Test - void checkCRDIfNotCheckedBefore() { - when(checkerMock.checkIfCRDPresent(any(),any())).thenReturn(true); + void checkCRDIfNotCheckedBefore() { + when(checkerMock.checkIfCRDPresent(any(), any())).thenReturn(true); - assertThat(condition.isMet(dr,null,context)).isTrue(); - verify(checkerMock, times(1)).checkIfCRDPresent(any(),any()); - } + assertThat(condition.isMet(dr, null, context)).isTrue(); + verify(checkerMock, times(1)).checkIfCRDPresent(any(), any()); + } @Test void instantMetCallSkipsApiCall() { @@ -65,17 +64,17 @@ void intervalExpiredAPICheckedAgain() throws InterruptedException { } @Test - void crdIsNotCheckedAnymoreIfIfOnceFound() throws InterruptedException { - when(checkerMock.checkIfCRDPresent(any(),any())).thenReturn(true); + void crdIsNotCheckedAnymoreIfIfOnceFound() throws InterruptedException { + when(checkerMock.checkIfCRDPresent(any(), any())).thenReturn(true); - condition.isMet(dr,null,context); - verify(checkerMock, times(1)).checkIfCRDPresent(any(),any()); + condition.isMet(dr, null, context); + verify(checkerMock, times(1)).checkIfCRDPresent(any(), any()); - Thread.sleep(TEST_CHECK_INTERVAL_WITH_SLACK); + Thread.sleep(TEST_CHECK_INTERVAL_WITH_SLACK); - condition.isMet(dr,null,context); - verify(checkerMock, times(1)).checkIfCRDPresent(any(),any()); - } + condition.isMet(dr, null, context); + verify(checkerMock, times(1)).checkIfCRDPresent(any(), any()); + } @Test void crdNotCheckedAnymoreIfCountExpires() throws InterruptedException { diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ExecutionAssert.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ExecutionAssert.java index d857c0e9dd..c68f2976a9 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ExecutionAssert.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ExecutionAssert.java @@ -8,8 +8,7 @@ import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource; -public class ExecutionAssert - extends AbstractAssert<ExecutionAssert, List<ReconcileRecord>> { +public class ExecutionAssert extends AbstractAssert<ExecutionAssert, List<ReconcileRecord>> { public ExecutionAssert(List<ReconcileRecord> reconcileRecords) { super(reconcileRecords, ExecutionAssert.class); @@ -67,8 +66,8 @@ public ExecutionAssert reconciledInOrder(DependentResource<?, ?>... dependentRes if (getActualDependentResources() .indexOf(dependentResources[i]) > getActualDependentResources() .indexOf(dependentResources[i + 1])) { - failWithMessage( - "Dependent resource on index %d reconciled after the one on index %d", i, i + 1); + failWithMessage("Dependent resource on index %d reconciled after the one on index %d", i, + i + 1); } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupportTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupportTest.java index ca73c8cae1..4d05249381 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupportTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowSupportTest.java @@ -36,16 +36,14 @@ void checkFindsDuplicates() { final var drs2 = createDRS(NAME_2); final var drs1 = createDRS(NAME_1); - Assertions.assertThrows(OperatorException.class, () -> managedWorkflowSupport - .checkForNameDuplication(List.of(drs2, drs2))); + Assertions.assertThrows(OperatorException.class, + () -> managedWorkflowSupport.checkForNameDuplication(List.of(drs2, drs2))); Assertions.assertThrows(OperatorException.class, - () -> managedWorkflowSupport.checkForNameDuplication( - List.of(drs1, drs2, drs2))); + () -> managedWorkflowSupport.checkForNameDuplication(List.of(drs1, drs2, drs2))); final var exception = Assertions.assertThrows(OperatorException.class, - () -> managedWorkflowSupport.checkForNameDuplication( - List.of(drs1, drs2, drs2, drs1))); + () -> managedWorkflowSupport.checkForNameDuplication(List.of(drs1, drs2, drs2, drs1))); assertThat(exception.getMessage()).contains(NAME_1, NAME_2); } @@ -69,10 +67,8 @@ void orderingDiamondShape() { createDRS(NAME_3, NAME_1), createDRS(NAME_4, NAME_2, NAME_3))) .stream().map(DependentResourceSpec::getName).collect(Collectors.toList()); - assertThat(res) - .containsExactlyInAnyOrder(NAME_1, NAME_2, NAME_3, NAME_4) - .contains(NAME_1, Index.atIndex(0)) - .contains(NAME_4, Index.atIndex(3)); + assertThat(res).containsExactlyInAnyOrder(NAME_1, NAME_2, NAME_3, NAME_4) + .contains(NAME_1, Index.atIndex(0)).contains(NAME_4, Index.atIndex(3)); } @@ -84,23 +80,15 @@ void orderingMultipleRoots() { final var NAME_6 = "name6"; var res = managedWorkflowSupport - .orderAndDetectCycles(List.of( - createDRS(NAME_2, NAME_1, NAME_5), - createDRS(NAME_1), - createDRS(NAME_3, NAME_1), - createDRS(NAME_4, NAME_2, NAME_3), - createDRS(NAME_5, NAME_1, NAME_6), - createDRS(NAME_6))) + .orderAndDetectCycles(List.of(createDRS(NAME_2, NAME_1, NAME_5), createDRS(NAME_1), + createDRS(NAME_3, NAME_1), createDRS(NAME_4, NAME_2, NAME_3), + createDRS(NAME_5, NAME_1, NAME_6), createDRS(NAME_6))) .stream().map(DependentResourceSpec::getName).collect(Collectors.toList()); - assertThat(res) - .containsExactlyInAnyOrder(NAME_1, NAME_5, NAME_6, NAME_2, NAME_3, NAME_4) - .contains(NAME_6, Index.atIndex(0)) - .contains(NAME_1, Index.atIndex(1)) - .contains(NAME_5, Index.atIndex(2)) - .contains(NAME_3, Index.atIndex(3)) - .contains(NAME_2, Index.atIndex(4)) - .contains(NAME_4, Index.atIndex(5)); + assertThat(res).containsExactlyInAnyOrder(NAME_1, NAME_5, NAME_6, NAME_2, NAME_3, NAME_4) + .contains(NAME_6, Index.atIndex(0)).contains(NAME_1, Index.atIndex(1)) + .contains(NAME_5, Index.atIndex(2)).contains(NAME_3, Index.atIndex(3)) + .contains(NAME_2, Index.atIndex(4)).contains(NAME_4, Index.atIndex(5)); } @Test @@ -109,39 +97,32 @@ void detectsCyclesTrivialCases() { Assertions.assertThrows(OperatorException.class, () -> managedWorkflowSupport .orderAndDetectCycles(List.of(createDRS(NAME_2, NAME_1), createDRS(NAME_1, NAME_2)))); Assertions.assertThrows(OperatorException.class, - () -> managedWorkflowSupport - .orderAndDetectCycles(List.of(createDRS(NAME_2, NAME_1), createDRS(NAME_1, NAME_3), - createDRS(NAME_3, NAME_2)))); + () -> managedWorkflowSupport.orderAndDetectCycles(List.of(createDRS(NAME_2, NAME_1), + createDRS(NAME_1, NAME_3), createDRS(NAME_3, NAME_2)))); } @Test void detectsCycleOnSubTree() { Assertions.assertThrows(OperatorException.class, - () -> managedWorkflowSupport.orderAndDetectCycles(List.of(createDRS(NAME_1), - createDRS(NAME_2, NAME_1), - createDRS(NAME_3, NAME_1, NAME_4), - createDRS(NAME_4, NAME_3)))); + () -> managedWorkflowSupport + .orderAndDetectCycles(List.of(createDRS(NAME_1), createDRS(NAME_2, NAME_1), + createDRS(NAME_3, NAME_1, NAME_4), createDRS(NAME_4, NAME_3)))); Assertions.assertThrows(OperatorException.class, - () -> managedWorkflowSupport.orderAndDetectCycles(List.of( - createDRS(NAME_1), - createDRS(NAME_2, NAME_1, NAME_4), - createDRS(NAME_3, NAME_2), - createDRS(NAME_4, NAME_3)))); + () -> managedWorkflowSupport + .orderAndDetectCycles(List.of(createDRS(NAME_1), createDRS(NAME_2, NAME_1, NAME_4), + createDRS(NAME_3, NAME_2), createDRS(NAME_4, NAME_3)))); } @Test void createsWorkflow() { - var specs = List.of(createDRS(NAME_1), - createDRS(NAME_2, NAME_1), - createDRS(NAME_3, NAME_1), + var specs = List.of(createDRS(NAME_1), createDRS(NAME_2, NAME_1), createDRS(NAME_3, NAME_1), createDRS(NAME_4, NAME_3, NAME_2)); var workflow = managedWorkflowSupport.createAsDefault(specs); - assertThat(workflow.nodeNames()) - .containsExactlyInAnyOrder(NAME_1, NAME_2, NAME_3, NAME_4); + assertThat(workflow.nodeNames()).containsExactlyInAnyOrder(NAME_1, NAME_2, NAME_3, NAME_4); assertThat(workflow.getTopLevelResources()).containsExactly(NAME_1); assertThat(workflow.getBottomLevelResources()).containsExactly(NAME_4); } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTest.java index e634a368d7..a28c4dc764 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTest.java @@ -36,21 +36,17 @@ void isNotCleanerIfNoDeleter() { @Test void isNotCleanerIfGarbageCollected() { - assertThat(managedWorkflow(createDRSWithTraits(NAME, GarbageCollected.class)) - .hasCleaner()).isFalse(); + assertThat(managedWorkflow(createDRSWithTraits(NAME, GarbageCollected.class)).hasCleaner()) + .isFalse(); } @Test void isCleanerShouldWork() { - assertThat(managedWorkflow( - createDRSWithTraits(NAME, GarbageCollected.class), - createDRSWithTraits("foo", Deleter.class)) - .hasCleaner()).isTrue(); - - assertThat(managedWorkflow( - createDRSWithTraits("foo", Deleter.class), - createDRSWithTraits(NAME, GarbageCollected.class)) - .hasCleaner()).isTrue(); + assertThat(managedWorkflow(createDRSWithTraits(NAME, GarbageCollected.class), + createDRSWithTraits("foo", Deleter.class)).hasCleaner()).isTrue(); + + assertThat(managedWorkflow(createDRSWithTraits("foo", Deleter.class), + createDRSWithTraits(NAME, GarbageCollected.class)).hasCleaner()).isTrue(); } @Test @@ -81,8 +77,7 @@ public boolean handleExceptionsInReconciler() { }; when(configuration.getWorkflowSpec()).thenReturn(Optional.of(ws)); - return new BaseConfigurationService().getWorkflowFactory() - .workflowFor(configuration); + return new BaseConfigurationService().getWorkflowFactory().workflowFor(configuration); } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTestUtils.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTestUtils.java index ae0731b8f5..22e9052f80 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTestUtils.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/ManagedWorkflowTestUtils.java @@ -28,8 +28,8 @@ public static DependentResourceSpec createDRSWithTraits(String name, when(spy.getName()).thenReturn(name); Class<? extends DependentResource> toMock = DependentResource.class; - final var garbageCollected = dependentResourceTraits != null && - Arrays.asList(dependentResourceTraits).contains(GarbageCollected.class); + final var garbageCollected = dependentResourceTraits != null + && Arrays.asList(dependentResourceTraits).contains(GarbageCollected.class); if (garbageCollected) { toMock = KubernetesDependentResource.class; } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowBuilderTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowBuilderTest.java index b41ee430f7..85cc277fe6 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowBuilderTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowBuilderTest.java @@ -18,10 +18,8 @@ void workflowIsCleanerIfAtLeastOneDRIsCleaner() { when(deleter.isDeletable()).thenReturn(true); when(deleter.name()).thenReturn("deleter"); - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(deleter) - .addDependentResource(dr) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(deleter) + .addDependentResource(dr).build(); assertThat(workflow.hasCleaner()).isTrue(); } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowCleanupExecutorTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowCleanupExecutorTest.java index 878cec419c..a16a8cb664 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowCleanupExecutorTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowCleanupExecutorTest.java @@ -52,12 +52,9 @@ void setup() { @Test void cleanUpDiamondWorkflow() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dd1) - .addDependentResourceAndConfigure(dr1).dependsOn(dd1) - .addDependentResourceAndConfigure(dd2).dependsOn(dd1) - .addDependentResourceAndConfigure(dd3).dependsOn(dr1, dd2) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dd1) + .addDependentResourceAndConfigure(dr1).dependsOn(dd1).addDependentResourceAndConfigure(dd2) + .dependsOn(dd1).addDependentResourceAndConfigure(dd3).dependsOn(dr1, dd2).build(); var res = workflow.cleanup(new TestCustomResource(), mockContext); @@ -71,17 +68,13 @@ void cleanUpDiamondWorkflow() { @Test void dontDeleteIfDependentErrored() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dd1) - .addDependentResourceAndConfigure(dd2).dependsOn(dd1) - .addDependentResourceAndConfigure(dd3).dependsOn(dd2) - .addDependentResourceAndConfigure(errorDD).dependsOn(dd2) - .withThrowExceptionFurther(false) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dd1) + .addDependentResourceAndConfigure(dd2).dependsOn(dd1).addDependentResourceAndConfigure(dd3) + .dependsOn(dd2).addDependentResourceAndConfigure(errorDD).dependsOn(dd2) + .withThrowExceptionFurther(false).build(); var res = workflow.cleanup(new TestCustomResource(), mockContext); - assertThrows(AggregatedOperatorException.class, - res::throwAggregateExceptionIfErrorsPresent); + assertThrows(AggregatedOperatorException.class, res::throwAggregateExceptionIfErrorsPresent); assertThat(executionHistory).deleted(dd3, errorDD).notReconciled(dd1, dd2); @@ -93,11 +86,9 @@ void dontDeleteIfDependentErrored() { @Test void cleanupConditionTrivialCase() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dd1) + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dd1) .addDependentResourceAndConfigure(dd2).dependsOn(dd1) - .withDeletePostcondition(notMetCondition) - .build(); + .withDeletePostcondition(notMetCondition).build(); var res = workflow.cleanup(new TestCustomResource(), mockContext); @@ -109,8 +100,7 @@ void cleanupConditionTrivialCase() { @Test void cleanupConditionMet() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dd1) + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dd1) .addDependentResourceAndConfigure(dd2).dependsOn(dd1).withDeletePostcondition(metCondition) .build(); @@ -125,19 +115,14 @@ void cleanupConditionMet() { @Test void cleanupConditionDiamondWorkflow() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dd1) - .addDependentResourceAndConfigure(dd2).dependsOn(dd1) - .addDependentResourceAndConfigure(dd3).dependsOn(dd1) - .withDeletePostcondition(notMetCondition) - .addDependentResourceAndConfigure(dd4).dependsOn(dd2, dd3) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dd1) + .addDependentResourceAndConfigure(dd2).dependsOn(dd1).addDependentResourceAndConfigure(dd3) + .dependsOn(dd1).withDeletePostcondition(notMetCondition) + .addDependentResourceAndConfigure(dd4).dependsOn(dd2, dd3).build(); var res = workflow.cleanup(new TestCustomResource(), mockContext); - assertThat(executionHistory) - .reconciledInOrder(dd4, dd2) - .reconciledInOrder(dd4, dd3) + assertThat(executionHistory).reconciledInOrder(dd4, dd2).reconciledInOrder(dd4, dd3) .notReconciled(dr1); Assertions.assertThat(res.getDeleteCalledOnDependents()).containsExactlyInAnyOrder(dd4, dd3, @@ -148,33 +133,26 @@ void cleanupConditionDiamondWorkflow() { @Test void dontDeleteIfGarbageCollected() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(gcDeleter) - .build(); + var workflow = + new WorkflowBuilder<TestCustomResource>().addDependentResource(gcDeleter).build(); var res = workflow.cleanup(new TestCustomResource(), mockContext); - assertThat(executionHistory) - .notReconciled(gcDeleter); + assertThat(executionHistory).notReconciled(gcDeleter); Assertions.assertThat(res.getDeleteCalledOnDependents()).isEmpty(); } @Test void ifDependentActiveDependentNormallyDeleted() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dd1) - .addDependentResourceAndConfigure(dd2).dependsOn(dd1) - .addDependentResourceAndConfigure(dd3).dependsOn(dd1) - .withActivationCondition(metCondition) - .addDependentResourceAndConfigure(dd4).dependsOn(dd2, dd3) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dd1) + .addDependentResourceAndConfigure(dd2).dependsOn(dd1).addDependentResourceAndConfigure(dd3) + .dependsOn(dd1).withActivationCondition(metCondition).addDependentResourceAndConfigure(dd4) + .dependsOn(dd2, dd3).build(); var res = workflow.cleanup(new TestCustomResource(), mockContext); - assertThat(executionHistory) - .reconciledInOrder(dd4, dd2, dd1) - .reconciledInOrder(dd4, dd3, dd1); + assertThat(executionHistory).reconciledInOrder(dd4, dd2, dd1).reconciledInOrder(dd4, dd3, dd1); Assertions.assertThat(res.getDeleteCalledOnDependents()).containsExactlyInAnyOrder(dd4, dd3, dd2, dd1); @@ -182,20 +160,15 @@ void ifDependentActiveDependentNormallyDeleted() { @Test void ifDependentActiveDeletePostConditionIsChecked() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dd1) - .addDependentResourceAndConfigure(dd2).dependsOn(dd1) - .addDependentResourceAndConfigure(dd3).dependsOn(dd1) - .withDeletePostcondition(notMetCondition) - .withActivationCondition(metCondition) - .addDependentResourceAndConfigure(dd4).dependsOn(dd2, dd3) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dd1) + .addDependentResourceAndConfigure(dd2).dependsOn(dd1).addDependentResourceAndConfigure(dd3) + .dependsOn(dd1).withDeletePostcondition(notMetCondition) + .withActivationCondition(metCondition).addDependentResourceAndConfigure(dd4) + .dependsOn(dd2, dd3).build(); var res = workflow.cleanup(new TestCustomResource(), mockContext); - assertThat(executionHistory) - .reconciledInOrder(dd4, dd2) - .reconciledInOrder(dd4, dd3) + assertThat(executionHistory).reconciledInOrder(dd4, dd2).reconciledInOrder(dd4, dd3) .notReconciled(dr1); Assertions.assertThat(res.getDeleteCalledOnDependents()).containsExactlyInAnyOrder(dd4, dd3, @@ -206,48 +179,38 @@ void ifDependentActiveDeletePostConditionIsChecked() { @Test void ifDependentInactiveDeleteIsNotCalled() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dd1) - .addDependentResourceAndConfigure(dd2).dependsOn(dd1) - .addDependentResourceAndConfigure(dd3).dependsOn(dd1) - .withActivationCondition(notMetCondition) - .addDependentResourceAndConfigure(dd4).dependsOn(dd2, dd3) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dd1) + .addDependentResourceAndConfigure(dd2).dependsOn(dd1).addDependentResourceAndConfigure(dd3) + .dependsOn(dd1).withActivationCondition(notMetCondition) + .addDependentResourceAndConfigure(dd4).dependsOn(dd2, dd3).build(); var res = workflow.cleanup(new TestCustomResource(), mockContext); - assertThat(executionHistory) - .reconciledInOrder(dd4, dd2, dd1); + assertThat(executionHistory).reconciledInOrder(dd4, dd2, dd1); - Assertions.assertThat(res.getDeleteCalledOnDependents()).containsExactlyInAnyOrder(dd4, - dd2, dd1); + Assertions.assertThat(res.getDeleteCalledOnDependents()).containsExactlyInAnyOrder(dd4, dd2, + dd1); } @Test void ifDependentInactiveDeletePostConditionNotChecked() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dd1) - .addDependentResourceAndConfigure(dd2).dependsOn(dd1) - .addDependentResourceAndConfigure(dd3).dependsOn(dd1) - .withDeletePostcondition(notMetCondition) - .withActivationCondition(notMetCondition) - .addDependentResourceAndConfigure(dd4).dependsOn(dd2, dd3) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dd1) + .addDependentResourceAndConfigure(dd2).dependsOn(dd1).addDependentResourceAndConfigure(dd3) + .dependsOn(dd1).withDeletePostcondition(notMetCondition) + .withActivationCondition(notMetCondition).addDependentResourceAndConfigure(dd4) + .dependsOn(dd2, dd3).build(); var res = workflow.cleanup(new TestCustomResource(), mockContext); - assertThat(executionHistory) - .reconciledInOrder(dd4, dd2, dd1); + assertThat(executionHistory).reconciledInOrder(dd4, dd2, dd1); Assertions.assertThat(res.getPostConditionNotMetDependents()).isEmpty(); } @Test void singleInactiveDependent() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dd1) - .withActivationCondition(notMetCondition) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dd1) + .withActivationCondition(notMetCondition).build(); workflow.cleanup(new TestCustomResource(), mockContext); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowReconcileExecutorTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowReconcileExecutorTest.java index 0aa93fb0f9..bba97258c0 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowReconcileExecutorTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowReconcileExecutorTest.java @@ -45,10 +45,8 @@ void setup(TestInfo testInfo) { @Test void reconcileTopLevelResources() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) - .addDependentResource(dr2) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) + .addDependentResource(dr2).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); @@ -59,10 +57,8 @@ void reconcileTopLevelResources() { @Test void reconciliationWithSimpleDependsOn() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) - .addDependentResourceAndConfigure(dr2).dependsOn(dr1) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) + .addDependentResourceAndConfigure(dr2).dependsOn(dr1).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); @@ -76,17 +72,14 @@ void reconciliationWithSimpleDependsOn() { @Test void reconciliationWithTwoTheDependsOns() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) - .addDependentResourceAndConfigure(dr2).dependsOn(dr1) - .addDependentResourceAndConfigure(dr3).dependsOn(dr1) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) + .addDependentResourceAndConfigure(dr2).dependsOn(dr1).addDependentResourceAndConfigure(dr3) + .dependsOn(dr1).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); Assertions.assertThat(res.getErroredDependents()).isEmpty(); - assertThat(executionHistory) - .reconciledInOrder(dr1, dr2).reconciledInOrder(dr1, dr3); + assertThat(executionHistory).reconciledInOrder(dr1, dr2).reconciledInOrder(dr1, dr3); Assertions.assertThat(res.getReconciledDependents()).containsExactlyInAnyOrder(dr1, dr2, dr3); Assertions.assertThat(res.getErroredDependents()).isEmpty(); Assertions.assertThat(res.getNotReadyDependents()).isEmpty(); @@ -94,19 +87,14 @@ void reconciliationWithTwoTheDependsOns() { @Test void diamondShareWorkflowReconcile() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) - .addDependentResourceAndConfigure(dr2).dependsOn(dr1) - .addDependentResourceAndConfigure(dr3).dependsOn(dr1) - .addDependentResourceAndConfigure(dr4).dependsOn(dr3).dependsOn(dr2) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) + .addDependentResourceAndConfigure(dr2).dependsOn(dr1).addDependentResourceAndConfigure(dr3) + .dependsOn(dr1).addDependentResourceAndConfigure(dr4).dependsOn(dr3).dependsOn(dr2).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); Assertions.assertThat(res.getErroredDependents()).isEmpty(); - assertThat(executionHistory) - .reconciledInOrder(dr1, dr2, dr4) - .reconciledInOrder(dr1, dr3, dr4); + assertThat(executionHistory).reconciledInOrder(dr1, dr2, dr4).reconciledInOrder(dr1, dr3, dr4); Assertions.assertThat(res.getReconciledDependents()).containsExactlyInAnyOrder(dr1, dr2, dr3, dr4); @@ -116,15 +104,12 @@ void diamondShareWorkflowReconcile() { @Test void exceptionHandlingSimpleCases() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(drError) - .withThrowExceptionFurther(false) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(drError) + .withThrowExceptionFurther(false).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); - assertThrows(AggregatedOperatorException.class, - res::throwAggregateExceptionIfErrorsPresent); + assertThrows(AggregatedOperatorException.class, res::throwAggregateExceptionIfErrorsPresent); assertThat(executionHistory).reconciled(drError); Assertions.assertThat(res.getErroredDependents()).containsOnlyKeys(drError); @@ -134,16 +119,13 @@ void exceptionHandlingSimpleCases() { @Test void dependentsOnErroredResourceNotReconciled() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) .addDependentResourceAndConfigure(drError).dependsOn(dr1) - .addDependentResourceAndConfigure(dr2).dependsOn(drError) - .withThrowExceptionFurther(false) + .addDependentResourceAndConfigure(dr2).dependsOn(drError).withThrowExceptionFurther(false) .build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); - assertThrows(AggregatedOperatorException.class, - res::throwAggregateExceptionIfErrorsPresent); + assertThrows(AggregatedOperatorException.class, res::throwAggregateExceptionIfErrorsPresent); assertThat(executionHistory).reconciled(dr1, drError).notReconciled(dr2); Assertions.assertThat(res.getErroredDependents()).containsOnlyKeys(drError); @@ -154,17 +136,13 @@ void dependentsOnErroredResourceNotReconciled() { @Test void oneBranchErrorsOtherCompletes() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) .addDependentResourceAndConfigure(drError).dependsOn(dr1) - .addDependentResourceAndConfigure(dr2).dependsOn(dr1) - .addDependentResourceAndConfigure(dr3).dependsOn(dr2) - .withThrowExceptionFurther(false) - .build(); + .addDependentResourceAndConfigure(dr2).dependsOn(dr1).addDependentResourceAndConfigure(dr3) + .dependsOn(dr2).withThrowExceptionFurther(false).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); - assertThrows(AggregatedOperatorException.class, - res::throwAggregateExceptionIfErrorsPresent); + assertThrows(AggregatedOperatorException.class, res::throwAggregateExceptionIfErrorsPresent); assertThat(executionHistory).reconciledInOrder(dr1, dr2, dr3).reconciledInOrder(dr1, drError); Assertions.assertThat(res.getErroredDependents()).containsOnlyKeys(drError); @@ -174,16 +152,12 @@ void oneBranchErrorsOtherCompletes() { @Test void onlyOneDependsOnErroredResourceNotReconciled() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) - .addDependentResource(drError) - .addDependentResourceAndConfigure(dr2).dependsOn(drError, dr1) - .withThrowExceptionFurther(false) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) + .addDependentResource(drError).addDependentResourceAndConfigure(dr2).dependsOn(drError, dr1) + .withThrowExceptionFurther(false).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); - assertThrows(AggregatedOperatorException.class, - res::throwAggregateExceptionIfErrorsPresent); + assertThrows(AggregatedOperatorException.class, res::throwAggregateExceptionIfErrorsPresent); assertThat(executionHistory).notReconciled(dr2); Assertions.assertThat(res.getErroredDependents()).containsKey(drError); @@ -203,11 +177,10 @@ public Result<String> detailedIsMet( } }; - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1).withReconcilePrecondition(unmetWithResult) - .addDependentResourceAndConfigure(dr2).withReconcilePrecondition(metCondition) - .addDependentResourceAndConfigure(drDeleter).withReconcilePrecondition(notMetCondition) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withReconcilePrecondition(unmetWithResult).addDependentResourceAndConfigure(dr2) + .withReconcilePrecondition(metCondition).addDependentResourceAndConfigure(drDeleter) + .withReconcilePrecondition(notMetCondition).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); @@ -222,12 +195,10 @@ public Result<String> detailedIsMet( @Test void triangleOnceConditionNotMet() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) .addDependentResourceAndConfigure(dr2).dependsOn(dr1) .addDependentResourceAndConfigure(drDeleter).withReconcilePrecondition(notMetCondition) - .dependsOn(dr1) - .build(); + .dependsOn(dr1).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); @@ -241,15 +212,12 @@ void triangleOnceConditionNotMet() { void reconcileConditionTransitiveDelete() { TestDeleterDependent drDeleter2 = new TestDeleterDependent("DR_DELETER_2"); - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) .addDependentResourceAndConfigure(dr2).dependsOn(dr1) - .withReconcilePrecondition(notMetCondition) - .addDependentResourceAndConfigure(drDeleter).dependsOn(dr2) - .withReconcilePrecondition(metCondition) + .withReconcilePrecondition(notMetCondition).addDependentResourceAndConfigure(drDeleter) + .dependsOn(dr2).withReconcilePrecondition(metCondition) .addDependentResourceAndConfigure(drDeleter2).dependsOn(drDeleter) - .withReconcilePrecondition(metCondition) - .build(); + .withReconcilePrecondition(metCondition).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); @@ -267,21 +235,15 @@ void reconcileConditionTransitiveDelete() { void reconcileConditionAlsoErrorDependsOn() { TestDeleterDependent drDeleter2 = new TestDeleterDependent("DR_DELETER_2"); - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(drError) + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(drError) .addDependentResourceAndConfigure(drDeleter).withReconcilePrecondition(notMetCondition) .addDependentResourceAndConfigure(drDeleter2).dependsOn(drError, drDeleter) - .withReconcilePrecondition(metCondition) - .withThrowExceptionFurther(false) - .build(); + .withReconcilePrecondition(metCondition).withThrowExceptionFurther(false).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); - assertThrows(AggregatedOperatorException.class, - res::throwAggregateExceptionIfErrorsPresent); + assertThrows(AggregatedOperatorException.class, res::throwAggregateExceptionIfErrorsPresent); - assertThat(executionHistory) - .deleted(drDeleter2, drDeleter) - .reconciled(drError); + assertThat(executionHistory).deleted(drDeleter2, drDeleter).reconciled(drError); Assertions.assertThat(res.getErroredDependents()).containsOnlyKeys(drError); Assertions.assertThat(res.getReconciledDependents()).isEmpty(); @@ -290,11 +252,9 @@ void reconcileConditionAlsoErrorDependsOn() { @Test void oneDependsOnConditionNotMet() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) .addDependentResourceAndConfigure(dr2).withReconcilePrecondition(notMetCondition) - .addDependentResourceAndConfigure(drDeleter).dependsOn(dr1, dr2) - .build(); + .addDependentResourceAndConfigure(drDeleter).dependsOn(dr1, dr2).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); @@ -309,18 +269,15 @@ void oneDependsOnConditionNotMet() { @Test void deletedIfReconcileConditionNotMet() { TestDeleterDependent drDeleter2 = new TestDeleterDependent("DR_DELETER_2"); - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) .addDependentResourceAndConfigure(drDeleter).dependsOn(dr1) - .withReconcilePrecondition(notMetCondition) - .addDependentResourceAndConfigure(drDeleter2).dependsOn(dr1, drDeleter) - .build(); + .withReconcilePrecondition(notMetCondition).addDependentResourceAndConfigure(drDeleter2) + .dependsOn(dr1, drDeleter).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); - assertThat(executionHistory) - .reconciledInOrder(dr1, drDeleter2, drDeleter) - .deleted(drDeleter2, drDeleter); + assertThat(executionHistory).reconciledInOrder(dr1, drDeleter2, drDeleter).deleted(drDeleter2, + drDeleter); Assertions.assertThat(res.getErroredDependents()).isEmpty(); Assertions.assertThat(res.getReconciledDependents()).containsExactlyInAnyOrder(dr1); @@ -333,19 +290,15 @@ void deleteDoneInReverseOrder() { TestDeleterDependent drDeleter3 = new TestDeleterDependent("DR_DELETER_3"); TestDeleterDependent drDeleter4 = new TestDeleterDependent("DR_DELETER_4"); - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) .addDependentResourceAndConfigure(drDeleter).withReconcilePrecondition(notMetCondition) - .dependsOn(dr1) - .addDependentResourceAndConfigure(drDeleter2).dependsOn(drDeleter) + .dependsOn(dr1).addDependentResourceAndConfigure(drDeleter2).dependsOn(drDeleter) .addDependentResourceAndConfigure(drDeleter3).dependsOn(drDeleter) - .addDependentResourceAndConfigure(drDeleter4).dependsOn(drDeleter3) - .build(); + .addDependentResourceAndConfigure(drDeleter4).dependsOn(drDeleter3).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); - assertThat(executionHistory) - .reconciledInOrder(dr1, drDeleter4, drDeleter3, drDeleter) + assertThat(executionHistory).reconciledInOrder(dr1, drDeleter4, drDeleter3, drDeleter) .reconciledInOrder(dr1, drDeleter2, drDeleter) .deleted(drDeleter, drDeleter2, drDeleter3, drDeleter4); @@ -360,18 +313,16 @@ void diamondDeleteWithPostConditionInMiddle() { TestDeleterDependent drDeleter3 = new TestDeleterDependent("DR_DELETER_3"); TestDeleterDependent drDeleter4 = new TestDeleterDependent("DR_DELETER_4"); - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(drDeleter).withReconcilePrecondition(notMetCondition) - .addDependentResourceAndConfigure(drDeleter2).dependsOn(drDeleter) - .addDependentResourceAndConfigure(drDeleter3).dependsOn(drDeleter) - .withDeletePostcondition(this.notMetCondition) - .addDependentResourceAndConfigure(drDeleter4).dependsOn(drDeleter3, drDeleter2) - .build(); + var workflow = + new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(drDeleter) + .withReconcilePrecondition(notMetCondition).addDependentResourceAndConfigure(drDeleter2) + .dependsOn(drDeleter).addDependentResourceAndConfigure(drDeleter3).dependsOn(drDeleter) + .withDeletePostcondition(this.notMetCondition) + .addDependentResourceAndConfigure(drDeleter4).dependsOn(drDeleter3, drDeleter2).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); - assertThat(executionHistory).notReconciled(drDeleter) - .reconciledInOrder(drDeleter4, drDeleter2) + assertThat(executionHistory).notReconciled(drDeleter).reconciledInOrder(drDeleter4, drDeleter2) .reconciledInOrder(drDeleter4, drDeleter3); Assertions.assertThat(res.getErroredDependents()).isEmpty(); @@ -384,19 +335,17 @@ void diamondDeleteErrorInMiddle() { TestDeleterDependent drDeleter2 = new TestDeleterDependent("DR_DELETER_2"); TestDeleterDependent drDeleter3 = new TestDeleterDependent("DR_DELETER_3"); - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(drDeleter).withReconcilePrecondition(notMetCondition) - .addDependentResourceAndConfigure(drDeleter2).dependsOn(drDeleter) - .addDependentResourceAndConfigure(errorDD).dependsOn(drDeleter) - .addDependentResourceAndConfigure(drDeleter3).dependsOn(errorDD, drDeleter2) - .withThrowExceptionFurther(false) - .build(); + var workflow = + new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(drDeleter) + .withReconcilePrecondition(notMetCondition).addDependentResourceAndConfigure(drDeleter2) + .dependsOn(drDeleter).addDependentResourceAndConfigure(errorDD).dependsOn(drDeleter) + .addDependentResourceAndConfigure(drDeleter3).dependsOn(errorDD, drDeleter2) + .withThrowExceptionFurther(false).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); - assertThat(executionHistory) - .notReconciled(drDeleter, drError) - .reconciledInOrder(drDeleter3, drDeleter2); + assertThat(executionHistory).notReconciled(drDeleter, drError).reconciledInOrder(drDeleter3, + drDeleter2); Assertions.assertThat(res.getErroredDependents()).containsOnlyKeys(errorDD); Assertions.assertThat(res.getReconciledDependents()).isEmpty(); @@ -405,9 +354,8 @@ void diamondDeleteErrorInMiddle() { @Test void readyConditionTrivialCase() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1).withReadyPostcondition(metCondition) - .addDependentResourceAndConfigure(dr2).dependsOn(dr1) + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withReadyPostcondition(metCondition).addDependentResourceAndConfigure(dr2).dependsOn(dr1) .build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); @@ -421,10 +369,9 @@ void readyConditionTrivialCase() { @Test void readyConditionNotMetTrivialCase() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1).withReadyPostcondition(notMetCondition) - .addDependentResourceAndConfigure(dr2).dependsOn(dr1) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withReadyPostcondition(notMetCondition).addDependentResourceAndConfigure(dr2) + .dependsOn(dr1).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); @@ -439,11 +386,9 @@ void readyConditionNotMetTrivialCase() { @Test void readyConditionNotMetInOneParent() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1).withReadyPostcondition(notMetCondition) - .addDependentResource(dr2) - .addDependentResourceAndConfigure(dr3).dependsOn(dr1, dr2) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withReadyPostcondition(notMetCondition).addDependentResource(dr2) + .addDependentResourceAndConfigure(dr3).dependsOn(dr1, dr2).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); @@ -455,20 +400,15 @@ void readyConditionNotMetInOneParent() { @Test void diamondShareWithReadyCondition() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(dr1) - .addDependentResourceAndConfigure(dr2) - .dependsOn(dr1) - .withReadyPostcondition(notMetCondition) - .addDependentResourceAndConfigure(dr3).dependsOn(dr1) - .addDependentResourceAndConfigure(dr4).dependsOn(dr2, dr3) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(dr1) + .addDependentResourceAndConfigure(dr2).dependsOn(dr1) + .withReadyPostcondition(notMetCondition).addDependentResourceAndConfigure(dr3) + .dependsOn(dr1).addDependentResourceAndConfigure(dr4).dependsOn(dr2, dr3).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); Assertions.assertThat(res.getErroredDependents()).isEmpty(); - assertThat(executionHistory).reconciledInOrder(dr1, dr2) - .reconciledInOrder(dr1, dr3) + assertThat(executionHistory).reconciledInOrder(dr1, dr2).reconciledInOrder(dr1, dr3) .notReconciled(dr4); Assertions.assertThat(res.getErroredDependents()).isEmpty(); @@ -478,9 +418,9 @@ void diamondShareWithReadyCondition() { @Test void garbageCollectedResourceIsDeletedIfReconcilePreconditionDoesNotHold() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(gcDeleter).withReconcilePrecondition(notMetCondition) - .build(); + var workflow = + new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(gcDeleter) + .withReconcilePrecondition(notMetCondition).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); @@ -490,10 +430,9 @@ void garbageCollectedResourceIsDeletedIfReconcilePreconditionDoesNotHold() { @Test void garbageCollectedDeepResourceIsDeletedIfReconcilePreconditionDoesNotHold() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1).withReconcilePrecondition(notMetCondition) - .addDependentResourceAndConfigure(gcDeleter).dependsOn(dr1) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withReconcilePrecondition(notMetCondition).addDependentResourceAndConfigure(gcDeleter) + .dependsOn(dr1).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); @@ -503,11 +442,8 @@ void garbageCollectedDeepResourceIsDeletedIfReconcilePreconditionDoesNotHold() { @Test void notReconciledIfActivationConditionNotMet() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1) - .withActivationCondition(notMetCondition) - .addDependentResource(dr2) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withActivationCondition(notMetCondition).addDependentResource(dr2).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); assertThat(executionHistory).reconciled(dr2).notReconciled(dr1); @@ -517,12 +453,9 @@ void notReconciledIfActivationConditionNotMet() { @Test void dependentsOnANonActiveDependentNotReconciled() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1) - .withActivationCondition(notMetCondition) - .addDependentResource(dr2) - .addDependentResourceAndConfigure(dr3).dependsOn(dr1) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withActivationCondition(notMetCondition).addDependentResource(dr2) + .addDependentResourceAndConfigure(dr3).dependsOn(dr1).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); assertThat(executionHistory).reconciled(dr2).notReconciled(dr1, dr3); @@ -532,13 +465,9 @@ void dependentsOnANonActiveDependentNotReconciled() { @Test void readyConditionNotCheckedOnNonActiveDependent() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1) - .withActivationCondition(notMetCondition) - .withReadyPostcondition(notMetCondition) - .addDependentResource(dr2) - .addDependentResourceAndConfigure(dr3).dependsOn(dr1) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withActivationCondition(notMetCondition).withReadyPostcondition(notMetCondition) + .addDependentResource(dr2).addDependentResourceAndConfigure(dr3).dependsOn(dr1).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); @@ -550,11 +479,8 @@ void readyConditionNotCheckedOnNonActiveDependent() { void reconcilePreconditionNotCheckedOnNonActiveDependent() { var precondition = mock(Condition.class); - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1) - .withActivationCondition(notMetCondition) - .withReconcilePrecondition(precondition) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withActivationCondition(notMetCondition).withReconcilePrecondition(precondition).build(); workflow.reconcile(new TestCustomResource(), mockContext); @@ -566,20 +492,16 @@ void deletesDependentsOfNonActiveDependentButNotTheNonActive() { TestDeleterDependent drDeleter2 = new TestDeleterDependent("DR_DELETER_2"); TestDeleterDependent drDeleter3 = new TestDeleterDependent("DR_DELETER_3"); - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1).withActivationCondition(notMetCondition) - .addDependentResourceAndConfigure(drDeleter).dependsOn(dr1) - .addDependentResourceAndConfigure(drDeleter2).dependsOn(drDeleter) - .withActivationCondition(notMetCondition) - .addDependentResourceAndConfigure(drDeleter3).dependsOn(drDeleter2) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withActivationCondition(notMetCondition).addDependentResourceAndConfigure(drDeleter) + .dependsOn(dr1).addDependentResourceAndConfigure(drDeleter2).dependsOn(drDeleter) + .withActivationCondition(notMetCondition).addDependentResourceAndConfigure(drDeleter3) + .dependsOn(drDeleter2).build(); var res = workflow.reconcile(new TestCustomResource(), mockContext); Assertions.assertThat(res.getReconciledDependents()).isEmpty(); - assertThat(executionHistory).deleted(drDeleter, drDeleter3) - .notReconciled(dr1, - drDeleter2); + assertThat(executionHistory).deleted(drDeleter, drDeleter3).notReconciled(dr1, drDeleter2); } @Test @@ -591,8 +513,7 @@ void activationConditionOnlyCalledOnceOnDeleteDependents() { var workflow = new WorkflowBuilder<TestCustomResource>() .addDependentResourceAndConfigure(drDeleter).withActivationCondition(condition) - .addDependentResourceAndConfigure(drDeleter2).dependsOn(drDeleter) - .build(); + .addDependentResourceAndConfigure(drDeleter2).dependsOn(drDeleter).build(); workflow.reconcile(new TestCustomResource(), mockContext); @@ -621,10 +542,8 @@ public boolean isSuccess() { }; } }; - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1) - .withReadyPostcondition(resultCondition) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withReadyPostcondition(resultCondition).build(); final var reconcileResult = workflow.reconcile(new TestCustomResource(), mockContext); assertEquals(result, @@ -651,10 +570,8 @@ public boolean isSuccess() { }; } }; - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1) - .withReadyPostcondition(resultCondition) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withReadyPostcondition(resultCondition).build(); final var reconcileResult = workflow.reconcile(new TestCustomResource(), mockContext); final var expectedResultType = Integer.class; @@ -668,10 +585,8 @@ public boolean isSuccess() { @Test void shouldReturnEmptyIfNoConditionResultExists() { - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1) - .withReadyPostcondition(notMetCondition) - .build(); + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResourceAndConfigure(dr1) + .withReadyPostcondition(notMetCondition).build(); final var reconcileResult = workflow.reconcile(new TestCustomResource(), mockContext); assertTrue(reconcileResult.getNotReadyDependentResult(dr1, Integer.class).isEmpty()); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowTest.java index 6d268082f5..498ed2b6af 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowTest.java @@ -27,13 +27,11 @@ void zeroTopLevelDRShouldThrowException() { var dr3 = mockDependent("dr3"); var cyclicWorkflowBuilderSetup = new WorkflowBuilder<TestCustomResource>() - .addDependentResourceAndConfigure(dr1).dependsOn() - .addDependentResourceAndConfigure(dr2).dependsOn(dr1) - .addDependentResourceAndConfigure(dr3).dependsOn(dr2) + .addDependentResourceAndConfigure(dr1).dependsOn().addDependentResourceAndConfigure(dr2) + .dependsOn(dr1).addDependentResourceAndConfigure(dr3).dependsOn(dr2) .addDependentResourceAndConfigure(dr1).dependsOn(dr2); - assertThrows(IllegalStateException.class, - cyclicWorkflowBuilderSetup::build); + assertThrows(IllegalStateException.class, cyclicWorkflowBuilderSetup::build); } @Test @@ -42,16 +40,12 @@ void calculatesTopLevelResources() { var dr2 = mockDependent("dr2"); var independentDR = mockDependent("independentDR"); - var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(independentDR) - .addDependentResource(dr1) - .addDependentResourceAndConfigure(dr2).dependsOn(dr1) + var workflow = new WorkflowBuilder<TestCustomResource>().addDependentResource(independentDR) + .addDependentResource(dr1).addDependentResourceAndConfigure(dr2).dependsOn(dr1) .buildAsDefaultWorkflow(); - Set<DependentResource> topResources = - workflow.getTopLevelDependentResources().stream() - .map(DependentResourceNode::getDependentResource) - .collect(Collectors.toSet()); + Set<DependentResource> topResources = workflow.getTopLevelDependentResources().stream() + .map(DependentResourceNode::getDependentResource).collect(Collectors.toSet()); assertThat(topResources).containsExactlyInAnyOrder(dr1, independentDR); } @@ -63,15 +57,11 @@ void calculatesBottomLevelResources() { var independentDR = mockDependent("independentDR"); final var workflow = new WorkflowBuilder<TestCustomResource>() - .addDependentResource(independentDR) - .addDependentResource(dr1) - .addDependentResourceAndConfigure(dr2).dependsOn(dr1) - .buildAsDefaultWorkflow(); + .addDependentResource(independentDR).addDependentResource(dr1) + .addDependentResourceAndConfigure(dr2).dependsOn(dr1).buildAsDefaultWorkflow(); - Set<DependentResource> bottomResources = - workflow.getBottomLevelDependentResources().stream() - .map(DependentResourceNode::getDependentResource) - .collect(Collectors.toSet()); + Set<DependentResource> bottomResources = workflow.getBottomLevelDependentResources().stream() + .map(DependentResourceNode::getDependentResource).collect(Collectors.toSet()); assertThat(bottomResources).containsExactlyInAnyOrder(dr2, independentDR); } @@ -91,8 +81,8 @@ void isDeletableShouldWork() { dr = mock(KubernetesDependentResource.class, withSettings().extraInterfaces(Deleter.class)); assertTrue(DefaultWorkflow.isDeletable(dr.getClass())); - dr = mock(KubernetesDependentResource.class, withSettings().extraInterfaces(Deleter.class, - GarbageCollected.class)); + dr = mock(KubernetesDependentResource.class, + withSettings().extraInterfaces(Deleter.class, GarbageCollected.class)); assertFalse(DefaultWorkflow.isDeletable(dr.getClass())); } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventProcessorTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventProcessorTest.java index 9f7e390c0a..eaf5923296 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventProcessorTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventProcessorTest.java @@ -66,8 +66,7 @@ class EventProcessorTest { mock(ReconciliationDispatcher.class); private final EventSourceManager eventSourceManagerMock = mock(EventSourceManager.class); private final TimerEventSource retryTimerEventSourceMock = mock(TimerEventSource.class); - private final ControllerEventSource controllerEventSourceMock = - mock(ControllerEventSource.class); + private final ControllerEventSource controllerEventSourceMock = mock(ControllerEventSource.class); private final Metrics metricsMock = mock(Metrics.class); private EventProcessor eventProcessor; private EventProcessor eventProcessorWithRetry; @@ -75,18 +74,13 @@ class EventProcessorTest { @BeforeEach void setup() { - when(eventSourceManagerMock.getControllerEventSource()) - .thenReturn(controllerEventSourceMock); - eventProcessor = - spy(new EventProcessor(controllerConfiguration(null, rateLimiterMock), - reconciliationDispatcherMock, - eventSourceManagerMock, null)); + when(eventSourceManagerMock.getControllerEventSource()).thenReturn(controllerEventSourceMock); + eventProcessor = spy(new EventProcessor(controllerConfiguration(null, rateLimiterMock), + reconciliationDispatcherMock, eventSourceManagerMock, null)); eventProcessor.start(); - eventProcessorWithRetry = - spy(new EventProcessor( - controllerConfiguration(GenericRetry.defaultLimitedExponentialRetry(), - rateLimiterMock), - reconciliationDispatcherMock, eventSourceManagerMock, null)); + eventProcessorWithRetry = spy(new EventProcessor( + controllerConfiguration(GenericRetry.defaultLimitedExponentialRetry(), rateLimiterMock), + reconciliationDispatcherMock, eventSourceManagerMock, null)); eventProcessorWithRetry.start(); when(eventProcessor.retryEventSource()).thenReturn(retryTimerEventSourceMock); when(eventProcessorWithRetry.retryEventSource()).thenReturn(retryTimerEventSourceMock); @@ -125,17 +119,15 @@ void ifExecutionInProgressWaitsUntilItsFinished() { void schedulesAnEventRetryOnException() { TestCustomResource customResource = testCustomResource(); - ExecutionScope executionScope = - new ExecutionScope(null); + ExecutionScope executionScope = new ExecutionScope(null); executionScope.setResource(customResource); PostExecutionControl postExecutionControl = PostExecutionControl.exceptionDuringExecution(new RuntimeException("test")); eventProcessorWithRetry.eventProcessingFinished(executionScope, postExecutionControl); - verify(retryTimerEventSourceMock, times(1)) - .scheduleOnce(eq(ResourceID.fromResource(customResource)), - eq(GradualRetry.DEFAULT_INITIAL_INTERVAL)); + verify(retryTimerEventSourceMock, times(1)).scheduleOnce( + eq(ResourceID.fromResource(customResource)), eq(GradualRetry.DEFAULT_INITIAL_INTERVAL)); } @Test @@ -151,8 +143,7 @@ void executesTheControllerInstantlyAfterErrorIfNewEventsReceived() { // avoid to process the first event before the second submitted Thread.sleep(50); return postExecutionControl; - }) - .thenReturn(PostExecutionControl.defaultDispatch()); + }).thenReturn(PostExecutionControl.defaultDispatch()); // start processing an event eventProcessorWithRetry.handleEvent(event); @@ -165,9 +156,8 @@ void executesTheControllerInstantlyAfterErrorIfNewEventsReceived() { .handleExecution(executionScopeArgumentCaptor.capture()); List<ExecutionScope> allValues = executionScopeArgumentCaptor.getAllValues(); assertThat(allValues).hasSize(2); - verify(retryTimerEventSourceMock, never()) - .scheduleOnce(eq(ResourceID.fromResource(customResource)), - eq(GradualRetry.DEFAULT_INITIAL_INTERVAL)); + verify(retryTimerEventSourceMock, never()).scheduleOnce( + eq(ResourceID.fromResource(customResource)), eq(GradualRetry.DEFAULT_INITIAL_INTERVAL)); } @Test @@ -182,8 +172,7 @@ void successfulExecutionResetsTheRetry() { PostExecutionControl defaultDispatchControl = PostExecutionControl.defaultDispatch(); when(reconciliationDispatcherMock.handleExecution(any())) - .thenReturn(postExecutionControlWithException) - .thenReturn(defaultDispatchControl); + .thenReturn(postExecutionControlWithException).thenReturn(defaultDispatchControl); ArgumentCaptor<ExecutionScope> executionScopeArgumentCaptor = ArgumentCaptor.forClass(ExecutionScope.class); @@ -270,13 +259,10 @@ void cancelScheduleOnceEventsOnSuccessfulExecution() { @Test void startProcessedMarkedEventReceivedBefore() { var crID = new ResourceID("test-cr", TEST_NAMESPACE); - eventProcessor = - spy(new EventProcessor(controllerConfiguration(null, - LinearRateLimiter.deactivatedRateLimiter()), reconciliationDispatcherMock, - eventSourceManagerMock, - metricsMock)); - when(controllerEventSourceMock.get(eq(crID))) - .thenReturn(Optional.of(testCustomResource())); + eventProcessor = spy(new EventProcessor( + controllerConfiguration(null, LinearRateLimiter.deactivatedRateLimiter()), + reconciliationDispatcherMock, eventSourceManagerMock, metricsMock)); + when(controllerEventSourceMock.get(eq(crID))).thenReturn(Optional.of(testCustomResource())); eventProcessor.handleEvent(new Event(crID)); verify(reconciliationDispatcherMock, timeout(100).times(0)).handleExecution(any()); @@ -290,23 +276,20 @@ void startProcessedMarkedEventReceivedBefore() { @Test void notUpdatesEventSourceHandlerIfResourceUpdated() { TestCustomResource customResource = testCustomResource(); - ExecutionScope executionScope = - new ExecutionScope(null).setResource(customResource); + ExecutionScope executionScope = new ExecutionScope(null).setResource(customResource); PostExecutionControl postExecutionControl = PostExecutionControl.customResourceStatusPatched(customResource); eventProcessorWithRetry.eventProcessingFinished(executionScope, postExecutionControl); - verify(controllerEventSourceMock, times(0)).handleRecentResourceUpdate(any(), any(), - any()); + verify(controllerEventSourceMock, times(0)).handleRecentResourceUpdate(any(), any(), any()); } @Test void notReschedulesAfterTheFinalizerRemoveProcessed() { TestCustomResource customResource = testCustomResource(); markForDeletion(customResource); - ExecutionScope executionScope = - new ExecutionScope(null).setResource(customResource); + ExecutionScope executionScope = new ExecutionScope(null).setResource(customResource); PostExecutionControl postExecutionControl = PostExecutionControl.customResourceFinalizerRemoved(customResource); @@ -319,8 +302,7 @@ void notReschedulesAfterTheFinalizerRemoveProcessed() { void skipEventProcessingIfFinalizerRemoveProcessed() { TestCustomResource customResource = testCustomResource(); markForDeletion(customResource); - ExecutionScope executionScope = - new ExecutionScope(null).setResource(customResource); + ExecutionScope executionScope = new ExecutionScope(null).setResource(customResource); PostExecutionControl postExecutionControl = PostExecutionControl.customResourceFinalizerRemoved(customResource); @@ -337,8 +319,7 @@ void skipEventProcessingIfFinalizerRemoveProcessed() { void newResourceAfterMissedDeleteEvent() { TestCustomResource customResource = testCustomResource(); markForDeletion(customResource); - ExecutionScope executionScope = - new ExecutionScope(null).setResource(customResource); + ExecutionScope executionScope = new ExecutionScope(null).setResource(customResource); PostExecutionControl postExecutionControl = PostExecutionControl.customResourceFinalizerRemoved(customResource); var newResource = testCustomResource(); @@ -358,8 +339,7 @@ void rateLimitsReconciliationSubmission() { final var rateLimit = new RateLimitState() {}; when(rateLimiterMock.initState()).thenReturn(rateLimit); - when(rateLimiterMock.isLimited(rateLimit)) - .thenReturn(Optional.empty()) + when(rateLimiterMock.isLimited(rateLimit)).thenReturn(Optional.empty()) .thenReturn(Optional.of(refreshPeriod)); eventProcessor.handleEvent(event); @@ -374,10 +354,8 @@ void rateLimitsReconciliationSubmission() { @Test void schedulesRetryForMarReconciliationInterval() { TestCustomResource customResource = testCustomResource(); - ExecutionScope executionScope = - new ExecutionScope(null).setResource(customResource); - PostExecutionControl postExecutionControl = - PostExecutionControl.defaultDispatch(); + ExecutionScope executionScope = new ExecutionScope(null).setResource(customResource); + PostExecutionControl postExecutionControl = PostExecutionControl.defaultDispatch(); eventProcessorWithRetry.eventProcessingFinished(executionScope, postExecutionControl); @@ -390,14 +368,11 @@ void schedulesRetryForMarReconciliationIntervalIfRetryExhausted() { when(mockRetryExecution.nextDelay()).thenReturn(Optional.empty()); Retry retry = mock(Retry.class); when(retry.initExecution()).thenReturn(mockRetryExecution); - eventProcessorWithRetry = - spy(new EventProcessor(controllerConfiguration(retry, - LinearRateLimiter.deactivatedRateLimiter()), reconciliationDispatcherMock, - eventSourceManagerMock, - metricsMock)); + eventProcessorWithRetry = spy(new EventProcessor( + controllerConfiguration(retry, LinearRateLimiter.deactivatedRateLimiter()), + reconciliationDispatcherMock, eventSourceManagerMock, metricsMock)); eventProcessorWithRetry.start(); - ExecutionScope executionScope = - new ExecutionScope(null).setResource(testCustomResource()); + ExecutionScope executionScope = new ExecutionScope(null).setResource(testCustomResource()); PostExecutionControl postExecutionControl = PostExecutionControl.exceptionDuringExecution(new RuntimeException()); when(eventProcessorWithRetry.retryEventSource()).thenReturn(retryTimerEventSourceMock); @@ -415,35 +390,30 @@ void executionOfReconciliationShouldNotStartIfProcessorStopped() throws Interrup return PostExecutionControl.defaultDispatch(); }); - final var configurationService = ConfigurationService.newOverriddenConfigurationService( - new BaseConfigurationService(), - o -> { + final var configurationService = ConfigurationService + .newOverriddenConfigurationService(new BaseConfigurationService(), o -> { o.withConcurrentReconciliationThreads(1); }); eventProcessor = - spy(new EventProcessor(controllerConfiguration(null, rateLimiterMock, configurationService), - reconciliationDispatcherMock, - eventSourceManagerMock, null)); + spy(new EventProcessor(controllerConfiguration(null, rateLimiterMock, configurationService), + reconciliationDispatcherMock, eventSourceManagerMock, null)); eventProcessor.start(); - eventProcessor.handleEvent(prepareCREvent(new ResourceID("test1","default"))); - eventProcessor.handleEvent(prepareCREvent(new ResourceID("test1","default"))); + eventProcessor.handleEvent(prepareCREvent(new ResourceID("test1", "default"))); + eventProcessor.handleEvent(prepareCREvent(new ResourceID("test1", "default"))); eventProcessor.stop(); // wait until both event should be handled Thread.sleep(TIME_TO_WAIT_AFTER_SUBMISSION_BEFORE_EXECUTION + 2 * DISPATCHING_DELAY); - verify(reconciliationDispatcherMock, atMostOnce()) - .handleExecution(any()); + verify(reconciliationDispatcherMock, atMostOnce()).handleExecution(any()); } @Test void cleansUpForDeleteEventEvenIfProcessorNotStarted() { ResourceID resourceID = new ResourceID("test1", "default"); - eventProcessor = - spy(new EventProcessor(controllerConfiguration(null, rateLimiterMock), - reconciliationDispatcherMock, - eventSourceManagerMock, null)); + eventProcessor = spy(new EventProcessor(controllerConfiguration(null, rateLimiterMock), + reconciliationDispatcherMock, eventSourceManagerMock, null)); eventProcessor.handleEvent(prepareCREvent(resourceID)); eventProcessor.handleEvent(new ResourceEvent(ResourceAction.DELETED, resourceID, null)); @@ -453,11 +423,10 @@ void cleansUpForDeleteEventEvenIfProcessorNotStarted() { private ResourceID eventAlreadyUnderProcessing() { when(reconciliationDispatcherMock.handleExecution(any())) - .then( - (Answer<PostExecutionControl>) invocationOnMock -> { - Thread.sleep(FAKE_CONTROLLER_EXECUTION_DURATION); - return PostExecutionControl.defaultDispatch(); - }); + .then((Answer<PostExecutionControl>) invocationOnMock -> { + Thread.sleep(FAKE_CONTROLLER_EXECUTION_DURATION); + return PostExecutionControl.defaultDispatch(); + }); Event event = prepareCREvent(); eventProcessor.handleEvent(event); return event.getRelatedCustomResourceID(); @@ -470,16 +439,15 @@ private ResourceEvent prepareCREvent() { private ResourceEvent prepareCREvent(HasMetadata hasMetadata) { when(controllerEventSourceMock.get(eq(ResourceID.fromResource(hasMetadata)))) .thenReturn(Optional.of(hasMetadata)); - return new ResourceEvent(ResourceAction.UPDATED, - ResourceID.fromResource(hasMetadata), hasMetadata); + return new ResourceEvent(ResourceAction.UPDATED, ResourceID.fromResource(hasMetadata), + hasMetadata); } private ResourceEvent prepareCREvent(ResourceID resourceID) { TestCustomResource customResource = testCustomResource(resourceID); - when(controllerEventSourceMock.get(eq(resourceID))) - .thenReturn(Optional.of(customResource)); - return new ResourceEvent(ResourceAction.UPDATED, - ResourceID.fromResource(customResource), customResource); + when(controllerEventSourceMock.get(eq(resourceID))).thenReturn(Optional.of(customResource)); + return new ResourceEvent(ResourceAction.UPDATED, ResourceID.fromResource(customResource), + customResource); } private Event nonCREvent(ResourceID relatedCustomResourceUid) { diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventSourceManagerTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventSourceManagerTest.java index 9ddb877f07..8646e45605 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventSourceManagerTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventSourceManagerTest.java @@ -119,8 +119,8 @@ void notPossibleAddEventSourcesForSameName() { when(eventSource.name()).thenReturn(name); final var source = eventSource; - final var exception = assertThrows(OperatorException.class, - () -> manager.registerEventSource(source)); + final var exception = + assertThrows(OperatorException.class, () -> manager.registerEventSource(source)); final var cause = exception.getCause(); assertInstanceOf(IllegalArgumentException.class, cause); assertThat(cause.getMessage()).contains("is already registered with name"); @@ -146,10 +146,8 @@ void retrievingAnEventSourceWhenMultipleAreRegisteredForATypeShouldRequireAQuali assertTrue(exception.getMessage().contains("name1")); assertTrue(exception.getMessage().contains("name2")); - assertEquals(manager.getEventSourceFor(TestCustomResource.class, "name2"), - eventSource2); - assertEquals(manager.getEventSourceFor(TestCustomResource.class, "name1"), - eventSource); + assertEquals(manager.getEventSourceFor(TestCustomResource.class, "name2"), eventSource2); + assertEquals(manager.getEventSourceFor(TestCustomResource.class, "name1"), eventSource); } @Test diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventSourcesTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventSourcesTest.java index 12f0cc7331..09ba52ee68 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventSourcesTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventSourcesTest.java @@ -65,9 +65,8 @@ void eventSourcesStreamShouldNotReturnControllerEventSource() { eventSources.add(source); - assertThat(eventSources.additionalEventSources()).containsExactly( - eventSources.retryEventSource(), - source); + assertThat(eventSources.additionalEventSources()) + .containsExactly(eventSources.retryEventSource(), source); } @Test @@ -79,8 +78,8 @@ void additionalEventSourcesShouldNotContainNamedEventSources() { eventSources.add(source); - assertThat(eventSources.additionalEventSources()).containsExactly( - eventSources.retryEventSource(), source); + assertThat(eventSources.additionalEventSources()) + .containsExactly(eventSources.retryEventSource(), source); } @Test @@ -95,17 +94,14 @@ void checkControllerEventSource() { assertNotNull(controllerEventSource); assertEquals(HasMetadata.class, controllerEventSource.resourceType()); - assertEquals(controllerEventSource, - eventSources.controllerEventSource()); + assertEquals(controllerEventSource, eventSources.controllerEventSource()); } @Test void flatMappedSourcesShouldReturnOnlyUserRegisteredEventSources() { final var eventSources = new EventSources(); - final var mock1 = - eventSourceMockWithName(EventSource.class, "name1", HasMetadata.class); - final var mock2 = - eventSourceMockWithName(EventSource.class, "name2", HasMetadata.class); + final var mock1 = eventSourceMockWithName(EventSource.class, "name1", HasMetadata.class); + final var mock2 = eventSourceMockWithName(EventSource.class, "name2", HasMetadata.class); final var mock3 = eventSourceMockWithName(EventSource.class, "name3", ConfigMap.class); eventSources.add(mock1); @@ -118,10 +114,8 @@ void flatMappedSourcesShouldReturnOnlyUserRegisteredEventSources() { @Test void clearShouldWork() { final var eventSources = new EventSources(); - final var mock1 = - eventSourceMockWithName(EventSource.class, "name1", HasMetadata.class); - final var mock2 = - eventSourceMockWithName(EventSource.class, "name2", HasMetadata.class); + final var mock1 = eventSourceMockWithName(EventSource.class, "name1", HasMetadata.class); + final var mock2 = eventSourceMockWithName(EventSource.class, "name2", HasMetadata.class); final var mock3 = eventSourceMockWithName(EventSource.class, "name3", ConfigMap.class); eventSources.add(mock1); @@ -135,10 +129,8 @@ void clearShouldWork() { @Test void getShouldWork() { final var eventSources = new EventSources(); - final var mock1 = - eventSourceMockWithName(EventSource.class, "name1", HasMetadata.class); - final var mock2 = - eventSourceMockWithName(EventSource.class, "name2", HasMetadata.class); + final var mock1 = eventSourceMockWithName(EventSource.class, "name1", HasMetadata.class); + final var mock2 = eventSourceMockWithName(EventSource.class, "name2", HasMetadata.class); final var mock3 = eventSourceMockWithName(EventSource.class, "name3", ConfigMap.class); eventSources.add(mock1); @@ -161,10 +153,8 @@ void getShouldWork() { @Test void getEventSourcesShouldWork() { final var eventSources = new EventSources(); - final var mock1 = - eventSourceMockWithName(EventSource.class, "name1", HasMetadata.class); - final var mock2 = - eventSourceMockWithName(EventSource.class, "name2", HasMetadata.class); + final var mock1 = eventSourceMockWithName(EventSource.class, "name1", HasMetadata.class); + final var mock2 = eventSourceMockWithName(EventSource.class, "name2", HasMetadata.class); final var mock3 = eventSourceMockWithName(EventSource.class, "name3", ConfigMap.class); eventSources.add(mock1); @@ -189,9 +179,9 @@ void testConcurrentAddRemoveAndGet() throws InterruptedException { for (int i = 0; i < 1000 && !concurrentExceptionFound.get(); i++) { final var eventSources = new EventSources(); - var eventSourceList = - IntStream.range(1, 20).mapToObj(n -> eventSourceMockWithName(EventSource.class, - "name" + n, HasMetadata.class)).toList(); + var eventSourceList = IntStream.range(1, 20) + .mapToObj(n -> eventSourceMockWithName(EventSource.class, "name" + n, HasMetadata.class)) + .toList(); IntStream.range(1, 10).forEach(n -> eventSources.add(eventSourceList.get(n - 1))); @@ -215,8 +205,7 @@ void testConcurrentAddRemoveAndGet() throws InterruptedException { t2.join(); } - assertThat(concurrentExceptionFound) - .withFailMessage("ConcurrentModificationException thrown") + assertThat(concurrentExceptionFound).withFailMessage("ConcurrentModificationException thrown") .isFalse(); } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/ReconciliationDispatcherTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/ReconciliationDispatcherTest.java index f8f0c59845..8f114bb5ae 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/ReconciliationDispatcherTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/ReconciliationDispatcherTest.java @@ -94,8 +94,7 @@ public <R extends HasMetadata> R clone(R object) { return new KubernetesSerialization().clone(object); } } - }) - .withUseSSAToPatchPrimaryResource(useSSA)); + }).withUseSSAToPatchPrimaryResource(useSSA)); } private <R extends HasMetadata> ReconciliationDispatcher<R> init(R customResource, @@ -118,13 +117,13 @@ private <R extends HasMetadata> ReconciliationDispatcher<R> init(R customResourc when(configuration.maxReconciliationInterval()) .thenReturn(Optional.of(Duration.ofHours(RECONCILIATION_MAX_INTERVAL))); - Controller<R> controller = new Controller<>(reconciler, configuration, - MockKubernetesClient.client(resourceClass)) { - @Override - public boolean useFinalizer() { - return useFinalizer; - } - }; + Controller<R> controller = + new Controller<>(reconciler, configuration, MockKubernetesClient.client(resourceClass)) { + @Override + public boolean useFinalizer() { + return useFinalizer; + } + }; controller.start(); return new ReconciliationDispatcher<>(controller, customResourceFacade); @@ -134,11 +133,9 @@ public boolean useFinalizer() { void addFinalizerOnNewResource() { assertFalse(testCustomResource.hasFinalizer(DEFAULT_FINALIZER)); reconciliationDispatcher.handleExecution(executionScopeWithCREvent(testCustomResource)); - verify(reconciler, never()) - .reconcile(ArgumentMatchers.eq(testCustomResource), any()); - verify(customResourceFacade, times(1)) - .patchResourceWithSSA( - argThat(testCustomResource -> testCustomResource.hasFinalizer(DEFAULT_FINALIZER))); + verify(reconciler, never()).reconcile(ArgumentMatchers.eq(testCustomResource), any()); + verify(customResourceFacade, times(1)).patchResourceWithSSA( + argThat(testCustomResource -> testCustomResource.hasFinalizer(DEFAULT_FINALIZER))); } @Test @@ -149,12 +146,9 @@ void addFinalizerOnNewResourceWithoutSSA() { assertFalse(testCustomResource.hasFinalizer(DEFAULT_FINALIZER)); dispatcher.handleExecution(executionScopeWithCREvent(testCustomResource)); - verify(reconciler, never()) - .reconcile(ArgumentMatchers.eq(testCustomResource), any()); - verify(customResourceFacade, times(1)) - .patchResource( - argThat(testCustomResource -> testCustomResource.hasFinalizer(DEFAULT_FINALIZER)), - any()); + verify(reconciler, never()).reconcile(ArgumentMatchers.eq(testCustomResource), any()); + verify(customResourceFacade, times(1)).patchResource( + argThat(testCustomResource -> testCustomResource.hasFinalizer(DEFAULT_FINALIZER)), any()); assertThat(testCustomResource.hasFinalizer(DEFAULT_FINALIZER)).isTrue(); } @@ -162,8 +156,7 @@ void addFinalizerOnNewResourceWithoutSSA() { void callCreateOrUpdateOnNewResourceIfFinalizerSet() { testCustomResource.addFinalizer(DEFAULT_FINALIZER); reconciliationDispatcher.handleExecution(executionScopeWithCREvent(testCustomResource)); - verify(reconciler, times(1)) - .reconcile(ArgumentMatchers.eq(testCustomResource), any()); + verify(reconciler, times(1)).reconcile(ArgumentMatchers.eq(testCustomResource), any()); } @Test @@ -197,8 +190,7 @@ void callCreateOrUpdateOnModifiedResourceIfFinalizerSet() { testCustomResource.addFinalizer(DEFAULT_FINALIZER); reconciliationDispatcher.handleExecution(executionScopeWithCREvent(testCustomResource)); - verify(reconciler, times(1)) - .reconcile(ArgumentMatchers.eq(testCustomResource), any()); + verify(reconciler, times(1)).reconcile(ArgumentMatchers.eq(testCustomResource), any()); } @Test @@ -231,8 +223,7 @@ void retriesFinalizerRemovalWithFreshResource() { var resourceWithFinalizer = TestUtils.testCustomResource(); resourceWithFinalizer.addFinalizer(DEFAULT_FINALIZER); when(customResourceFacade.patchResourceWithoutSSA(eq(testCustomResource), any())) - .thenThrow(new KubernetesClientException(null, 409, null)) - .thenReturn(testCustomResource); + .thenThrow(new KubernetesClientException(null, 409, null)).thenReturn(testCustomResource); when(customResourceFacade.getResource(any(), any())).thenReturn(resourceWithFinalizer); var postExecControl = @@ -275,11 +266,9 @@ void throwsExceptionIfFinalizerRemovalRetryExceeded() { assertThat(postExecControl.isFinalizerRemoved()).isFalse(); assertThat(postExecControl.getRuntimeException()).isPresent(); - assertThat(postExecControl.getRuntimeException().get()) - .isInstanceOf(OperatorException.class); + assertThat(postExecControl.getRuntimeException().get()).isInstanceOf(OperatorException.class); verify(customResourceFacade, times(MAX_UPDATE_RETRY)).patchResourceWithoutSSA(any(), any()); - verify(customResourceFacade, times(MAX_UPDATE_RETRY - 1)).getResource(any(), - any()); + verify(customResourceFacade, times(MAX_UPDATE_RETRY - 1)).getResource(any(), any()); } @Test @@ -356,8 +345,7 @@ void doesNotUpdateTheResourceIfNoUpdateUpdateControlIfFinalizerSet() { void addsFinalizerIfNotMarkedForDeletionAndEmptyCustomResourceReturned() { removeFinalizers(testCustomResource); reconciler.reconcile = (r, c) -> UpdateControl.noUpdate(); - when(customResourceFacade.patchResourceWithSSA(any())) - .thenReturn(testCustomResource); + when(customResourceFacade.patchResourceWithSSA(any())).thenReturn(testCustomResource); var postExecControl = reconciliationDispatcher.handleExecution(executionScopeWithCREvent(testCustomResource)); @@ -392,24 +380,20 @@ void executeControllerRegardlessGenerationInNonGenerationAwareModeIfFinalizerSet void propagatesRetryInfoToContextIfFinalizerSet() { testCustomResource.addFinalizer(DEFAULT_FINALIZER); - reconciliationDispatcher.handleExecution( - new ExecutionScope( - new RetryInfo() { - @Override - public int getAttemptCount() { - return 2; - } - - @Override - public boolean isLastAttempt() { - return true; - } - }).setResource(testCustomResource)); - - ArgumentCaptor<Context> contextArgumentCaptor = - ArgumentCaptor.forClass(Context.class); - verify(reconciler, times(1)) - .reconcile(any(), contextArgumentCaptor.capture()); + reconciliationDispatcher.handleExecution(new ExecutionScope(new RetryInfo() { + @Override + public int getAttemptCount() { + return 2; + } + + @Override + public boolean isLastAttempt() { + return true; + } + }).setResource(testCustomResource)); + + ArgumentCaptor<Context> contextArgumentCaptor = ArgumentCaptor.forClass(Context.class); + verify(reconciler, times(1)).reconcile(any(), contextArgumentCaptor.capture()); Context<?> context = contextArgumentCaptor.getValue(); final var retryInfo = context.getRetryInfo().orElseGet(() -> fail("Missing optional")); assertThat(retryInfo.getAttemptCount()).isEqualTo(2); @@ -453,13 +437,12 @@ void doesNotUpdatesObservedGenerationIfStatusIsNotPatchedWhenUsingSSA() throws E final var config = MockControllerConfiguration.forResource(ObservedGenCustomResource.class); CustomResourceFacade<ObservedGenCustomResource> facade = mock(CustomResourceFacade.class); when(config.isGenerationAware()).thenReturn(true); - when(reconciler.reconcile(any(), any())) - .thenReturn(UpdateControl.noUpdate()); + when(reconciler.reconcile(any(), any())).thenReturn(UpdateControl.noUpdate()); when(facade.patchStatus(any(), any())).thenReturn(observedGenResource); var dispatcher = init(observedGenResource, reconciler, config, facade, true); - PostExecutionControl<ObservedGenCustomResource> control = dispatcher.handleExecution( - executionScopeWithCREvent(observedGenResource)); + PostExecutionControl<ObservedGenCustomResource> control = + dispatcher.handleExecution(executionScopeWithCREvent(observedGenResource)); assertThat(control.getUpdatedCustomResource()).isEmpty(); } @@ -476,8 +459,7 @@ void doesNotPatchObservedGenerationOnCustomResourcePatch() throws Exception { when(facade.patchResource(any(), any())).thenReturn(observedGenResource); var dispatcher = init(observedGenResource, reconciler, config, facade, false); - dispatcher.handleExecution( - executionScopeWithCREvent(observedGenResource)); + dispatcher.handleExecution(executionScopeWithCREvent(observedGenResource)); verify(facade, never()).patchStatus(any(), any()); } @@ -494,23 +476,20 @@ void callErrorStatusHandlerIfImplemented() { return ErrorStatusUpdateControl.patchStatus(testCustomResource); }; - reconciliationDispatcher.handleExecution( - new ExecutionScope( - new RetryInfo() { - @Override - public int getAttemptCount() { - return 2; - } + reconciliationDispatcher.handleExecution(new ExecutionScope(new RetryInfo() { + @Override + public int getAttemptCount() { + return 2; + } - @Override - public boolean isLastAttempt() { - return true; - } - }).setResource(testCustomResource)); + @Override + public boolean isLastAttempt() { + return true; + } + }).setResource(testCustomResource)); verify(customResourceFacade, times(1)).patchStatus(eq(testCustomResource), any()); - verify(reconciler, times(1)).updateErrorStatus(eq(testCustomResource), - any(), any()); + verify(reconciler, times(1)).updateErrorStatus(eq(testCustomResource), any(), any()); } @Test @@ -525,11 +504,10 @@ void callErrorStatusHandlerEvenOnFirstError() { return ErrorStatusUpdateControl.patchStatus(testCustomResource); }; - var postExecControl = reconciliationDispatcher.handleExecution( - new ExecutionScope(null).setResource(testCustomResource)); + var postExecControl = reconciliationDispatcher + .handleExecution(new ExecutionScope(null).setResource(testCustomResource)); verify(customResourceFacade, times(1)).patchStatus(eq(testCustomResource), any()); - verify(reconciler, times(1)).updateErrorStatus(eq(testCustomResource), - any(), any()); + verify(reconciler, times(1)).updateErrorStatus(eq(testCustomResource), any(), any()); assertThat(postExecControl.exceptionDuringExecution()).isTrue(); } @@ -544,11 +522,10 @@ void errorHandlerCanInstructNoRetryWithUpdate() { return ErrorStatusUpdateControl.patchStatus(testCustomResource).withNoRetry(); }; - var postExecControl = reconciliationDispatcher.handleExecution( - new ExecutionScope(null).setResource(testCustomResource)); + var postExecControl = reconciliationDispatcher + .handleExecution(new ExecutionScope(null).setResource(testCustomResource)); - verify(reconciler, times(1)).updateErrorStatus(eq(testCustomResource), - any(), any()); + verify(reconciler, times(1)).updateErrorStatus(eq(testCustomResource), any(), any()); verify(customResourceFacade, times(1)).patchStatus(eq(testCustomResource), any()); assertThat(postExecControl.exceptionDuringExecution()).isFalse(); } @@ -564,11 +541,10 @@ void errorHandlerCanInstructNoRetryNoUpdate() { return ErrorStatusUpdateControl.<TestCustomResource>noStatusUpdate().withNoRetry(); }; - var postExecControl = reconciliationDispatcher.handleExecution( - new ExecutionScope(null).setResource(testCustomResource)); + var postExecControl = reconciliationDispatcher + .handleExecution(new ExecutionScope(null).setResource(testCustomResource)); - verify(reconciler, times(1)).updateErrorStatus(eq(testCustomResource), - any(), any()); + verify(reconciler, times(1)).updateErrorStatus(eq(testCustomResource), any(), any()); verify(customResourceFacade, times(0)).patchStatus(eq(testCustomResource), any()); assertThat(postExecControl.exceptionDuringExecution()).isFalse(); } @@ -579,22 +555,19 @@ void errorStatusHandlerCanPatchResource() { reconciler.reconcile = (r, c) -> { throw new IllegalStateException("Error Status Test"); }; - reconciler.errorHandler = - () -> ErrorStatusUpdateControl.patchStatus(testCustomResource); + reconciler.errorHandler = () -> ErrorStatusUpdateControl.patchStatus(testCustomResource); - reconciliationDispatcher.handleExecution( - new ExecutionScope(null).setResource(testCustomResource)); + reconciliationDispatcher + .handleExecution(new ExecutionScope(null).setResource(testCustomResource)); verify(customResourceFacade, times(1)).patchStatus(eq(testCustomResource), any()); - verify(reconciler, times(1)).updateErrorStatus(eq(testCustomResource), - any(), any()); + verify(reconciler, times(1)).updateErrorStatus(eq(testCustomResource), any(), any()); } @Test void ifRetryLimitedToZeroMaxAttemptsErrorHandlerGetsCorrectLastAttempt() { - var configuration = - MockControllerConfiguration - .forResource((Class<TestCustomResource>) testCustomResource.getClass()); + var configuration = MockControllerConfiguration + .forResource((Class<TestCustomResource>) testCustomResource.getClass()); when(configuration.getRetry()).thenReturn(new GenericRetry().setMaxAttempts(0)); reconciliationDispatcher = init(testCustomResource, reconciler, configuration, customResourceFacade, false); @@ -605,14 +578,13 @@ void ifRetryLimitedToZeroMaxAttemptsErrorHandlerGetsCorrectLastAttempt() { reconciler.errorHandler = () -> ErrorStatusUpdateControl.noStatusUpdate(); - reconciliationDispatcher.handleExecution( - new ExecutionScope(null).setResource(testCustomResource)); + reconciliationDispatcher + .handleExecution(new ExecutionScope(null).setResource(testCustomResource)); - verify(reconciler, times(1)).updateErrorStatus(any(), - ArgumentMatchers.argThat(context -> { - var retryInfo = context.getRetryInfo().orElseThrow(); - return retryInfo.isLastAttempt(); - }), any()); + verify(reconciler, times(1)).updateErrorStatus(any(), ArgumentMatchers.argThat(context -> { + var retryInfo = context.getRetryInfo().orElseThrow(); + return retryInfo.isLastAttempt(); + }), any()); } @Test @@ -638,8 +610,7 @@ void retriesAddingFinalizerWithoutSSA() { removeFinalizers(testCustomResource); reconciler.reconcile = (r, c) -> UpdateControl.noUpdate(); when(customResourceFacade.patchResource(any(), any())) - .thenThrow(new KubernetesClientException(null, 409, null)) - .thenReturn(testCustomResource); + .thenThrow(new KubernetesClientException(null, 409, null)).thenReturn(testCustomResource); when(customResourceFacade.getResource(any(), any())) .then((Answer<TestCustomResource>) invocationOnMock -> { testCustomResource.getFinalizers().clear(); @@ -659,11 +630,10 @@ void reSchedulesFromErrorHandler() { throw new IllegalStateException("Error Status Test"); }; reconciler.errorHandler = - () -> ErrorStatusUpdateControl.<TestCustomResource>noStatusUpdate() - .rescheduleAfter(delay); + () -> ErrorStatusUpdateControl.<TestCustomResource>noStatusUpdate().rescheduleAfter(delay); - var res = reconciliationDispatcher.handleExecution( - new ExecutionScope(null).setResource(testCustomResource)); + var res = reconciliationDispatcher + .handleExecution(new ExecutionScope(null).setResource(testCustomResource)); assertThat(res.getReScheduleDelay()).contains(delay); assertThat(res.getRuntimeException()).isEmpty(); @@ -683,12 +653,11 @@ void reconcilerContextUsesTheSameInstanceOfResourceAsParam() { ArgumentCaptor.forClass(TestCustomResource.class); dispatcher.handleExecution(executionScopeWithCREvent(testCustomResource)); - verify(reconciler, times(1)) - .reconcile(customResourceCaptor.capture(), contextArgumentCaptor.capture()); + verify(reconciler, times(1)).reconcile(customResourceCaptor.capture(), + contextArgumentCaptor.capture()); assertThat(contextArgumentCaptor.getValue().getPrimaryResource()) - .isSameAs(customResourceCaptor.getValue()) - .isNotSameAs(testCustomResource); + .isSameAs(customResourceCaptor.getValue()).isNotSameAs(testCustomResource); } private ObservedGenCustomResource createObservedGenCustomResource() { @@ -740,10 +709,8 @@ public DeleteControl cleanup(TestCustomResource resource, Context context) { @Override public ErrorStatusUpdateControl<TestCustomResource> updateErrorStatus( - TestCustomResource resource, - Context<TestCustomResource> context, Exception e) { - return errorHandler != null ? errorHandler.get() - : ErrorStatusUpdateControl.noStatusUpdate(); + TestCustomResource resource, Context<TestCustomResource> context, Exception e) { + return errorHandler != null ? errorHandler.get() : ErrorStatusUpdateControl.noStatusUpdate(); } } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/BoundedItemStoreTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/BoundedItemStoreTest.java index 9381aedd0d..6032206a53 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/BoundedItemStoreTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/BoundedItemStoreTest.java @@ -28,10 +28,8 @@ class BoundedItemStoreTest { @BeforeEach void setup() { - boundedItemStore = new BoundedItemStore<>(boundedCache, - TestCustomResource.class, - namespaceKeyFunc(), - resourceFetcher); + boundedItemStore = new BoundedItemStore<>(boundedCache, TestCustomResource.class, + namespaceKeyFunc(), resourceFetcher); } @Test @@ -44,10 +42,8 @@ void shouldNotFetchResourcesFromServerIfNotKnown() { @Test void getsResourceFromServerIfNotInCache() { - boundedItemStore.put(testRes1Key(), - TestUtils.testCustomResource1()); - when(resourceFetcher.fetchResource(testRes1Key())) - .thenReturn(TestUtils.testCustomResource1()); + boundedItemStore.put(testRes1Key(), TestUtils.testCustomResource1()); + when(resourceFetcher.fetchResource(testRes1Key())).thenReturn(TestUtils.testCustomResource1()); var res = boundedItemStore.get(testRes1Key()); @@ -57,10 +53,8 @@ void getsResourceFromServerIfNotInCache() { @Test void removesResourcesNotFoundOnServerFromStore() { - boundedItemStore.put(testRes1Key(), - TestUtils.testCustomResource1()); - when(resourceFetcher.fetchResource(testRes1Key())) - .thenReturn(null); + boundedItemStore.put(testRes1Key(), TestUtils.testCustomResource1()); + when(resourceFetcher.fetchResource(testRes1Key())).thenReturn(null); var res = boundedItemStore.get(testRes1Key()); @@ -70,8 +64,7 @@ void removesResourcesNotFoundOnServerFromStore() { @Test void removesResourceFromCache() { - boundedItemStore.put(testRes1Key(), - TestUtils.testCustomResource1()); + boundedItemStore.put(testRes1Key(), TestUtils.testCustomResource1()); boundedItemStore.remove(testRes1Key()); @@ -83,8 +76,7 @@ void removesResourceFromCache() { @Test void readingKeySetDoesNotReadFromBoundedCache() { - boundedItemStore.put(testRes1Key(), - TestUtils.testCustomResource1()); + boundedItemStore.put(testRes1Key(), TestUtils.testCustomResource1()); boundedItemStore.keySet(); @@ -93,8 +85,7 @@ void readingKeySetDoesNotReadFromBoundedCache() { @Test void readingValuesDoesNotReadFromBoundedCache() { - boundedItemStore.put(testRes1Key(), - TestUtils.testCustomResource1()); + boundedItemStore.put(testRes1Key(), TestUtils.testCustomResource1()); boundedItemStore.values(); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/KubernetesResourceFetcherTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/KubernetesResourceFetcherTest.java index 1158e00295..73d3dfa096 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/KubernetesResourceFetcherTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/KubernetesResourceFetcherTest.java @@ -31,18 +31,14 @@ void inverseKeyFunction() { private HasMetadata namespacedResource() { var cm = new ConfigMap(); - cm.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .withNamespace(DEFAULT_NAMESPACE) - .build()); + cm.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME) + .withNamespace(DEFAULT_NAMESPACE).build()); return cm; } private HasMetadata clusterScopedResource() { var cm = new CustomResourceDefinition(); - cm.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + cm.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); return cm; } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerEventSourceTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerEventSourceTest.java index 4ba2a5184c..fd80bb109f 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerEventSourceTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerEventSourceTest.java @@ -27,8 +27,8 @@ import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.*; -class ControllerEventSourceTest extends - AbstractEventSourceTestBase<ControllerEventSource<TestCustomResource>, EventHandler> { +class ControllerEventSourceTest + extends AbstractEventSourceTestBase<ControllerEventSource<TestCustomResource>, EventHandler> { public static final String FINALIZER = ReconcilerUtils.getDefaultFinalizerName(TestCustomResource.class); @@ -87,8 +87,7 @@ void normalExecutionIfGenerationChanges() { @Test void handlesAllEventIfNotGenerationAware() { - source = - new ControllerEventSource<>(new TestController(false)); + source = new ControllerEventSource<>(new TestController(false)); setup(); TestCustomResource customResource1 = TestUtils.testCustomResource(); @@ -115,9 +114,8 @@ void callsBroadcastsOnResourceEvents() { source.eventReceived(ResourceAction.UPDATED, customResource1, customResource1); - verify(testController.getEventSourceManager(), times(1)) - .broadcastOnResourceEvent(eq(ResourceAction.UPDATED), eq(customResource1), - eq(customResource1)); + verify(testController.getEventSourceManager(), times(1)).broadcastOnResourceEvent( + eq(ResourceAction.UPDATED), eq(customResource1), eq(customResource1)); } @Test @@ -126,9 +124,7 @@ void filtersOutEventsOnAddAndUpdate() { OnAddFilter<TestCustomResource> onAddFilter = (res) -> false; OnUpdateFilter<TestCustomResource> onUpdatePredicate = (res, res2) -> false; - source = - new ControllerEventSource<>( - new TestController(onAddFilter, onUpdatePredicate, null)); + source = new ControllerEventSource<>(new TestController(onAddFilter, onUpdatePredicate, null)); setUpSource(source, true, controllerConfig); source.eventReceived(ResourceAction.ADDED, cr, null); @@ -141,8 +137,7 @@ void filtersOutEventsOnAddAndUpdate() { void genericFilterFiltersOutAddUpdateAndDeleteEvents() { TestCustomResource cr = TestUtils.testCustomResource(); - source = - new ControllerEventSource<>(new TestController(null, null, res -> false)); + source = new ControllerEventSource<>(new TestController(null, null, res -> false)); setUpSource(source, true, controllerConfig); source.eventReceived(ResourceAction.ADDED, cr, null); @@ -184,22 +179,13 @@ public boolean useFinalizer() { } } - private static class TestConfiguration extends - ResolvedControllerConfiguration<TestCustomResource> { + private static class TestConfiguration + extends ResolvedControllerConfiguration<TestCustomResource> { public TestConfiguration(boolean generationAware, OnAddFilter<TestCustomResource> onAddFilter, OnUpdateFilter<TestCustomResource> onUpdateFilter, GenericFilter<TestCustomResource> genericFilter) { - super( - "test", - generationAware, - null, - null, - null, - null, - FINALIZER, - null, - null, + super("test", generationAware, null, null, null, null, FINALIZER, null, null, new BaseConfigurationService(), InformerConfiguration.builder(TestCustomResource.class).withOnAddFilter(onAddFilter) .withOnUpdateFilter(onUpdateFilter).withGenericFilter(genericFilter) diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/controller/InternalEventFiltersTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/controller/InternalEventFiltersTest.java index 829e1620a7..454be58efd 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/controller/InternalEventFiltersTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/controller/InternalEventFiltersTest.java @@ -35,8 +35,9 @@ void generationAware() { @Test void acceptsEventIfNoGenerationOnResource() { - assertThat(InternalEventFilters.onUpdateGenerationAware(true) - .accept(testService(), testService())).isTrue(); + assertThat( + InternalEventFilters.onUpdateGenerationAware(true).accept(testService(), testService())) + .isTrue(); } @Test @@ -47,8 +48,9 @@ void finalizerCheckedIfConfigured() { var res = TestUtils.testCustomResource1(); res.getMetadata().setFinalizers(List.of(FINALIZER)); - assertThat(InternalEventFilters.onUpdateFinalizerNeededAndApplied(true, FINALIZER) - .accept(res, res)).isFalse(); + assertThat( + InternalEventFilters.onUpdateFinalizerNeededAndApplied(true, FINALIZER).accept(res, res)) + .isFalse(); } @Test @@ -56,8 +58,8 @@ void acceptsIfFinalizerWasJustAdded() { var res = TestUtils.testCustomResource1(); res.getMetadata().setFinalizers(List.of(FINALIZER)); - assertThat(InternalEventFilters.onUpdateFinalizerNeededAndApplied(true, "finalizer") - .accept(res, TestUtils.testCustomResource1())).isTrue(); + assertThat(InternalEventFilters.onUpdateFinalizerNeededAndApplied(true, "finalizer").accept(res, + TestUtils.testCustomResource1())).isTrue(); } @Test diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/inbound/CachingInboundEventSourceTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/inbound/CachingInboundEventSourceTest.java index 243d818df0..bd9131f6de 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/inbound/CachingInboundEventSourceTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/inbound/CachingInboundEventSourceTest.java @@ -27,25 +27,22 @@ class CachingInboundEventSourceTest extends @SuppressWarnings("unchecked") private final CachingInboundEventSource.ResourceFetcher<SampleExternalResource, TestCustomResource> supplier = - mock( - CachingInboundEventSource.ResourceFetcher.class); + mock(CachingInboundEventSource.ResourceFetcher.class); private final TestCustomResource testCustomResource = TestUtils.testCustomResource(); private final CacheKeyMapper<SampleExternalResource> cacheKeyMapper = r -> r.getName() + "#" + r.getValue(); @BeforeEach public void setup() { - when(supplier.fetchResources(any())) - .thenReturn(Set.of(SampleExternalResource.testResource1())); + when(supplier.fetchResources(any())).thenReturn(Set.of(SampleExternalResource.testResource1())); - setUpSource(new CachingInboundEventSource<>(supplier, - SampleExternalResource.class, cacheKeyMapper)); + setUpSource( + new CachingInboundEventSource<>(supplier, SampleExternalResource.class, cacheKeyMapper)); } @Test void getSecondaryResourceFromCacheOrSupplier() throws InterruptedException { - when(supplier.fetchResources(any())) - .thenReturn(Set.of(SampleExternalResource.testResource1())); + when(supplier.fetchResources(any())).thenReturn(Set.of(SampleExternalResource.testResource1())); var value = source.getSecondaryResources(testCustomResource); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java index ce027846f0..28d73d56a5 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java @@ -109,8 +109,8 @@ void processEventPropagationWithoutAnnotation() { @Test void processEventPropagationWithIncorrectAnnotation() { informerEventSource.onAdd(new DeploymentBuilder(testDeployment()).editMetadata() - .addToAnnotations(InformerEventSource.PREVIOUS_ANNOTATION_KEY, "invalid") - .endMetadata().build()); + .addToAnnotations(InformerEventSource.PREVIOUS_ANNOTATION_KEY, "invalid").endMetadata() + .build()); verify(eventHandlerMock, times(1)).handleEvent(any()); } @@ -132,8 +132,7 @@ void propagateEventAndRemoveResourceFromTempCacheIfResourceVersionMismatch() { @Test void genericFilterForEvents() { informerEventSource.setGenericFilter(r -> false); - when(temporaryResourceCacheMock.getResourceFromCache(any())) - .thenReturn(Optional.empty()); + when(temporaryResourceCacheMock.getResourceFromCache(any())).thenReturn(Optional.empty()); informerEventSource.onAdd(testDeployment()); informerEventSource.onUpdate(testDeployment(), testDeployment()); @@ -145,8 +144,7 @@ void genericFilterForEvents() { @Test void filtersOnAddEvents() { informerEventSource.setOnAddFilter(r -> false); - when(temporaryResourceCacheMock.getResourceFromCache(any())) - .thenReturn(Optional.empty()); + when(temporaryResourceCacheMock.getResourceFromCache(any())).thenReturn(Optional.empty()); informerEventSource.onAdd(testDeployment()); @@ -156,8 +154,7 @@ void filtersOnAddEvents() { @Test void filtersOnUpdateEvents() { informerEventSource.setOnUpdateFilter((r1, r2) -> false); - when(temporaryResourceCacheMock.getResourceFromCache(any())) - .thenReturn(Optional.empty()); + when(temporaryResourceCacheMock.getResourceFromCache(any())).thenReturn(Optional.empty()); informerEventSource.onUpdate(testDeployment(), testDeployment()); @@ -167,8 +164,7 @@ void filtersOnUpdateEvents() { @Test void filtersOnDeleteEvents() { informerEventSource.setOnDeleteFilter((r, b) -> false); - when(temporaryResourceCacheMock.getResourceFromCache(any())) - .thenReturn(Optional.empty()); + when(temporaryResourceCacheMock.getResourceFromCache(any())).thenReturn(Optional.empty()); informerEventSource.onDelete(testDeployment(), true); @@ -179,9 +175,8 @@ void filtersOnDeleteEvents() { void informerStoppedHandlerShouldBeCalledWhenInformerStops() { final var exception = new RuntimeException("Informer stopped exceptionally!"); final var informerStoppedHandler = mock(InformerStoppedHandler.class); - var configuration = - ConfigurationService.newOverriddenConfigurationService(new BaseConfigurationService(), - o -> o.withInformerStoppedHandler(informerStoppedHandler)); + var configuration = ConfigurationService.newOverriddenConfigurationService( + new BaseConfigurationService(), o -> o.withInformerStoppedHandler(informerStoppedHandler)); var mockControllerConfig = mock(ControllerConfiguration.class); when(mockControllerConfig.getConfigurationService()).thenReturn(configuration); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/MappersTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/MappersTest.java index 12e7b54706..119ae08bd8 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/MappersTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/MappersTest.java @@ -25,8 +25,7 @@ void secondaryToPrimaryMapperFromOwnerReference() { var secondary = getConfigMap(primary); secondary.addOwnerReference(primary); - var res = Mappers.fromOwnerReferences(TestCustomResource.class) - .toPrimaryResourceIDs(secondary); + var res = Mappers.fromOwnerReferences(TestCustomResource.class).toPrimaryResourceIDs(secondary); assertThat(res).contains(ResourceID.fromResource(primary)); } @@ -46,11 +45,7 @@ void secondaryToPrimaryMapperFromOwnerReferenceFiltersByType() { private static ConfigMap getConfigMap(TestCustomResource primary) { - return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName("test1") - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .build(); + return new ConfigMapBuilder().withMetadata(new ObjectMetaBuilder().withName("test1") + .withNamespace(primary.getMetadata().getNamespace()).build()).build(); } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCacheTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCacheTest.java index 60eb7245a9..be51bda947 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCacheTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCacheTest.java @@ -163,9 +163,7 @@ private ConfigMap propagateTestResourceToCache() { ConfigMap testResource() { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withLabels(Map.of("k", "v")) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withLabels(Map.of("k", "v")).build()); configMap.getMetadata().setName("test"); configMap.getMetadata().setNamespace("default"); configMap.getMetadata().setResourceVersion(RESOURCE_VERSION); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/TransformingItemStoreTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/TransformingItemStoreTest.java index 3bebc79094..a141af0d01 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/TransformingItemStoreTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/TransformingItemStoreTest.java @@ -49,10 +49,8 @@ void preservesSelectedAttributes() { ConfigMap configMap() { var cm = new ConfigMap(); - cm.setMetadata(new ObjectMetaBuilder() - .withName("test1") - .withNamespace("default").withResourceVersion("1") - .build()); + cm.setMetadata(new ObjectMetaBuilder().withName("test1").withNamespace("default") + .withResourceVersion("1").build()); return cm; } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/polling/PerResourcePollingEventSourceTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/polling/PerResourcePollingEventSourceTest.java index fd5b85aa16..4724e60367 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/polling/PerResourcePollingEventSourceTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/polling/PerResourcePollingEventSourceTest.java @@ -39,14 +39,12 @@ class PerResourcePollingEventSourceTest extends @BeforeEach public void setup() { when(resourceCache.get(any())).thenReturn(Optional.of(testCustomResource)); - when(supplier.fetchResources(any())) - .thenReturn(Set.of(SampleExternalResource.testResource1())); + when(supplier.fetchResources(any())).thenReturn(Set.of(SampleExternalResource.testResource1())); when(context.getPrimaryCache()).thenReturn(resourceCache); setUpSource(new PerResourcePollingEventSource<>(SampleExternalResource.class, context, - new PerResourcePollingConfigurationBuilder<>(supplier, Duration.ofMillis(PERIOD)) - .withCacheKeyMapper(r -> r.getName() + "#" + r.getValue()) - .build())); + new PerResourcePollingConfigurationBuilder<>(supplier, Duration.ofMillis(PERIOD)) + .withCacheKeyMapper(r -> r.getName() + "#" + r.getValue()).build())); } @Test @@ -63,12 +61,10 @@ void pollsTheResourceAfterAwareOfIt() { @Test void registeringTaskOnAPredicate() { setUpSource(new PerResourcePollingEventSource<>(SampleExternalResource.class, context, - new PerResourcePollingConfigurationBuilder<>( - supplier, Duration.ofMillis(PERIOD)) + new PerResourcePollingConfigurationBuilder<>(supplier, Duration.ofMillis(PERIOD)) .withRegisterPredicate( testCustomResource -> testCustomResource.getMetadata().getGeneration() > 1) - .withCacheKeyMapper(CacheKeyMapper.singleResourceCacheKeyMapper()) - .build())); + .withCacheKeyMapper(CacheKeyMapper.singleResourceCacheKeyMapper()).build())); source.onResourceCreated(testCustomResource); @@ -87,8 +83,7 @@ void registeringTaskOnAPredicate() { @Test void propagateEventOnDeletedResource() { source.onResourceCreated(testCustomResource); - when(supplier.fetchResources(any())) - .thenReturn(Set.of(SampleExternalResource.testResource1())) + when(supplier.fetchResources(any())).thenReturn(Set.of(SampleExternalResource.testResource1())) .thenReturn(Collections.emptySet()); await().pollDelay(Duration.ofMillis(3 * PERIOD)).untilAsserted(() -> { @@ -100,8 +95,7 @@ void propagateEventOnDeletedResource() { @Test void getSecondaryResourceInitiatesFetchJustForFirstTime() { source.onResourceCreated(testCustomResource); - when(supplier.fetchResources(any())) - .thenReturn(Set.of(SampleExternalResource.testResource1())) + when(supplier.fetchResources(any())).thenReturn(Set.of(SampleExternalResource.testResource1())) .thenReturn( Set.of(SampleExternalResource.testResource1(), SampleExternalResource.testResource2())); @@ -127,8 +121,7 @@ void getSecondaryResourceInitiatesFetchJustForFirstTime() { @Test void getsValueFromCacheOrSupplier() { source.onResourceCreated(testCustomResource); - when(supplier.fetchResources(any())) - .thenReturn(Collections.emptySet()) + when(supplier.fetchResources(any())).thenReturn(Collections.emptySet()) .thenReturn(Set.of(SampleExternalResource.testResource1())); await().pollDelay(Duration.ofMillis(PERIOD / 3)).untilAsserted(() -> { @@ -146,45 +139,40 @@ void getsValueFromCacheOrSupplier() { @Test void supportsDynamicPollingDelay() { - when(supplier.fetchResources(any())) - .thenReturn(Set.of(SampleExternalResource.testResource1())); - when(supplier.fetchDelay(any(),any())) - .thenReturn(Optional.of(Duration.ofMillis(PERIOD))) - .thenReturn(Optional.of(Duration.ofMillis(PERIOD*2))); + when(supplier.fetchResources(any())).thenReturn(Set.of(SampleExternalResource.testResource1())); + when(supplier.fetchDelay(any(), any())).thenReturn(Optional.of(Duration.ofMillis(PERIOD))) + .thenReturn(Optional.of(Duration.ofMillis(PERIOD * 2))); source.onResourceCreated(testCustomResource); await().pollDelay(Duration.ofMillis(PERIOD)).atMost(Duration.ofMillis((long) (1.5 * PERIOD))) - .pollInterval(Duration.ofMillis(20)) - .untilAsserted(() -> verify(supplier,times(1)).fetchResources(any())); + .pollInterval(Duration.ofMillis(20)) + .untilAsserted(() -> verify(supplier, times(1)).fetchResources(any())); // verifying that it is not called as with normal interval - await().pollDelay(Duration.ofMillis(PERIOD)).atMost(Duration.ofMillis((long) (1.5*PERIOD))) - .pollInterval(Duration.ofMillis(20)) - .untilAsserted(() -> verify(supplier,times(1)).fetchResources(any())); + await().pollDelay(Duration.ofMillis(PERIOD)).atMost(Duration.ofMillis((long) (1.5 * PERIOD))) + .pollInterval(Duration.ofMillis(20)) + .untilAsserted(() -> verify(supplier, times(1)).fetchResources(any())); await().pollDelay(Duration.ofMillis(PERIOD)).atMost(Duration.ofMillis(2 * PERIOD)) - .pollInterval(Duration.ofMillis(20)) - .untilAsserted(() -> verify(supplier,times(2)).fetchResources(any())); + .pollInterval(Duration.ofMillis(20)) + .untilAsserted(() -> verify(supplier, times(2)).fetchResources(any())); } @Test void deleteEventCancelsTheScheduling() { - when(supplier.fetchResources(any())) - .thenReturn(Set.of(SampleExternalResource.testResource1())); + when(supplier.fetchResources(any())).thenReturn(Set.of(SampleExternalResource.testResource1())); source.onResourceCreated(testCustomResource); - await().pollDelay(Duration.ofMillis(PERIOD)) - .atMost(Duration.ofMillis((2* PERIOD))) - .pollInterval(Duration.ofMillis(20)) - .untilAsserted(() -> verify(supplier,times(1)).fetchResources(any())); + await().pollDelay(Duration.ofMillis(PERIOD)).atMost(Duration.ofMillis((2 * PERIOD))) + .pollInterval(Duration.ofMillis(20)) + .untilAsserted(() -> verify(supplier, times(1)).fetchResources(any())); when(resourceCache.get(any())).thenReturn(Optional.empty()); source.onResourceDeleted(testCustomResource); // check if not called again - await().pollDelay(Duration.ofMillis(2*PERIOD)) - .atMost(Duration.ofMillis((4* PERIOD))) - .untilAsserted(() -> verify(supplier,times(1)).fetchResources(any())); + await().pollDelay(Duration.ofMillis(2 * PERIOD)).atMost(Duration.ofMillis((4 * PERIOD))) + .untilAsserted(() -> verify(supplier, times(1)).fetchResources(any())); } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSourceTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSourceTest.java index ced96e9b7d..08634f261e 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSourceTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/polling/PollingEventSourceTest.java @@ -20,8 +20,7 @@ import static org.awaitility.Awaitility.await; import static org.mockito.Mockito.*; -class PollingEventSourceTest - extends +class PollingEventSourceTest extends AbstractEventSourceTestBase<PollingEventSource<SampleExternalResource, HasMetadata>, EventHandler> { public static final int DEFAULT_WAIT_PERIOD = 100; @@ -70,8 +69,7 @@ void doesNotPropagateEventIfResourceNotChanged() throws InterruptedException { @Test void propagatesEventOnNewResourceForPrimary() throws InterruptedException { - when(resourceFetcher.fetchResources()) - .thenReturn(testResponseWithOneValue()) + when(resourceFetcher.fetchResources()).thenReturn(testResponseWithOneValue()) .thenReturn(testResponseWithTwoValueForSameId()); pollingEventSource.start(); @@ -82,16 +80,14 @@ void propagatesEventOnNewResourceForPrimary() throws InterruptedException { @Test void updatesHealthIndicatorBasedOnExceptionsInFetcher() throws InterruptedException { - when(resourceFetcher.fetchResources()) - .thenReturn(testResponseWithOneValue()); + when(resourceFetcher.fetchResources()).thenReturn(testResponseWithOneValue()); pollingEventSource.start(); assertThat(pollingEventSource.getStatus()).isEqualTo(Status.HEALTHY); when(resourceFetcher.fetchResources()) // 2x - to make sure to catch the health indicator change .thenThrow(new RuntimeException("test exception")) - .thenThrow(new RuntimeException("test exception")) - .thenReturn(testResponseWithOneValue()); + .thenThrow(new RuntimeException("test exception")).thenReturn(testResponseWithOneValue()); await().pollInterval(POLL_PERIOD).untilAsserted( () -> assertThat(pollingEventSource.getStatus()).isEqualTo(Status.UNHEALTHY)); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSourceTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSourceTest.java index 3fe3a5db58..9f29ea08d7 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSourceTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/timer/TimerEventSourceTest.java @@ -22,8 +22,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; -class TimerEventSourceTest - extends +class TimerEventSourceTest extends AbstractEventSourceTestBase<TimerEventSource<TestCustomResource>, CapturingEventHandler> { public static final int INITIAL_DELAY = 50; @@ -80,8 +79,8 @@ public void eventNotRegisteredIfStopped() throws IOException { var resourceID = ResourceID.fromResource(TestUtils.testCustomResource()); source.stop(); - assertThatExceptionOfType(IllegalStateException.class).isThrownBy( - () -> source.scheduleOnce(resourceID, PERIOD)); + assertThatExceptionOfType(IllegalStateException.class) + .isThrownBy(() -> source.scheduleOnce(resourceID, PERIOD)); } @Test diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/retry/GenericRetryExecutionTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/retry/GenericRetryExecutionTest.java index 1659995877..709448d363 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/retry/GenericRetryExecutionTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/retry/GenericRetryExecutionTest.java @@ -21,12 +21,8 @@ public void noNextDelayIfMaxAttemptLimitReached() { @Test public void canLimitMaxIntervalLength() { - RetryExecution retryExecution = - GenericRetry.defaultLimitedExponentialRetry() - .setInitialInterval(2000) - .setMaxInterval(4500) - .setIntervalMultiplier(2) - .initExecution(); + RetryExecution retryExecution = GenericRetry.defaultLimitedExponentialRetry() + .setInitialInterval(2000).setMaxInterval(4500).setIntervalMultiplier(2).initExecution(); Optional<Long> res = callNextDelayNTimes(retryExecution, 4); diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/observedgeneration/ObservedGenCustomResource.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/observedgeneration/ObservedGenCustomResource.java index 74f58b795f..f06c0035d3 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/observedgeneration/ObservedGenCustomResource.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/observedgeneration/ObservedGenCustomResource.java @@ -6,8 +6,7 @@ @Group("sample.javaoperatorsdk.io") @Version("v1") -public class ObservedGenCustomResource - extends CustomResource<ObservedGenSpec, ObservedGenStatus> { +public class ObservedGenCustomResource extends CustomResource<ObservedGenSpec, ObservedGenStatus> { @Override protected ObservedGenSpec initSpec() { diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/observedgeneration/ObservedGenSpec.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/observedgeneration/ObservedGenSpec.java index 181204bc1c..30fb495c56 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/observedgeneration/ObservedGenSpec.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/observedgeneration/ObservedGenSpec.java @@ -14,8 +14,6 @@ public void setValue(String value) { @Override public String toString() { - return "TestCustomResourceSpec{" + - "value='" + value + '\'' + - '}'; + return "TestCustomResourceSpec{" + "value='" + value + '\'' + '}'; } } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/simple/NamespacedTestCustomResource.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/simple/NamespacedTestCustomResource.java index 45bd9cb6ce..23cd9cfaec 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/simple/NamespacedTestCustomResource.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/simple/NamespacedTestCustomResource.java @@ -8,6 +8,5 @@ @Group("namespaced-sample.javaoperatorsdk.io") @Version("v1") public class NamespacedTestCustomResource - extends CustomResource<TestCustomResourceSpec, TestCustomResourceStatus> - implements Namespaced { + extends CustomResource<TestCustomResourceSpec, TestCustomResourceStatus> implements Namespaced { } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/simple/TestCustomReconciler.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/simple/TestCustomReconciler.java index be2c80667e..a25836dd10 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/simple/TestCustomReconciler.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/simple/TestCustomReconciler.java @@ -35,68 +35,45 @@ public TestCustomReconciler(KubernetesClient kubernetesClient, boolean updateSta } @Override - public DeleteControl cleanup( - TestCustomResource resource, Context<TestCustomResource> context) { + public DeleteControl cleanup(TestCustomResource resource, Context<TestCustomResource> context) { var statusDetails = - kubernetesClient - .configMaps() - .inNamespace(resource.getMetadata().getNamespace()) - .withName(resource.getSpec().getConfigMapName()) - .delete(); + kubernetesClient.configMaps().inNamespace(resource.getMetadata().getNamespace()) + .withName(resource.getSpec().getConfigMapName()).delete(); if (statusDetails.size() == 1 && statusDetails.get(0).getCauses().isEmpty()) { - log.info( - "Deleted ConfigMap {} for resource: {}", - resource.getSpec().getConfigMapName(), + log.info("Deleted ConfigMap {} for resource: {}", resource.getSpec().getConfigMapName(), resource.getMetadata().getName()); } else { - log.error( - "Failed to delete ConfigMap {} for resource: {}", - resource.getSpec().getConfigMapName(), - resource.getMetadata().getName()); + log.error("Failed to delete ConfigMap {} for resource: {}", + resource.getSpec().getConfigMapName(), resource.getMetadata().getName()); } return DeleteControl.defaultDelete(); } @Override - public UpdateControl<TestCustomResource> reconcile( - TestCustomResource resource, Context<TestCustomResource> context) { + public UpdateControl<TestCustomResource> reconcile(TestCustomResource resource, + Context<TestCustomResource> context) { if (!resource.getMetadata().getFinalizers().contains(FINALIZER_NAME)) { throw new IllegalStateException("Finalizer is not present."); } ConfigMap existingConfigMap = - kubernetesClient - .configMaps() - .inNamespace(resource.getMetadata().getNamespace()) - .withName(resource.getSpec().getConfigMapName()) - .get(); + kubernetesClient.configMaps().inNamespace(resource.getMetadata().getNamespace()) + .withName(resource.getSpec().getConfigMapName()).get(); if (existingConfigMap != null) { existingConfigMap.setData(configMapData(resource)); // existingConfigMap.getMetadata().setResourceVersion(null); - kubernetesClient - .configMaps() - .inNamespace(resource.getMetadata().getNamespace()) - .resource(existingConfigMap) - .createOrReplace(); + kubernetesClient.configMaps().inNamespace(resource.getMetadata().getNamespace()) + .resource(existingConfigMap).createOrReplace(); } else { Map<String, String> labels = new HashMap<>(); labels.put("managedBy", TestCustomReconciler.class.getSimpleName()); - ConfigMap newConfigMap = - new ConfigMapBuilder() - .withMetadata( - new ObjectMetaBuilder() - .withName(resource.getSpec().getConfigMapName()) - .withNamespace(resource.getMetadata().getNamespace()) - .withLabels(labels) - .build()) - .withData(configMapData(resource)) - .build(); - kubernetesClient - .configMaps() - .inNamespace(resource.getMetadata().getNamespace()) - .resource(newConfigMap) - .createOrReplace(); + ConfigMap newConfigMap = new ConfigMapBuilder() + .withMetadata(new ObjectMetaBuilder().withName(resource.getSpec().getConfigMapName()) + .withNamespace(resource.getMetadata().getNamespace()).withLabels(labels).build()) + .withData(configMapData(resource)).build(); + kubernetesClient.configMaps().inNamespace(resource.getMetadata().getNamespace()) + .resource(newConfigMap).createOrReplace(); } if (updateStatus) { if (resource.getStatus() == null) { diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/simple/TestCustomResourceSpec.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/simple/TestCustomResourceSpec.java index 5c23cc4c95..a50e2ad47c 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/simple/TestCustomResourceSpec.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/sample/simple/TestCustomResourceSpec.java @@ -36,17 +36,8 @@ public void setValue(String value) { @Override public String toString() { - return "TestCustomResourceSpec{" - + "configMapName='" - + configMapName - + '\'' - + ", key='" - + key - + '\'' - + ", value='" - + value - + '\'' - + '}'; + return "TestCustomResourceSpec{" + "configMapName='" + configMapName + '\'' + ", key='" + key + + '\'' + ", value='" + value + '\'' + '}'; } @Override @@ -58,8 +49,8 @@ public boolean equals(Object o) { return false; } TestCustomResourceSpec that = (TestCustomResourceSpec) o; - return Objects.equals(configMapName, that.configMapName) && Objects.equals( - key, that.key) && Objects.equals(value, that.value); + return Objects.equals(configMapName, that.configMapName) && Objects.equals(key, that.key) + && Objects.equals(value, that.value); } @Override diff --git a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/AbstractOperatorExtension.java b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/AbstractOperatorExtension.java index d46987caa6..43a5612b22 100644 --- a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/AbstractOperatorExtension.java +++ b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/AbstractOperatorExtension.java @@ -25,11 +25,8 @@ import io.fabric8.kubernetes.client.utils.Utils; import io.javaoperatorsdk.operator.api.config.ConfigurationServiceOverrider; -public abstract class AbstractOperatorExtension implements HasKubernetesClient, - BeforeAllCallback, - BeforeEachCallback, - AfterAllCallback, - AfterEachCallback { +public abstract class AbstractOperatorExtension implements HasKubernetesClient, BeforeAllCallback, + BeforeEachCallback, AfterAllCallback, AfterEachCallback { private static final Logger LOGGER = LoggerFactory.getLogger(AbstractOperatorExtension.class); public static final int MAX_NAMESPACE_NAME_LENGTH = 63; @@ -48,17 +45,13 @@ public abstract class AbstractOperatorExtension implements HasKubernetesClient, protected String namespace; - protected AbstractOperatorExtension( - List<HasMetadata> infrastructure, - Duration infrastructureTimeout, - boolean oneNamespacePerClass, - boolean preserveNamespaceOnError, - boolean waitForNamespaceDeletion, - KubernetesClient kubernetesClient, - Function<ExtensionContext, String> namespaceNameSupplier, + protected AbstractOperatorExtension(List<HasMetadata> infrastructure, + Duration infrastructureTimeout, boolean oneNamespacePerClass, + boolean preserveNamespaceOnError, boolean waitForNamespaceDeletion, + KubernetesClient kubernetesClient, Function<ExtensionContext, String> namespaceNameSupplier, Function<ExtensionContext, String> perClassNamespaceNameSupplier) { - this.kubernetesClient = kubernetesClient != null ? kubernetesClient - : new KubernetesClientBuilder().build(); + this.kubernetesClient = + kubernetesClient != null ? kubernetesClient : new KubernetesClientBuilder().build(); this.infrastructure = infrastructure; this.infrastructureTimeout = infrastructureTimeout; this.oneNamespacePerClass = oneNamespacePerClass; @@ -137,19 +130,14 @@ protected void beforeEachImpl(ExtensionContext context) { protected void before(ExtensionContext context) { LOGGER.info("Initializing integration test in namespace {}", namespace); - kubernetesClient - .namespaces() - .resource( - new NamespaceBuilder().withMetadata(new ObjectMetaBuilder().withName(namespace).build()) - .build()) + kubernetesClient.namespaces() + .resource(new NamespaceBuilder() + .withMetadata(new ObjectMetaBuilder().withName(namespace).build()).build()) .serverSideApply(); - kubernetesClient - .resourceList(infrastructure) - .serverSideApply(); - kubernetesClient - .resourceList(infrastructure) - .waitUntilReady(infrastructureTimeout.toMillis(), TimeUnit.MILLISECONDS); + kubernetesClient.resourceList(infrastructure).serverSideApply(); + kubernetesClient.resourceList(infrastructure).waitUntilReady(infrastructureTimeout.toMillis(), + TimeUnit.MILLISECONDS); } protected void afterAllImpl(ExtensionContext context) { @@ -175,8 +163,7 @@ protected void after(ExtensionContext context) { kubernetesClient.namespaces().withName(namespace).delete(); if (waitForNamespaceDeletion) { LOGGER.info("Waiting for namespace {} to be deleted", namespace); - Awaitility.await("namespace deleted") - .pollInterval(50, TimeUnit.MILLISECONDS) + Awaitility.await("namespace deleted").pollInterval(50, TimeUnit.MILLISECONDS) .atMost(namespaceDeleteTimeout, TimeUnit.SECONDS) .until(() -> kubernetesClient.namespaces().withName(namespace).get() == null); } @@ -206,21 +193,17 @@ protected AbstractBuilder() { this.infrastructure = new ArrayList<>(); this.infrastructureTimeout = Duration.ofMinutes(1); - this.preserveNamespaceOnError = Utils.getSystemPropertyOrEnvVar( - "josdk.it.preserveNamespaceOnError", - false); + this.preserveNamespaceOnError = + Utils.getSystemPropertyOrEnvVar("josdk.it.preserveNamespaceOnError", false); - this.waitForNamespaceDeletion = Utils.getSystemPropertyOrEnvVar( - "josdk.it.waitForNamespaceDeletion", - true); + this.waitForNamespaceDeletion = + Utils.getSystemPropertyOrEnvVar("josdk.it.waitForNamespaceDeletion", true); - this.oneNamespacePerClass = Utils.getSystemPropertyOrEnvVar( - "josdk.it.oneNamespacePerClass", - false); + this.oneNamespacePerClass = + Utils.getSystemPropertyOrEnvVar("josdk.it.oneNamespacePerClass", false); this.namespaceDeleteTimeout = Utils.getSystemPropertyOrEnvVar( - "josdk.it.namespaceDeleteTimeout", - DEFAULT_NAMESPACE_DELETE_TIMEOUT); + "josdk.it.namespaceDeleteTimeout", DEFAULT_NAMESPACE_DELETE_TIMEOUT); } public T preserveNamespaceOnError(boolean value) { diff --git a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/ClusterDeployedOperatorExtension.java b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/ClusterDeployedOperatorExtension.java index b2ec773fcc..5655c01c57 100644 --- a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/ClusterDeployedOperatorExtension.java +++ b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/ClusterDeployedOperatorExtension.java @@ -30,21 +30,15 @@ public class ClusterDeployedOperatorExtension extends AbstractOperatorExtension private final List<HasMetadata> operatorDeployment; private final Duration operatorDeploymentTimeout; - private ClusterDeployedOperatorExtension( - List<HasMetadata> operatorDeployment, - Duration operatorDeploymentTimeout, - List<HasMetadata> infrastructure, - Duration infrastructureTimeout, - boolean preserveNamespaceOnError, - boolean waitForNamespaceDeletion, - boolean oneNamespacePerClass, - KubernetesClient kubernetesClient, - Function<ExtensionContext, String> namespaceNameSupplier, + private ClusterDeployedOperatorExtension(List<HasMetadata> operatorDeployment, + Duration operatorDeploymentTimeout, List<HasMetadata> infrastructure, + Duration infrastructureTimeout, boolean preserveNamespaceOnError, + boolean waitForNamespaceDeletion, boolean oneNamespacePerClass, + KubernetesClient kubernetesClient, Function<ExtensionContext, String> namespaceNameSupplier, Function<ExtensionContext, String> perClassNamespaceNameSupplier) { - super(infrastructure, infrastructureTimeout, oneNamespacePerClass, - preserveNamespaceOnError, - waitForNamespaceDeletion, - kubernetesClient, namespaceNameSupplier, perClassNamespaceNameSupplier); + super(infrastructure, infrastructureTimeout, oneNamespacePerClass, preserveNamespaceOnError, + waitForNamespaceDeletion, kubernetesClient, namespaceNameSupplier, + perClassNamespaceNameSupplier); this.operatorDeployment = operatorDeployment; this.operatorDeploymentTimeout = operatorDeploymentTimeout; } @@ -91,12 +85,8 @@ protected void before(ExtensionContext context) { } }); - kubernetesClient - .resourceList(operatorDeployment) - .inNamespace(namespace) - .createOrReplace(); - kubernetesClient - .resourceList(operatorDeployment) + kubernetesClient.resourceList(operatorDeployment).inNamespace(namespace).createOrReplace(); + kubernetesClient.resourceList(operatorDeployment) .waitUntilReady(operatorDeploymentTimeout.toMillis(), TimeUnit.MILLISECONDS); LOGGER.debug("Operator resources deployed."); } @@ -147,17 +137,11 @@ public Builder withKubernetesClient(KubernetesClient kubernetesClient) { } public ClusterDeployedOperatorExtension build() { - return new ClusterDeployedOperatorExtension( - operatorDeployment, - deploymentTimeout, - infrastructure, - infrastructureTimeout, - preserveNamespaceOnError, - waitForNamespaceDeletion, + return new ClusterDeployedOperatorExtension(operatorDeployment, deploymentTimeout, + infrastructure, infrastructureTimeout, preserveNamespaceOnError, waitForNamespaceDeletion, oneNamespacePerClass, kubernetesClient != null ? kubernetesClient : new KubernetesClientBuilder().build(), - namespaceNameSupplier, - perClassNamespaceNameSupplier); + namespaceNameSupplier, perClassNamespaceNameSupplier); } } } diff --git a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/DefaultNamespaceNameSupplier.java b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/DefaultNamespaceNameSupplier.java index 3041ed0f31..3acf64fc5e 100644 --- a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/DefaultNamespaceNameSupplier.java +++ b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/DefaultNamespaceNameSupplier.java @@ -41,8 +41,8 @@ public String apply(ExtensionContext context) { } } - String namespace = classPart + DELIMITER + methodPart + DELIMITER + UUID.randomUUID().toString() - .substring(0, RANDOM_SUFFIX_LENGTH); + String namespace = classPart + DELIMITER + methodPart + DELIMITER + + UUID.randomUUID().toString().substring(0, RANDOM_SUFFIX_LENGTH); namespace = KubernetesResourceUtil.sanitizeName(namespace).toLowerCase(Locale.US); return namespace; } diff --git a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/InClusterCurl.java b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/InClusterCurl.java index dd9748383b..88eac735ea 100644 --- a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/InClusterCurl.java +++ b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/InClusterCurl.java @@ -28,31 +28,23 @@ public String checkUrl(String... args) { String podName = KubernetesResourceUtil.sanitizeName("curl-" + UUID.randomUUID()); try { Pod curlPod = client.run().inNamespace(namespace) - .withRunConfig(new RunConfigBuilder() - .withArgs(args) - .withName(podName) - .withImage("curlimages/curl:7.78.0") - .withRestartPolicy("Never") - .build()) + .withRunConfig(new RunConfigBuilder().withArgs(args).withName(podName) + .withImage("curlimages/curl:7.78.0").withRestartPolicy("Never").build()) .done(); - await("wait-for-curl-pod-run").atMost(2, MINUTES) - .until(() -> { - String phase = - client.pods().inNamespace(namespace).withName(podName).get() - .getStatus().getPhase(); - return phase.equals("Succeeded") || phase.equals("Failed"); - }); + await("wait-for-curl-pod-run").atMost(2, MINUTES).until(() -> { + String phase = + client.pods().inNamespace(namespace).withName(podName).get().getStatus().getPhase(); + return phase.equals("Succeeded") || phase.equals("Failed"); + }); String curlOutput = - client.pods().inNamespace(namespace) - .withName(curlPod.getMetadata().getName()).getLog(); + client.pods().inNamespace(namespace).withName(curlPod.getMetadata().getName()).getLog(); return curlOutput; } finally { client.pods().inNamespace(namespace).withName(podName).delete(); await("wait-for-curl-pod-stop").atMost(1, MINUTES) - .until(() -> client.pods().inNamespace(namespace).withName(podName) - .get() == null); + .until(() -> client.pods().inNamespace(namespace).withName(podName).get() == null); } } } diff --git a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtension.java b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtension.java index 14bc096ff2..b71c1b2633 100644 --- a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtension.java +++ b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtension.java @@ -55,28 +55,18 @@ public class LocallyRunOperatorExtension extends AbstractOperatorExtension { private final Map<Reconciler, RegisteredController> registeredControllers; private final Map<String, String> crdMappings; - private LocallyRunOperatorExtension( - List<ReconcilerSpec> reconcilers, - List<HasMetadata> infrastructure, - List<PortForwardSpec> portForwards, + private LocallyRunOperatorExtension(List<ReconcilerSpec> reconcilers, + List<HasMetadata> infrastructure, List<PortForwardSpec> portForwards, List<Class<? extends CustomResource>> additionalCustomResourceDefinitions, - Duration infrastructureTimeout, - boolean preserveNamespaceOnError, - boolean waitForNamespaceDeletion, - boolean oneNamespacePerClass, + Duration infrastructureTimeout, boolean preserveNamespaceOnError, + boolean waitForNamespaceDeletion, boolean oneNamespacePerClass, KubernetesClient kubernetesClient, Consumer<ConfigurationServiceOverrider> configurationServiceOverrider, Function<ExtensionContext, String> namespaceNameSupplier, Function<ExtensionContext, String> perClassNamespaceNameSupplier, List<String> additionalCrds) { - super( - infrastructure, - infrastructureTimeout, - oneNamespacePerClass, - preserveNamespaceOnError, - waitForNamespaceDeletion, - kubernetesClient, - namespaceNameSupplier, + super(infrastructure, infrastructureTimeout, oneNamespacePerClass, preserveNamespaceOnError, + waitForNamespaceDeletion, kubernetesClient, namespaceNameSupplier, perClassNamespaceNameSupplier); this.reconcilers = reconcilers; this.portForwards = portForwards; @@ -213,12 +203,8 @@ public Reconciler getFirstReconciler() { } public <T extends Reconciler> T getReconcilerOfType(Class<T> type) { - return reconcilers() - .filter(type::isInstance) - .map(type::cast) - .findFirst() - .orElseThrow( - () -> new IllegalArgumentException("Unable to find a reconciler of type: " + type)); + return reconcilers().filter(type::isInstance).map(type::cast).findFirst().orElseThrow( + () -> new IllegalArgumentException("Unable to find a reconciler of type: " + type)); } public RegisteredController getRegisteredControllerForReconcile( @@ -238,13 +224,8 @@ protected void before(ExtensionContext context) { final var kubernetesClient = getKubernetesClient(); for (var ref : portForwards) { - String podName = kubernetesClient.pods() - .inNamespace(ref.getNamespace()) - .withLabel(ref.getLabelKey(), ref.getLabelValue()) - .list() - .getItems() - .get(0) - .getMetadata() + String podName = kubernetesClient.pods().inNamespace(ref.getNamespace()) + .withLabel(ref.getLabelKey(), ref.getLabelValue()).list().getItems().get(0).getMetadata() .getName(); localPortForwards.add(kubernetesClient.pods().inNamespace(ref.getNamespace()) @@ -355,14 +336,12 @@ protected Builder() { this.additionalCustomResourceDefinitions = new ArrayList<>(); } - public Builder withReconciler( - Reconciler value, Consumer<ControllerConfigurationOverrider> configurationOverrider) { + public Builder withReconciler(Reconciler value, + Consumer<ControllerConfigurationOverrider> configurationOverrider) { return withReconciler(value, null, configurationOverrider); } - public Builder withReconciler( - Reconciler value, - Retry retry, + public Builder withReconciler(Reconciler value, Retry retry, Consumer<ControllerConfigurationOverrider> configurationOverrider) { reconcilers.add(new ReconcilerSpec(value, retry, configurationOverrider)); return this; @@ -415,18 +394,10 @@ public Builder withAdditionalCRD(String... paths) { } public LocallyRunOperatorExtension build() { - return new LocallyRunOperatorExtension( - reconcilers, - infrastructure, - portForwards, - additionalCustomResourceDefinitions, - infrastructureTimeout, - preserveNamespaceOnError, - waitForNamespaceDeletion, - oneNamespacePerClass, - kubernetesClient, - configurationServiceOverrider, namespaceNameSupplier, - perClassNamespaceNameSupplier, + return new LocallyRunOperatorExtension(reconcilers, infrastructure, portForwards, + additionalCustomResourceDefinitions, infrastructureTimeout, preserveNamespaceOnError, + waitForNamespaceDeletion, oneNamespacePerClass, kubernetesClient, + configurationServiceOverrider, namespaceNameSupplier, perClassNamespaceNameSupplier, additionalCRDs); } } @@ -478,9 +449,7 @@ public ReconcilerSpec(Reconciler reconciler, Retry retry) { this(reconciler, retry, null); } - public ReconcilerSpec( - Reconciler reconciler, - Retry retry, + public ReconcilerSpec(Reconciler reconciler, Retry retry, Consumer<ControllerConfigurationOverrider> controllerConfigurationOverrider) { this.reconciler = reconciler; this.retry = retry; diff --git a/operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/DefaultNamespaceNameSupplierTest.java b/operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/DefaultNamespaceNameSupplierTest.java index cd1dce1a51..c05866a910 100644 --- a/operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/DefaultNamespaceNameSupplierTest.java +++ b/operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/DefaultNamespaceNameSupplierTest.java @@ -41,8 +41,7 @@ void methodPartAndClassPartLonger() { String ns = supplier.apply(mockExtensionContext(LONG_CLASS_NAME, LONG_METHOD_NAME)); assertThat(ns).startsWith(LONG_CLASS_NAME.substring(0, PART_RESERVED_NAME_LENGTH) + DELIMITER - + LONG_METHOD_NAME.substring(0, PART_RESERVED_NAME_LENGTH) - + DELIMITER); + + LONG_METHOD_NAME.substring(0, PART_RESERVED_NAME_LENGTH) + DELIMITER); shortEnoughAndEndsWithRandomString(ns); } diff --git a/operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/NamespaceNamingTestUtils.java b/operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/NamespaceNamingTestUtils.java index 0443d0e983..69e21db737 100644 --- a/operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/NamespaceNamingTestUtils.java +++ b/operator-framework-junit5/src/test/java/io/javaoperatorsdk/operator/junit/NamespaceNamingTestUtils.java @@ -12,12 +12,12 @@ public class NamespaceNamingTestUtils { public static final String SHORT_CLASS_NAME = Method.class.getSimpleName().toLowerCase(); public static final String SHORT_METHOD_NAME = "short"; public static final String LONG_METHOD_NAME = "longmethodnametotestifistruncatedcorrectly"; - public static final String LONG_CLASS_NAME = VeryLongClassNameForSakeOfThisTestIfItWorks.class - .getSimpleName().toLowerCase(); + public static final String LONG_CLASS_NAME = + VeryLongClassNameForSakeOfThisTestIfItWorks.class.getSimpleName().toLowerCase(); // longer then 63 public static final String VERY_LONG_CLASS_NAME = - VeryVeryVeryVeryVeryVeryLongClassNameForSakeOfThisTestIfItWorks.class - .getSimpleName().toLowerCase(); + VeryVeryVeryVeryVeryVeryLongClassNameForSakeOfThisTestIfItWorks.class.getSimpleName() + .toLowerCase(); public static ExtensionContext mockExtensionContext(String className, String methodName) { ExtensionContext extensionContext = mock(ExtensionContext.class); diff --git a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/AccumulativeMappingWriter.java b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/AccumulativeMappingWriter.java index 6f37572e24..cb23f61fed 100644 --- a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/AccumulativeMappingWriter.java +++ b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/AccumulativeMappingWriter.java @@ -22,26 +22,21 @@ class AccumulativeMappingWriter { private final String resourcePath; private final ProcessingEnvironment processingEnvironment; - public AccumulativeMappingWriter( - String resourcePath, ProcessingEnvironment processingEnvironment) { + public AccumulativeMappingWriter(String resourcePath, + ProcessingEnvironment processingEnvironment) { this.resourcePath = resourcePath; this.processingEnvironment = processingEnvironment; } public AccumulativeMappingWriter loadExistingMappings() { try { - final var readonlyResource = - processingEnvironment - .getFiler() - .getResource(StandardLocation.CLASS_OUTPUT, "", resourcePath); + final var readonlyResource = processingEnvironment.getFiler() + .getResource(StandardLocation.CLASS_OUTPUT, "", resourcePath); try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(readonlyResource.openInputStream()))) { - final var existingLines = - bufferedReader - .lines() - .map(l -> l.split(",")) - .collect(Collectors.toMap(parts -> parts[0], parts -> parts[1])); + final var existingLines = bufferedReader.lines().map(l -> l.split(",")) + .collect(Collectors.toMap(parts -> parts[0], parts -> parts[1])); mappings.putAll(existingLines); } } catch (IOException e) { @@ -62,10 +57,8 @@ public AccumulativeMappingWriter add(String key, String value) { public void flush() { PrintWriter printWriter = null; try { - final var resource = - processingEnvironment - .getFiler() - .createResource(StandardLocation.CLASS_OUTPUT, "", resourcePath); + final var resource = processingEnvironment.getFiler() + .createResource(StandardLocation.CLASS_OUTPUT, "", resourcePath); printWriter = new PrintWriter(resource.openOutputStream()); for (Map.Entry<String, String> entry : mappings.entrySet()) { diff --git a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/ClassMappingProvider.java b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/ClassMappingProvider.java index d3559a9201..e1475d1288 100644 --- a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/ClassMappingProvider.java +++ b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/ClassMappingProvider.java @@ -29,23 +29,20 @@ static <T, V> Map<T, V> provide(final String resourcePath, T key, V value) { URL url = it.next(); List<String> classNamePairs = retrieveClassNamePairs(url); - classNamePairs.forEach( - clazzPair -> { - try { - final String[] classNames = clazzPair.split(","); - if (classNames.length != 2) { - throw new IllegalStateException( - String.format( - "%s is not valid Mapping metadata, defined in %s", - clazzPair, url)); - } - - result.put( - (T) ClassUtils.getClass(classNames[0]), (V) ClassUtils.getClass(classNames[1])); - } catch (ClassNotFoundException e) { - throw new RuntimeException(e); - } - }); + classNamePairs.forEach(clazzPair -> { + try { + final String[] classNames = clazzPair.split(","); + if (classNames.length != 2) { + throw new IllegalStateException( + String.format("%s is not valid Mapping metadata, defined in %s", clazzPair, url)); + } + + result.put((T) ClassUtils.getClass(classNames[0]), + (V) ClassUtils.getClass(classNames[1])); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + }); } log.debug("Loaded Controller to resource mappings {}", result); return result; @@ -56,8 +53,7 @@ static <T, V> Map<T, V> provide(final String resourcePath, T key, V value) { private static List<String> retrieveClassNamePairs(URL url) throws IOException { try (BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()))) { - return br.lines() - .collect(Collectors.toList()); + return br.lines().collect(Collectors.toList()); } } } diff --git a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/ControllerConfigurationAnnotationProcessor.java b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/ControllerConfigurationAnnotationProcessor.java index 6440ec78a0..b4c8ef1c6c 100644 --- a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/ControllerConfigurationAnnotationProcessor.java +++ b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/ControllerConfigurationAnnotationProcessor.java @@ -52,10 +52,8 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment try { for (TypeElement annotation : annotations) { Set<? extends Element> annotatedElements = roundEnv.getElementsAnnotatedWith(annotation); - annotatedElements.stream() - .filter(element -> element.getKind().equals(ElementKind.CLASS)) - .map(e -> (TypeElement) e) - .forEach(this::recordCRType); + annotatedElements.stream().filter(element -> element.getKind().equals(ElementKind.CLASS)) + .map(e -> (TypeElement) e).forEach(this::recordCRType); } } finally { if (roundEnv.processingOver()) { @@ -66,14 +64,9 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment } private TypeParameterResolver initializeResolver(ProcessingEnvironment processingEnv) { - final DeclaredType resourceControllerType = - processingEnv - .getTypeUtils() - .getDeclaredType( - processingEnv - .getElementUtils() - .getTypeElement(Reconciler.class.getCanonicalName()), - processingEnv.getTypeUtils().getWildcardType(null, null)); + final DeclaredType resourceControllerType = processingEnv.getTypeUtils().getDeclaredType( + processingEnv.getElementUtils().getTypeElement(Reconciler.class.getCanonicalName()), + processingEnv.getTypeUtils().getWildcardType(null, null)); return new TypeParameterResolver(resourceControllerType, 0); } @@ -81,18 +74,15 @@ private void recordCRType(TypeElement controllerClassSymbol) { try { final TypeMirror resourceType = findResourceType(controllerClassSymbol); if (resourceType == null) { - controllersResourceWriter.add( - controllerClassSymbol.getQualifiedName().toString(), + controllersResourceWriter.add(controllerClassSymbol.getQualifiedName().toString(), CustomResource.class.getCanonicalName()); - System.out.println( - "No defined resource type for '" - + controllerClassSymbol.getQualifiedName() - + "': ignoring!"); + System.out.println("No defined resource type for '" + + controllerClassSymbol.getQualifiedName() + "': ignoring!"); return; } final TypeName customResourceType = TypeName.get(resourceType); - controllersResourceWriter.add( - controllerClassSymbol.getQualifiedName().toString(), customResourceType.toString()); + controllersResourceWriter.add(controllerClassSymbol.getQualifiedName().toString(), + customResourceType.toString()); } catch (Exception ioException) { log.error("Error", ioException); @@ -102,8 +92,8 @@ private void recordCRType(TypeElement controllerClassSymbol) { private TypeMirror findResourceType(TypeElement controllerClassSymbol) { try { - return typeParameterResolver.resolve( - processingEnv.getTypeUtils(), (DeclaredType) controllerClassSymbol.asType()); + return typeParameterResolver.resolve(processingEnv.getTypeUtils(), + (DeclaredType) controllerClassSymbol.asType()); } catch (Exception e) { log.error("Error", e); return null; diff --git a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/RuntimeControllerMetadata.java b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/RuntimeControllerMetadata.java index 068d762c03..b087e8b659 100644 --- a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/RuntimeControllerMetadata.java +++ b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/RuntimeControllerMetadata.java @@ -12,9 +12,8 @@ public class RuntimeControllerMetadata { private static final Map<Class<? extends Reconciler>, Class<? extends HasMetadata>> controllerToCustomResourceMappings; static { - controllerToCustomResourceMappings = - ClassMappingProvider.provide( - RECONCILERS_RESOURCE_PATH, Reconciler.class, HasMetadata.class); + controllerToCustomResourceMappings = ClassMappingProvider.provide(RECONCILERS_RESOURCE_PATH, + Reconciler.class, HasMetadata.class); } @SuppressWarnings("unchecked") @@ -23,8 +22,7 @@ static <R extends HasMetadata> Class<R> getResourceClass(Reconciler<R> reconcile controllerToCustomResourceMappings.get(reconciler.getClass()); if (resourceClass == null) { throw new IllegalArgumentException( - String.format( - "No custom resource has been found for controller %s", + String.format("No custom resource has been found for controller %s", reconciler.getClass().getCanonicalName())); } return (Class<R>) resourceClass; diff --git a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/TypeParameterResolver.java b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/TypeParameterResolver.java index 1ecf8ffb81..c3c28a55fa 100644 --- a/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/TypeParameterResolver.java +++ b/operator-framework/src/main/java/io/javaoperatorsdk/operator/config/runtime/TypeParameterResolver.java @@ -45,11 +45,8 @@ public TypeMirror resolve(Types typeUtils, DeclaredType declaredType) { return null; } if (typeArguments.get(interestedTypeArgumentIndex).getKind() == TYPEVAR) { - typeName = - ((TypeVariable) typeArguments.get(interestedTypeArgumentIndex)) - .asElement() - .getSimpleName() - .toString(); + typeName = ((TypeVariable) typeArguments.get(interestedTypeArgumentIndex)).asElement() + .getSimpleName().toString(); } else if (typeArguments.get(interestedTypeArgumentIndex).getKind() == DECLARED) { return typeArguments.get(0); } @@ -72,11 +69,10 @@ public TypeMirror resolve(Types typeUtils, DeclaredType declaredType) { return null; } - private int getTypeIndexWithName( - String typeName, List<? extends TypeParameterElement> typeParameters) { + private int getTypeIndexWithName(String typeName, + List<? extends TypeParameterElement> typeParameters) { return IntStream.range(0, typeParameters.size()) - .filter(i -> typeParameters.get(i).getSimpleName().toString().equals(typeName)) - .findFirst() + .filter(i -> typeParameters.get(i).getSimpleName().toString().equals(typeName)).findFirst() .orElseThrow(); } @@ -119,11 +115,9 @@ private List<DeclaredType> findChain(Types typeUtils, DeclaredType declaredType) private ArrayList<DeclaredType> getMatchingInterfaces(Types typeUtils, TypeElement superElement) { final var result = new ArrayList<DeclaredType>(); - final var matchedInterfaces = - superElement.getInterfaces().stream() - .filter(intface -> typeUtils.isAssignable(intface, interestedClass)) - .map(i -> (DeclaredType) i) - .collect(Collectors.toList()); + final var matchedInterfaces = superElement.getInterfaces().stream() + .filter(intface -> typeUtils.isAssignable(intface, interestedClass)) + .map(i -> (DeclaredType) i).collect(Collectors.toList()); if (matchedInterfaces.size() > 0) { result.addAll(matchedInterfaces); final var lastFoundInterface = result.get(result.size() - 1); @@ -135,21 +129,15 @@ private ArrayList<DeclaredType> getMatchingInterfaces(Types typeUtils, TypeEleme private List<DeclaredType> findChainOfInterfaces(Types typeUtils, DeclaredType parentInterface) { final var result = new ArrayList<DeclaredType>(); - var matchingInterfaces = - ((TypeElement) parentInterface.asElement()) - .getInterfaces().stream() - .filter(i -> typeUtils.isAssignable(i, interestedClass)) - .map(i -> (DeclaredType) i) - .collect(Collectors.toList()); + var matchingInterfaces = ((TypeElement) parentInterface.asElement()).getInterfaces().stream() + .filter(i -> typeUtils.isAssignable(i, interestedClass)).map(i -> (DeclaredType) i) + .collect(Collectors.toList()); while (matchingInterfaces.size() > 0) { result.addAll(matchingInterfaces); final var lastFoundInterface = matchingInterfaces.get(matchingInterfaces.size() - 1); - matchingInterfaces = - ((TypeElement) lastFoundInterface.asElement()) - .getInterfaces().stream() - .filter(i -> typeUtils.isAssignable(i, interestedClass)) - .map(i -> (DeclaredType) i) - .collect(Collectors.toList()); + matchingInterfaces = ((TypeElement) lastFoundInterface.asElement()).getInterfaces().stream() + .filter(i -> typeUtils.isAssignable(i, interestedClass)).map(i -> (DeclaredType) i) + .collect(Collectors.toList()); } return result; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CRDMappingInTestExtensionIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/CRDMappingInTestExtensionIT.java index e0535381fa..bfe91a5996 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CRDMappingInTestExtensionIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/CRDMappingInTestExtensionIT.java @@ -26,24 +26,20 @@ public class CRDMappingInTestExtensionIT { @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new TestReconciler()) - .withAdditionalCRD("src/test/resources/crd/test.crd", "src/test/crd/test.crd") - .build(); + LocallyRunOperatorExtension.builder().withReconciler(new TestReconciler()) + .withAdditionalCRD("src/test/resources/crd/test.crd", "src/test/crd/test.crd").build(); @Test void correctlyAppliesManuallySpecifiedCRD() { final var crdClient = client.apiextensions().v1().customResourceDefinitions(); - await().pollDelay(Duration.ofMillis(150)) - .untilAsserted(() -> { - final var actual = crdClient.withName("tests.crd.example").get(); - assertThat(actual).isNotNull(); - assertThat(actual.getSpec().getVersions().get(0).getSchema().getOpenAPIV3Schema() - .getProperties().containsKey("foo")).isTrue(); - }); - await().pollDelay(Duration.ofMillis(150)) - .untilAsserted( - () -> assertThat(crdClient.withName("externals.crd.example").get()).isNotNull()); + await().pollDelay(Duration.ofMillis(150)).untilAsserted(() -> { + final var actual = crdClient.withName("tests.crd.example").get(); + assertThat(actual).isNotNull(); + assertThat(actual.getSpec().getVersions().get(0).getSchema().getOpenAPIV3Schema() + .getProperties().containsKey("foo")).isTrue(); + }); + await().pollDelay(Duration.ofMillis(150)).untilAsserted( + () -> assertThat(crdClient.withName("externals.crd.example").get()).isNotNull()); } @Group("crd.example") diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ConcurrencyIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ConcurrencyIT.java index eb60907e12..5430aa5de5 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ConcurrencyIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ConcurrencyIT.java @@ -37,28 +37,19 @@ void manyResourcesGetCreatedUpdatedAndDeleted() throws InterruptedException { operator.resources(TestCustomResource.class).resource(tcr).create(); } - await() - .atMost(1, TimeUnit.MINUTES) - .untilAsserted( - () -> { - List<ConfigMap> items = - operator.resources(ConfigMap.class) - .withLabel( - "managedBy", TestReconciler.class.getSimpleName()) - .list() - .getItems(); - assertThat(items).hasSize(NUMBER_OF_RESOURCES_CREATED); - }); + await().atMost(1, TimeUnit.MINUTES).untilAsserted(() -> { + List<ConfigMap> items = operator.resources(ConfigMap.class) + .withLabel("managedBy", TestReconciler.class.getSimpleName()).list().getItems(); + assertThat(items).hasSize(NUMBER_OF_RESOURCES_CREATED); + }); log.info("Updating {} resources", NUMBER_OF_RESOURCES_UPDATED); // update some resources for (int i = 0; i < NUMBER_OF_RESOURCES_UPDATED; i++) { TestCustomResource tcr = - operator.get(TestCustomResource.class, - TestUtils.TEST_CUSTOM_RESOURCE_PREFIX + i); + operator.get(TestCustomResource.class, TestUtils.TEST_CUSTOM_RESOURCE_PREFIX + i); tcr.getSpec().setValue(i + UPDATED_SUFFIX); - operator.resources(TestCustomResource.class).resource(tcr) - .createOrReplace(); + operator.resources(TestCustomResource.class).resource(tcr).createOrReplace(); } // sleep for a short time to make variability to the test, so some updates are not // executed before delete @@ -70,30 +61,16 @@ void manyResourcesGetCreatedUpdatedAndDeleted() throws InterruptedException { operator.resources(TestCustomResource.class).resource(tcr).delete(); } - await() - .atMost(1, TimeUnit.MINUTES) - .untilAsserted( - () -> { - List<ConfigMap> items = - operator.resources(ConfigMap.class) - .withLabel( - "managedBy", TestReconciler.class.getSimpleName()) - .list() - .getItems(); - // reducing configmaps to names only - better for debugging - List<String> itemDescs = - items.stream() - .map(configMap -> configMap.getMetadata().getName()) - .collect(Collectors.toList()); - assertThat(itemDescs) - .hasSize(NUMBER_OF_RESOURCES_CREATED - NUMBER_OF_RESOURCES_DELETED); + await().atMost(1, TimeUnit.MINUTES).untilAsserted(() -> { + List<ConfigMap> items = operator.resources(ConfigMap.class) + .withLabel("managedBy", TestReconciler.class.getSimpleName()).list().getItems(); + // reducing configmaps to names only - better for debugging + List<String> itemDescs = items.stream().map(configMap -> configMap.getMetadata().getName()) + .collect(Collectors.toList()); + assertThat(itemDescs).hasSize(NUMBER_OF_RESOURCES_CREATED - NUMBER_OF_RESOURCES_DELETED); - List<TestCustomResource> crs = - operator.resources(TestCustomResource.class) - .list() - .getItems(); - assertThat(crs) - .hasSize(NUMBER_OF_RESOURCES_CREATED - NUMBER_OF_RESOURCES_DELETED); - }); + List<TestCustomResource> crs = operator.resources(TestCustomResource.class).list().getItems(); + assertThat(crs).hasSize(NUMBER_OF_RESOURCES_CREATED - NUMBER_OF_RESOURCES_DELETED); + }); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/InformerErrorHandlerStartIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/InformerErrorHandlerStartIT.java index b18e9b6763..46df5fdc10 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/InformerErrorHandlerStartIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/InformerErrorHandlerStartIT.java @@ -23,15 +23,11 @@ class InformerErrorHandlerStartIT { @Timeout(5) void operatorStart() { KubernetesClient client = new KubernetesClientBuilder() - .withConfig(new ConfigBuilder() - .withImpersonateUsername("user-with-no-rights") - .build()) + .withConfig(new ConfigBuilder().withImpersonateUsername("user-with-no-rights").build()) .build(); - Operator operator = new Operator(o -> o - .withKubernetesClient(client) - .withStopOnInformerErrorDuringStartup(false) - .withCacheSyncTimeout(Duration.ofSeconds(2))); + Operator operator = new Operator(o -> o.withKubernetesClient(client) + .withStopOnInformerErrorDuringStartup(false).withCacheSyncTimeout(Duration.ofSeconds(2))); operator.register(new ConfigMapReconciler()); operator.start(); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/LeaderElectionPermissionIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/LeaderElectionPermissionIT.java index 2523e15423..7c5aa33afa 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/LeaderElectionPermissionIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/LeaderElectionPermissionIT.java @@ -30,24 +30,21 @@ void operatorStopsIfNoLeaderElectionPermission() { applyRole(); applyRoleBinding(); - var client = new KubernetesClientBuilder().withConfig(new ConfigBuilder() - .withImpersonateUsername("leader-elector-stop-noaccess") - .build()).build(); + var client = new KubernetesClientBuilder() + .withConfig( + new ConfigBuilder().withImpersonateUsername("leader-elector-stop-noaccess").build()) + .build(); var operator = new Operator(o -> { o.withKubernetesClient(client); - o.withLeaderElectionConfiguration( - new LeaderElectionConfiguration("lease1", "default")); + o.withLeaderElectionConfiguration(new LeaderElectionConfiguration("lease1", "default")); o.withStopOnInformerErrorDuringStartup(false); }); operator.register(new TestReconciler(), o -> o.settingNamespace("default")); - OperatorException exception = assertThrows( - OperatorException.class, - operator::start); + OperatorException exception = assertThrows(OperatorException.class, operator::start); - assertThat(exception.getCause().getMessage()) - .contains(NO_PERMISSION_TO_LEASE_RESOURCE_MESSAGE); + assertThat(exception.getCause().getMessage()).contains(NO_PERMISSION_TO_LEASE_RESOURCE_MESSAGE); } @@ -61,15 +58,14 @@ public UpdateControl<ConfigMap> reconcile(ConfigMap resource, Context<ConfigMap> } private void applyRoleBinding() { - var clusterRoleBinding = ReconcilerUtils - .loadYaml(RoleBinding.class, this.getClass(), - "leader-elector-stop-noaccess-role-binding.yaml"); + var clusterRoleBinding = ReconcilerUtils.loadYaml(RoleBinding.class, this.getClass(), + "leader-elector-stop-noaccess-role-binding.yaml"); adminClient.resource(clusterRoleBinding).createOrReplace(); } private void applyRole() { - var role = ReconcilerUtils - .loadYaml(Role.class, this.getClass(), "leader-elector-stop-role-noaccess.yaml"); + var role = ReconcilerUtils.loadYaml(Role.class, this.getClass(), + "leader-elector-stop-role-noaccess.yaml"); adminClient.resource(role).createOrReplace(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/builtinresourcecleaner/BuiltInResourceCleanerIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/builtinresourcecleaner/BuiltInResourceCleanerIT.java index 3867711f7f..0d7baa5b43 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/builtinresourcecleaner/BuiltInResourceCleanerIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/builtinresourcecleaner/BuiltInResourceCleanerIT.java @@ -20,10 +20,8 @@ class BuiltInResourceCleanerIT { private static final Logger log = LoggerFactory.getLogger(BuiltInResourceCleanerIT.class); @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new BuiltInResourceCleanerReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new BuiltInResourceCleanerReconciler()).build(); /** * Issue is with generation, some built in resources like Pod, Service does not seem to use @@ -34,8 +32,9 @@ void cleanerIsCalledOnBuiltInResource() { var service = operator.create(testService()); await().untilAsserted(() -> { - assertThat(operator.getReconcilerOfType(BuiltInResourceCleanerReconciler.class) - .getReconcileCount()).isPositive(); + assertThat( + operator.getReconcilerOfType(BuiltInResourceCleanerReconciler.class).getReconcileCount()) + .isPositive(); var actualService = operator.get(Service.class, service.getMetadata().getName()); assertThat(actualService.getMetadata().getFinalizers()).isNotEmpty(); }); @@ -43,8 +42,9 @@ void cleanerIsCalledOnBuiltInResource() { operator.delete(service); await().untilAsserted(() -> { - assertThat(operator.getReconcilerOfType(BuiltInResourceCleanerReconciler.class) - .getCleanCount()).isPositive(); + assertThat( + operator.getReconcilerOfType(BuiltInResourceCleanerReconciler.class).getCleanCount()) + .isPositive(); }); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/builtinresourcecleaner/BuiltInResourceCleanerReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/builtinresourcecleaner/BuiltInResourceCleanerReconciler.java index 79150eb745..5b42e795c3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/builtinresourcecleaner/BuiltInResourceCleanerReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/builtinresourcecleaner/BuiltInResourceCleanerReconciler.java @@ -7,16 +7,13 @@ import io.javaoperatorsdk.operator.api.reconciler.*; @ControllerConfiguration(informer = @Informer(labelSelector = "builtintest=true")) -public class BuiltInResourceCleanerReconciler - implements Reconciler<Service>, Cleaner<Service> { +public class BuiltInResourceCleanerReconciler implements Reconciler<Service>, Cleaner<Service> { private final AtomicInteger reconciled = new AtomicInteger(0); private final AtomicInteger cleaned = new AtomicInteger(0); @Override - public UpdateControl<Service> reconcile( - Service resource, - Context<Service> context) { + public UpdateControl<Service> reconcile(Service resource, Context<Service> context) { reconciled.addAndGet(1); return UpdateControl.noUpdate(); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceIT.java index 1f6806aed7..7e99aa01f8 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceIT.java @@ -29,9 +29,8 @@ class ChangeNamespaceIT { public static final String ADDITIONAL_TEST_NAMESPACE = "additional-test-namespace"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new ChangeNamespaceTestReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new ChangeNamespaceTestReconciler()).build(); @BeforeEach void setup() { @@ -84,8 +83,7 @@ void changeToWatchAllNamespaces() { var registeredController = operator.getRegisteredControllerForReconcile(ChangeNamespaceTestReconciler.class); - registeredController - .changeNamespaces(Set.of(Constants.WATCH_ALL_NAMESPACES)); + registeredController.changeNamespaces(Set.of(Constants.WATCH_ALL_NAMESPACES)); assertReconciled(reconciler, resourceInAdditionalTestNamespace); @@ -99,16 +97,15 @@ void changeToWatchAllNamespaces() { private static void assertReconciled(ChangeNamespaceTestReconciler reconciler, ChangeNamespaceTestCustomResource resourceInAdditionalTestNamespace) { - await().untilAsserted( - () -> assertThat( - reconciler.numberOfResourceReconciliations(resourceInAdditionalTestNamespace)) - .isEqualTo(2)); + await().untilAsserted(() -> assertThat( + reconciler.numberOfResourceReconciliations(resourceInAdditionalTestNamespace)) + .isEqualTo(2)); } private static void assertNotReconciled(ChangeNamespaceTestReconciler reconciler, ChangeNamespaceTestCustomResource resourceInAdditionalTestNamespace) { - await().pollDelay(Duration.ofMillis(200)).untilAsserted( - () -> assertThat( + await().pollDelay(Duration.ofMillis(200)) + .untilAsserted(() -> assertThat( reconciler.numberOfResourceReconciliations(resourceInAdditionalTestNamespace)) .isZero()); } @@ -120,9 +117,7 @@ private ChangeNamespaceTestCustomResource createResourceInAdditionalNamespace() private ChangeNamespaceTestCustomResource createResourceInAdditionalNamespace(String name) { var res = customResource(name); return client().resources(ChangeNamespaceTestCustomResource.class) - .inNamespace(ADDITIONAL_TEST_NAMESPACE) - .resource(res) - .create(); + .inNamespace(ADDITIONAL_TEST_NAMESPACE).resource(res).create(); } private KubernetesClient client() { @@ -130,15 +125,13 @@ private KubernetesClient client() { } private Namespace additionalTestNamespace() { - return new NamespaceBuilder().withMetadata(new ObjectMetaBuilder() - .withName(ADDITIONAL_TEST_NAMESPACE) - .build()).build(); + return new NamespaceBuilder() + .withMetadata(new ObjectMetaBuilder().withName(ADDITIONAL_TEST_NAMESPACE).build()).build(); } private ChangeNamespaceTestCustomResource customResource(String name) { ChangeNamespaceTestCustomResource customResource = new ChangeNamespaceTestCustomResource(); - customResource.setMetadata( - new ObjectMetaBuilder().withName(name).build()); + customResource.setMetadata(new ObjectMetaBuilder().withName(name).build()); return customResource; } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceTestCustomResource.java index eff8a4bb3f..a7618843ac 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceTestCustomResource.java @@ -8,7 +8,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") public class ChangeNamespaceTestCustomResource - extends CustomResource<Void, ChangeNamespaceTestCustomResourceStatus> - implements Namespaced { + extends CustomResource<Void, ChangeNamespaceTestCustomResourceStatus> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceTestReconciler.java index fc14b0951f..f5730320f6 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/changenamespace/ChangeNamespaceTestReconciler.java @@ -24,11 +24,8 @@ public List<EventSource<?, ChangeNamespaceTestCustomResource>> prepareEventSourc EventSourceContext<ChangeNamespaceTestCustomResource> context) { InformerEventSource<ConfigMap, ChangeNamespaceTestCustomResource> configMapES = - new InformerEventSource<>( - InformerEventSourceConfiguration - .from(ConfigMap.class, ChangeNamespaceTestCustomResource.class) - .build(), - context); + new InformerEventSource<>(InformerEventSourceConfiguration + .from(ConfigMap.class, ChangeNamespaceTestCustomResource.class).build(), context); return List.of(configMapES); } @@ -41,8 +38,7 @@ public UpdateControl<ChangeNamespaceTestCustomResource> reconcile( var actualConfigMap = context.getSecondaryResource(ConfigMap.class); if (actualConfigMap.isEmpty()) { context.getClient().configMaps().inNamespace(primary.getMetadata().getNamespace()) - .resource(configMap(primary)) - .create(); + .resource(configMap(primary)).create(); } if (primary.getStatus() == null) { @@ -51,10 +47,9 @@ public UpdateControl<ChangeNamespaceTestCustomResource> reconcile( increaseNumberOfResourceExecutions(primary); var statusPatchResource = new ChangeNamespaceTestCustomResource(); - statusPatchResource.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + statusPatchResource + .setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); statusPatchResource.setStatus(new ChangeNamespaceTestCustomResourceStatus()); var statusUpdates = primary.getStatus().getNumberOfStatusUpdates(); statusPatchResource.getStatus().setNumberOfStatusUpdates(statusUpdates + 1); @@ -74,8 +69,7 @@ public int numberOfResourceReconciliations(ChangeNamespaceTestCustomResource pri private ConfigMap configMap(ChangeNamespaceTestCustomResource primary) { ConfigMap configMap = new ConfigMap(); configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap.setData(Map.of("data", primary.getMetadata().getName())); configMap.addOwnerReference(primary); return configMap; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanerforreconciler/CleanerForReconcilerCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanerforreconciler/CleanerForReconcilerCustomResource.java index 4367d6d089..45af707d00 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanerforreconciler/CleanerForReconcilerCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanerforreconciler/CleanerForReconcilerCustomResource.java @@ -11,7 +11,6 @@ @Version("v1") @Kind("CleanerForReconcilerCustomResource") @ShortNames("cfr") -public class CleanerForReconcilerCustomResource - extends CustomResource<Void, String> +public class CleanerForReconcilerCustomResource extends CustomResource<Void, String> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanerforreconciler/CleanerForReconcilerIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanerforreconciler/CleanerForReconcilerIT.java index 04ea2f9646..63ccaef88c 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanerforreconciler/CleanerForReconcilerIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanerforreconciler/CleanerForReconcilerIT.java @@ -14,9 +14,8 @@ class CleanerForReconcilerIT { public static final String TEST_RESOURCE_NAME = "cleaner-for-reconciler-test1"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new CleanerForReconcilerTestReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new CleanerForReconcilerTestReconciler()).build(); @Test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanerforreconciler/CleanerForReconcilerTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanerforreconciler/CleanerForReconcilerTestReconciler.java index 8bb5fa1062..2ca425b6ec 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanerforreconciler/CleanerForReconcilerTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanerforreconciler/CleanerForReconcilerTestReconciler.java @@ -8,8 +8,7 @@ @ControllerConfiguration public class CleanerForReconcilerTestReconciler implements Reconciler<CleanerForReconcilerCustomResource>, - Cleaner<CleanerForReconcilerCustomResource>, - TestExecutionInfoProvider { + Cleaner<CleanerForReconcilerCustomResource>, TestExecutionInfoProvider { public static final int RESCHEDULE_DELAY = 150; private final AtomicInteger numberOfExecutions = new AtomicInteger(0); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanupconflict/CleanupConflictCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanupconflict/CleanupConflictCustomResource.java index 82f51c1f83..baf20ebd57 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanupconflict/CleanupConflictCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanupconflict/CleanupConflictCustomResource.java @@ -12,7 +12,6 @@ @Kind("CleanupConflictCustomResource") @ShortNames("ccc") public class CleanupConflictCustomResource - extends CustomResource<Void, CleanupConflictCustomResourceStatus> - implements Namespaced { + extends CustomResource<Void, CleanupConflictCustomResourceStatus> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanupconflict/CleanupConflictIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanupconflict/CleanupConflictIT.java index 4d79d6d1d3..f54900a89b 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanupconflict/CleanupConflictIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanupconflict/CleanupConflictIT.java @@ -19,8 +19,7 @@ class CleanupConflictIT { @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new CleanupConflictReconciler()) - .build(); + LocallyRunOperatorExtension.builder().withReconciler(new CleanupConflictReconciler()).build(); @Test void cleanupRemovesFinalizerWithoutConflict() throws InterruptedException { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanupconflict/CleanupConflictReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanupconflict/CleanupConflictReconciler.java index 1c66fde159..3c4c376546 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanupconflict/CleanupConflictReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/cleanupconflict/CleanupConflictReconciler.java @@ -14,8 +14,7 @@ public class CleanupConflictReconciler @Override public UpdateControl<CleanupConflictCustomResource> reconcile( - CleanupConflictCustomResource resource, - Context<CleanupConflictCustomResource> context) { + CleanupConflictCustomResource resource, Context<CleanupConflictCustomResource> context) { numberReconcileExecutions.addAndGet(1); return UpdateControl.noUpdate(); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/clusterscopedresource/ClusterScopedCustomResourceReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/clusterscopedresource/ClusterScopedCustomResourceReconciler.java index dd3316f8fc..f515542812 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/clusterscopedresource/ClusterScopedCustomResourceReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/clusterscopedresource/ClusterScopedCustomResourceReconciler.java @@ -26,8 +26,8 @@ public class ClusterScopedCustomResourceReconciler public static final String TEST_LABEL_KEY = "test"; @Override - public UpdateControl<ClusterScopedCustomResource> reconcile( - ClusterScopedCustomResource resource, Context<ClusterScopedCustomResource> context) { + public UpdateControl<ClusterScopedCustomResource> reconcile(ClusterScopedCustomResource resource, + Context<ClusterScopedCustomResource> context) { var optionalConfigMap = context.getSecondaryResource(ConfigMap.class); @@ -45,13 +45,10 @@ public UpdateControl<ClusterScopedCustomResource> reconcile( private ConfigMap desired(ClusterScopedCustomResource resource) { var cm = new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(resource.getMetadata().getName()) + .withMetadata(new ObjectMetaBuilder().withName(resource.getMetadata().getName()) .withNamespace(resource.getSpec().getTargetNamespace()) - .withLabels(Map.of(TEST_LABEL_KEY, TEST_LABEL_VALUE)) - .build()) - .withData(Map.of(DATA_KEY, resource.getSpec().getData())) - .build(); + .withLabels(Map.of(TEST_LABEL_KEY, TEST_LABEL_VALUE)).build()) + .withData(Map.of(DATA_KEY, resource.getSpec().getData())).build(); cm.addOwnerReference(resource); return cm; } @@ -63,8 +60,7 @@ public List<EventSource<?, ClusterScopedCustomResource>> prepareEventSources( InformerEventSourceConfiguration.from(ConfigMap.class, ClusterScopedCustomResource.class) .withSecondaryToPrimaryMapper( Mappers.fromOwnerReferences(context.getPrimaryResourceClass(), true)) - .withLabelSelector(TEST_LABEL_KEY + "=" + TEST_LABEL_VALUE) - .build(), + .withLabelSelector(TEST_LABEL_KEY + "=" + TEST_LABEL_VALUE).build(), context); return List.of(ies); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/clusterscopedresource/ClusterScopedResourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/clusterscopedresource/ClusterScopedResourceIT.java index e923084425..58baaf5b12 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/clusterscopedresource/ClusterScopedResourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/clusterscopedresource/ClusterScopedResourceIT.java @@ -19,9 +19,8 @@ class ClusterScopedResourceIT { public static final String INITIAL_DATA = "initialData"; public static final String UPDATED_DATA = "updatedData"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new ClusterScopedCustomResourceReconciler()).build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new ClusterScopedCustomResourceReconciler()).build(); @Test void crudOperationOnClusterScopedCustomResource() { @@ -54,9 +53,7 @@ void crudOperationOnClusterScopedCustomResource() { ClusterScopedCustomResource testResource() { var res = new ClusterScopedCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_NAME).build()); res.setSpec(new ClusterScopedCustomResourceSpec()); res.getSpec().setTargetNamespace(operator.getNamespace()); res.getSpec().setData(INITIAL_DATA); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/CreateUpdateEventFilterTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/CreateUpdateEventFilterTestCustomResource.java index 31ef818cd6..a524230252 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/CreateUpdateEventFilterTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/CreateUpdateEventFilterTestCustomResource.java @@ -9,9 +9,7 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("cue") -public class CreateUpdateEventFilterTestCustomResource - extends - CustomResource<CreateUpdateEventFilterTestCustomResourceSpec, Void> - implements Namespaced { +public class CreateUpdateEventFilterTestCustomResource extends + CustomResource<CreateUpdateEventFilterTestCustomResourceSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/CreateUpdateEventFilterTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/CreateUpdateEventFilterTestReconciler.java index 4ec65f5673..769fc96aa3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/CreateUpdateEventFilterTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/CreateUpdateEventFilterTestReconciler.java @@ -33,17 +33,14 @@ public UpdateControl<CreateUpdateEventFilterTestCustomResource> reconcile( numberOfExecutions.incrementAndGet(); ConfigMap configMap = - context.getClient() - .configMaps() - .inNamespace(resource.getMetadata().getNamespace()) - .withName(resource.getMetadata().getName()) - .get(); + context.getClient().configMaps().inNamespace(resource.getMetadata().getNamespace()) + .withName(resource.getMetadata().getName()).get(); if (configMap == null) { configMapDR.desired = createConfigMap(resource); configMapDR.reconcile(resource, context); } else { - if (!Objects.equals( - configMap.getData().get(CONFIG_MAP_TEST_DATA_KEY), resource.getSpec().getValue())) { + if (!Objects.equals(configMap.getData().get(CONFIG_MAP_TEST_DATA_KEY), + resource.getSpec().getValue())) { configMap.getData().put(CONFIG_MAP_TEST_DATA_KEY, resource.getSpec().getValue()); configMapDR.desired = configMap; configMapDR.reconcile(resource, context); @@ -72,12 +69,9 @@ public List<EventSource<?, CreateUpdateEventFilterTestCustomResource>> prepareEv InformerEventSourceConfiguration<ConfigMap> informerConfiguration = InformerEventSourceConfiguration .from(ConfigMap.class, CreateUpdateEventFilterTestCustomResource.class) - .withLabelSelector("integrationtest = " + this.getClass().getSimpleName()) - .build(); + .withLabelSelector("integrationtest = " + this.getClass().getSimpleName()).build(); - final var informerEventSource = - new InformerEventSource<>( - informerConfiguration, context); + final var informerEventSource = new InformerEventSource<>(informerConfiguration, context); this.configMapDR.setEventSource(informerEventSource); return List.of(informerEventSource); @@ -87,8 +81,7 @@ public int getNumberOfExecutions() { return numberOfExecutions.get(); } - private static final class DirectConfigMapDependentResource - extends + private static final class DirectConfigMapDependentResource extends CRUDKubernetesDependentResource<ConfigMap, CreateUpdateEventFilterTestCustomResource> { private ConfigMap desired; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/CreateUpdateInformerEventSourceEventFilterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/CreateUpdateInformerEventSourceEventFilterIT.java index 9c69087e74..a7a5a50295 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/CreateUpdateInformerEventSourceEventFilterIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/CreateUpdateInformerEventSourceEventFilterIT.java @@ -16,23 +16,19 @@ class CreateUpdateInformerEventSourceEventFilterIT { @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new CreateUpdateEventFilterTestReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new CreateUpdateEventFilterTestReconciler()).build(); @Test void updateEventNotReceivedAfterCreateOrUpdate() { CreateUpdateEventFilterTestCustomResource resource = CreateUpdateInformerEventSourceEventFilterIT.prepareTestResource(); - var createdResource = - operator.create(resource); + var createdResource = operator.create(resource); assertData(operator, createdResource, 1, 1); - CreateUpdateEventFilterTestCustomResource actualCreatedResource = - operator.get(CreateUpdateEventFilterTestCustomResource.class, - resource.getMetadata().getName()); + CreateUpdateEventFilterTestCustomResource actualCreatedResource = operator + .get(CreateUpdateEventFilterTestCustomResource.class, resource.getMetadata().getName()); actualCreatedResource.getSpec().setValue("2"); operator.replace(actualCreatedResource); @@ -41,17 +37,13 @@ void updateEventNotReceivedAfterCreateOrUpdate() { static void assertData(LocallyRunOperatorExtension operator, CreateUpdateEventFilterTestCustomResource resource, int minExecutions, int maxExecutions) { - await() - .atMost(Duration.ofSeconds(1)) - .until(() -> { - var cm = operator.get(ConfigMap.class, resource.getMetadata().getName()); - if (cm == null) { - return false; - } - return cm.getData() - .get(CONFIG_MAP_TEST_DATA_KEY) - .equals(resource.getSpec().getValue()); - }); + await().atMost(Duration.ofSeconds(1)).until(() -> { + var cm = operator.get(ConfigMap.class, resource.getMetadata().getName()); + if (cm == null) { + return false; + } + return cm.getData().get(CONFIG_MAP_TEST_DATA_KEY).equals(resource.getSpec().getValue()); + }); int numberOfExecutions = ((CreateUpdateEventFilterTestReconciler) operator.getFirstReconciler()) .getNumberOfExecutions(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/PreviousAnnotationDisabledIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/PreviousAnnotationDisabledIT.java index 209c5fd15c..84d33d409e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/PreviousAnnotationDisabledIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/PreviousAnnotationDisabledIT.java @@ -8,25 +8,21 @@ class PreviousAnnotationDisabledIT { @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new CreateUpdateEventFilterTestReconciler()) - .withConfigurationService( - overrider -> overrider.withPreviousAnnotationForDependentResources(false)) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new CreateUpdateEventFilterTestReconciler()).withConfigurationService( + overrider -> overrider.withPreviousAnnotationForDependentResources(false)) + .build(); @Test void updateEventReceivedAfterCreateOrUpdate() { CreateUpdateEventFilterTestCustomResource resource = CreateUpdateInformerEventSourceEventFilterIT.prepareTestResource(); - var createdResource = - operator.create(resource); + var createdResource = operator.create(resource); CreateUpdateInformerEventSourceEventFilterIT.assertData(operator, createdResource, 1, 2); - CreateUpdateEventFilterTestCustomResource actualCreatedResource = - operator.get(CreateUpdateEventFilterTestCustomResource.class, - resource.getMetadata().getName()); + CreateUpdateEventFilterTestCustomResource actualCreatedResource = operator + .get(CreateUpdateEventFilterTestCustomResource.class, resource.getMetadata().getName()); actualCreatedResource.getSpec().setValue("2"); operator.replace(actualCreatedResource); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/deployment/DeploymentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/deployment/DeploymentReconciler.java index ef04ca644a..9d1722fe23 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/deployment/DeploymentReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/deployment/DeploymentReconciler.java @@ -18,8 +18,7 @@ @ControllerConfiguration( informer = @Informer(labelSelector = "test=KubernetesResourceStatusUpdateIT")) -public class DeploymentReconciler - implements Reconciler<Deployment>, TestExecutionInfoProvider { +public class DeploymentReconciler implements Reconciler<Deployment>, TestExecutionInfoProvider { public static final String STATUS_MESSAGE = "Reconciled by DeploymentReconciler"; @@ -27,8 +26,7 @@ public class DeploymentReconciler private final AtomicInteger numberOfExecutions = new AtomicInteger(0); @Override - public UpdateControl<Deployment> reconcile( - Deployment resource, Context<Deployment> context) { + public UpdateControl<Deployment> reconcile(Deployment resource, Context<Deployment> context) { log.info("Reconcile deployment: {}", resource); numberOfExecutions.incrementAndGet(); @@ -42,8 +40,8 @@ public UpdateControl<Deployment> reconcile( var condition = conditions.stream().filter(c -> c.getMessage().equals(STATUS_MESSAGE)).findFirst(); if (condition.isEmpty()) { - conditions.add(new DeploymentCondition(null, null, STATUS_MESSAGE, null, - "unknown", "DeploymentReconciler")); + conditions.add(new DeploymentCondition(null, null, STATUS_MESSAGE, null, "unknown", + "DeploymentReconciler")); return UpdateControl.patchStatus(resource); } else { return UpdateControl.noUpdate(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/deployment/KubernetesResourceStatusUpdateIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/deployment/KubernetesResourceStatusUpdateIT.java index dff60df5cd..08a1936373 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/deployment/KubernetesResourceStatusUpdateIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/deployment/KubernetesResourceStatusUpdateIT.java @@ -39,10 +39,8 @@ void testReconciliationOfNonCustomResourceAndStatusUpdate() { // wait until the pod is ready, if not this is causing some test stability issues with // namespace cleanup in k8s version 1.22 assertThat(d.getStatus().getReadyReplicas()).isGreaterThanOrEqualTo(1); - assertThat( - d.getStatus().getConditions().stream().filter(c -> c.getMessage().equals(STATUS_MESSAGE)) - .count()) - .isEqualTo(1); + assertThat(d.getStatus().getConditions().stream() + .filter(c -> c.getMessage().equals(STATUS_MESSAGE)).count()).isEqualTo(1); }); } @@ -51,10 +49,7 @@ private Deployment testDeployment() { Map<String, String> labels = new HashMap<>(); labels.put("test", "KubernetesResourceStatusUpdateIT"); resource.setMetadata( - new ObjectMetaBuilder() - .withName("test-deployment") - .withLabels(labels) - .build()); + new ObjectMetaBuilder().withName("test-deployment").withLabels(labels).build()); DeploymentSpec spec = new DeploymentSpec(); resource.setSpec(spec); spec.setReplicas(1); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationCustomResource.java index 339f14434a..85b898bf6a 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationCustomResource.java @@ -9,8 +9,7 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("dger") -public class DynamicGenericEventSourceRegistrationCustomResource - extends CustomResource<Void, Void> +public class DynamicGenericEventSourceRegistrationCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationIT.java index b00573e334..2985b79408 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationIT.java @@ -17,10 +17,8 @@ class DynamicGenericEventSourceRegistrationIT { public static final String TEST_RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(DynamicGenericEventSourceRegistrationReconciler.class) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(DynamicGenericEventSourceRegistrationReconciler.class).build(); @Test void registersEventSourcesDynamically() { @@ -52,9 +50,7 @@ void registersEventSourcesDynamically() { DynamicGenericEventSourceRegistrationCustomResource testResource() { var res = new DynamicGenericEventSourceRegistrationCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); return res; } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationReconciler.java index 0abf91f32f..d187db79e0 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/dynamicgenericeventsourceregistration/DynamicGenericEventSourceRegistrationReconciler.java @@ -28,40 +28,34 @@ public UpdateControl<DynamicGenericEventSourceRegistrationCustomResource> reconc numberOfExecutions.addAndGet(1); - context.eventSourceRetriever().dynamicallyRegisterEventSource( - genericInformerFor(ConfigMap.class, context)); - context.eventSourceRetriever().dynamicallyRegisterEventSource( - genericInformerFor(Secret.class, context)); + context.eventSourceRetriever() + .dynamicallyRegisterEventSource(genericInformerFor(ConfigMap.class, context)); + context.eventSourceRetriever() + .dynamicallyRegisterEventSource(genericInformerFor(Secret.class, context)); context.getClient().resource(secret(primary)).createOr(NonDeletingOperation::update); context.getClient().resource(configMap(primary)).createOr(NonDeletingOperation::update); - numberOfEventSources.set(context.eventSourceRetriever() - .getEventSourcesFor(GenericKubernetesResource.class).size()); + numberOfEventSources.set( + context.eventSourceRetriever().getEventSourcesFor(GenericKubernetesResource.class).size()); return UpdateControl.noUpdate(); } private Secret secret(DynamicGenericEventSourceRegistrationCustomResource primary) { var secret = new SecretBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .withData(Map.of("key", Base64.getEncoder().encodeToString("val".getBytes()))) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()) + .withData(Map.of("key", Base64.getEncoder().encodeToString("val".getBytes()))).build(); secret.addOwnerReference(primary); return secret; } private ConfigMap configMap(DynamicGenericEventSourceRegistrationCustomResource primary) { var cm = new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .withData(Map.of("key", "val")) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()) + .withData(Map.of("key", "val")).build(); cm.addOwnerReference(primary); return cm; } @@ -74,8 +68,7 @@ private InformerEventSource<GenericKubernetesResource, DynamicGenericEventSource InformerEventSourceConfiguration .from(GroupVersionKind.gvkFor(clazz), DynamicGenericEventSourceRegistrationCustomResource.class) - .withName(clazz.getSimpleName()) - .build(), + .withName(clazz.getSimpleName()).build(), context.eventSourceRetriever().eventSourceContextForDynamicRegistration()); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/errorstatushandler/ErrorStatusHandlerIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/errorstatushandler/ErrorStatusHandlerIT.java index 6e69a50e82..32bf502cb3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/errorstatushandler/ErrorStatusHandlerIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/errorstatushandler/ErrorStatusHandlerIT.java @@ -19,39 +19,29 @@ class ErrorStatusHandlerIT { @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(reconciler, - new GenericRetry().setMaxAttempts(MAX_RETRY_ATTEMPTS).withLinearRetry()) - .build(); + LocallyRunOperatorExtension.builder().withReconciler(reconciler, + new GenericRetry().setMaxAttempts(MAX_RETRY_ATTEMPTS).withLinearRetry()).build(); @Test void testErrorMessageSetEventually() { - ErrorStatusHandlerTestCustomResource resource = - operator.create(createCustomResource()); - - await() - .atMost(10, TimeUnit.SECONDS) - .pollInterval(250, TimeUnit.MICROSECONDS) - .untilAsserted( - () -> { - ErrorStatusHandlerTestCustomResource res = - operator.get(ErrorStatusHandlerTestCustomResource.class, - resource.getMetadata().getName()); - assertThat(res.getStatus()).isNotNull(); - for (int i = 0; i < MAX_RETRY_ATTEMPTS + 1; i++) { - assertThat(res.getStatus().getMessages()) - .contains(ErrorStatusHandlerTestReconciler.ERROR_STATUS_MESSAGE + i); - } - }); + ErrorStatusHandlerTestCustomResource resource = operator.create(createCustomResource()); + + await().atMost(10, TimeUnit.SECONDS).pollInterval(250, TimeUnit.MICROSECONDS) + .untilAsserted(() -> { + ErrorStatusHandlerTestCustomResource res = operator + .get(ErrorStatusHandlerTestCustomResource.class, resource.getMetadata().getName()); + assertThat(res.getStatus()).isNotNull(); + for (int i = 0; i < MAX_RETRY_ATTEMPTS + 1; i++) { + assertThat(res.getStatus().getMessages()) + .contains(ErrorStatusHandlerTestReconciler.ERROR_STATUS_MESSAGE + i); + } + }); } public ErrorStatusHandlerTestCustomResource createCustomResource() { ErrorStatusHandlerTestCustomResource resource = new ErrorStatusHandlerTestCustomResource(); - resource.setMetadata( - new ObjectMetaBuilder() - .withName("error-status-test") - .withNamespace(operator.getNamespace()) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName("error-status-test") + .withNamespace(operator.getNamespace()).build()); return resource; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/errorstatushandler/ErrorStatusHandlerTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/errorstatushandler/ErrorStatusHandlerTestCustomResource.java index 0606115f5f..ca4414ef00 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/errorstatushandler/ErrorStatusHandlerTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/errorstatushandler/ErrorStatusHandlerTestCustomResource.java @@ -12,6 +12,5 @@ @Kind("ErrorStatusHandlerTestCustomResource") @ShortNames("esh") public class ErrorStatusHandlerTestCustomResource - extends CustomResource<Void, ErrorStatusHandlerTestCustomResourceStatus> - implements Namespaced { + extends CustomResource<Void, ErrorStatusHandlerTestCustomResourceStatus> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/event/EventSourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/event/EventSourceIT.java index 227adaeadc..c2ded9c312 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/event/EventSourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/event/EventSourceIT.java @@ -15,9 +15,8 @@ class EventSourceIT { @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(EventSourceTestCustomReconciler.class) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(EventSourceTestCustomReconciler.class).build(); @Test void receivingPeriodicEvents() { @@ -25,22 +24,16 @@ void receivingPeriodicEvents() { operator.create(resource); - await() - .atMost(5, TimeUnit.SECONDS) - .pollInterval( - EventSourceTestCustomReconciler.TIMER_PERIOD / 2, TimeUnit.MILLISECONDS) + await().atMost(5, TimeUnit.SECONDS) + .pollInterval(EventSourceTestCustomReconciler.TIMER_PERIOD / 2, TimeUnit.MILLISECONDS) .untilAsserted( - () -> assertThat(TestUtils.getNumberOfExecutions(operator)) - .isGreaterThanOrEqualTo(4)); + () -> assertThat(TestUtils.getNumberOfExecutions(operator)).isGreaterThanOrEqualTo(4)); } public EventSourceTestCustomResource createTestCustomResource(String id) { EventSourceTestCustomResource resource = new EventSourceTestCustomResource(); - resource.setMetadata( - new ObjectMetaBuilder() - .withName("eventsource-" + id) - .withNamespace(operator.getNamespace()) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName("eventsource-" + id) + .withNamespace(operator.getNamespace()).build()); resource.setSpec(new EventSourceTestCustomResourceSpec()); resource.getSpec().setValue(id); return resource; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/event/EventSourceTestCustomReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/event/EventSourceTestCustomReconciler.java index 59f27e5723..2993a29103 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/event/EventSourceTestCustomReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/event/EventSourceTestCustomReconciler.java @@ -7,8 +7,7 @@ @ControllerConfiguration public class EventSourceTestCustomReconciler - implements Reconciler<EventSourceTestCustomResource>, - TestExecutionInfoProvider { + implements Reconciler<EventSourceTestCustomResource>, TestExecutionInfoProvider { public static final int TIMER_PERIOD = 500; private final AtomicInteger numberOfExecutions = new AtomicInteger(0); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/FilterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/FilterIT.java index 634873ec86..496524fb28 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/FilterIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/FilterIT.java @@ -19,24 +19,25 @@ class FilterIT { @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(FilterTestReconciler.class) - .build(); + LocallyRunOperatorExtension.builder().withReconciler(FilterTestReconciler.class).build(); @Test void filtersControllerResourceUpdate() { var res = operator.create(createResource()); // One for CR create event other for ConfigMap event await().pollDelay(Duration.ofMillis(POLL_DELAY)) - .untilAsserted(() -> assertThat(operator.getReconcilerOfType(FilterTestReconciler.class) - .getNumberOfExecutions()).isEqualTo(2)); + .untilAsserted(() -> assertThat( + operator.getReconcilerOfType(FilterTestReconciler.class).getNumberOfExecutions()) + .isEqualTo(2)); res.getSpec().setValue(FilterTestReconciler.CUSTOM_RESOURCE_FILTER_VALUE); operator.replace(res); // not more reconciliation with the filtered value await().pollDelay(Duration.ofMillis(POLL_DELAY)) - .untilAsserted(() -> assertThat(operator.getReconcilerOfType(FilterTestReconciler.class) - .getNumberOfExecutions()).isEqualTo(2)); + .untilAsserted(() -> assertThat( + operator.getReconcilerOfType(FilterTestReconciler.class).getNumberOfExecutions()) + .isEqualTo(2)); } @Test @@ -44,24 +45,24 @@ void filtersSecondaryResourceUpdate() { var res = operator.create(createResource()); // One for CR create event other for ConfigMap event await().pollDelay(Duration.ofMillis(POLL_DELAY)) - .untilAsserted(() -> assertThat(operator.getReconcilerOfType(FilterTestReconciler.class) - .getNumberOfExecutions()).isEqualTo(2)); + .untilAsserted(() -> assertThat( + operator.getReconcilerOfType(FilterTestReconciler.class).getNumberOfExecutions()) + .isEqualTo(2)); res.getSpec().setValue(CONFIG_MAP_FILTER_VALUE); operator.replace(res); // the CM event filtered out await().pollDelay(Duration.ofMillis(POLL_DELAY)) - .untilAsserted(() -> assertThat(operator.getReconcilerOfType(FilterTestReconciler.class) - .getNumberOfExecutions()).isEqualTo(3)); + .untilAsserted(() -> assertThat( + operator.getReconcilerOfType(FilterTestReconciler.class).getNumberOfExecutions()) + .isEqualTo(3)); } FilterTestCustomResource createResource() { FilterTestCustomResource resource = new FilterTestCustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withName(RESOURCE_NAME) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(RESOURCE_NAME).build()); resource.setSpec(new FilterTestResourceSpec()); resource.getSpec().setValue("value1"); return resource; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/FilterTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/FilterTestCustomResource.java index a9f560b9bb..83a34deeb9 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/FilterTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/FilterTestCustomResource.java @@ -10,8 +10,7 @@ @Version("v1") @ShortNames("ftc") public class FilterTestCustomResource - extends CustomResource<FilterTestResourceSpec, FilterTestResourceStatus> - implements Namespaced { + extends CustomResource<FilterTestResourceSpec, FilterTestResourceStatus> implements Namespaced { public String getConfigMapName(int id) { return "configmap" + id; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/FilterTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/FilterTestReconciler.java index add0075a3b..4afd531f7e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/FilterTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/FilterTestReconciler.java @@ -17,8 +17,7 @@ import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource; @ControllerConfiguration(informer = @Informer(onUpdateFilter = UpdateFilter.class)) -public class FilterTestReconciler - implements Reconciler<FilterTestCustomResource> { +public class FilterTestReconciler implements Reconciler<FilterTestCustomResource> { public static final String CONFIG_MAP_FILTER_VALUE = "config_map_skip_this"; public static final String CUSTOM_RESOURCE_FILTER_VALUE = "custom_resource_skip_this"; @@ -27,22 +26,18 @@ public class FilterTestReconciler private final AtomicInteger numberOfExecutions = new AtomicInteger(0); @Override - public UpdateControl<FilterTestCustomResource> reconcile( - FilterTestCustomResource resource, + public UpdateControl<FilterTestCustomResource> reconcile(FilterTestCustomResource resource, Context<FilterTestCustomResource> context) { numberOfExecutions.addAndGet(1); context.getClient().configMaps().inNamespace(resource.getMetadata().getNamespace()) - .resource(createConfigMap(resource)) - .createOrReplace(); + .resource(createConfigMap(resource)).createOrReplace(); return UpdateControl.noUpdate(); } private ConfigMap createConfigMap(FilterTestCustomResource resource) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(resource.getMetadata().getName()) - .withNamespace(resource.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(resource.getMetadata().getName()) + .withNamespace(resource.getMetadata().getNamespace()).build()); configMap.addOwnerReference(resource); configMap.setData(Map.of(CM_VALUE_KEY, resource.getSpec().getValue())); return configMap; @@ -59,9 +54,8 @@ public List<EventSource<?, FilterTestCustomResource>> prepareEventSources( final var informerConfiguration = InformerEventSourceConfiguration .from(ConfigMap.class, FilterTestCustomResource.class) - .withOnUpdateFilter((newCM, - oldCM) -> !newCM.getData().get(CM_VALUE_KEY) - .equals(CONFIG_MAP_FILTER_VALUE)) + .withOnUpdateFilter( + (newCM, oldCM) -> !newCM.getData().get(CM_VALUE_KEY).equals(CONFIG_MAP_FILTER_VALUE)) .build(); InformerEventSource<ConfigMap, FilterTestCustomResource> configMapES = new InformerEventSource<>(informerConfiguration, context); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/UpdateFilter.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/UpdateFilter.java index 7f697d32a1..62d7ceaa76 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/UpdateFilter.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/filter/UpdateFilter.java @@ -4,8 +4,7 @@ import static io.javaoperatorsdk.operator.baseapi.filter.FilterTestReconciler.CUSTOM_RESOURCE_FILTER_VALUE; -public class UpdateFilter - implements OnUpdateFilter<FilterTestCustomResource> { +public class UpdateFilter implements OnUpdateFilter<FilterTestCustomResource> { @Override public boolean accept(FilterTestCustomResource resource, FilterTestCustomResource oldResource) { return !resource.getSpec().getValue().equals(CUSTOM_RESOURCE_FILTER_VALUE); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingCustomResource.java index 45f424b8eb..35ea639ad7 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingCustomResource.java @@ -11,6 +11,5 @@ @Version("v1") @ShortNames("gkrr") public class GenericKubernetesResourceHandlingCustomResource - extends CustomResource<GenericKubernetesDependentSpec, Void> - implements Namespaced { + extends CustomResource<GenericKubernetesDependentSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingIT.java index 0e4700a482..8ac2c65164 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingIT.java @@ -11,10 +11,8 @@ public class GenericKubernetesResourceHandlingIT extends GenericKubernetesDependentTestBase<GenericKubernetesResourceHandlingCustomResource> { @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new GenericKubernetesResourceHandlingReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new GenericKubernetesResourceHandlingReconciler()).build(); @Override public LocallyRunOperatorExtension extension() { @@ -24,9 +22,7 @@ public LocallyRunOperatorExtension extension() { @Override public GenericKubernetesResourceHandlingCustomResource testResource(String name, String data) { var resource = new GenericKubernetesResourceHandlingCustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withName(name) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(name).build()); resource.setSpec(new GenericKubernetesDependentSpec()); resource.getSpec().setValue(INITIAL_DATA); return resource; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingReconciler.java index 2d7cf217bc..1e1eb83891 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/generickubernetesresourcehandling/GenericKubernetesResourceHandlingReconciler.java @@ -68,9 +68,9 @@ GenericKubernetesResource desiredConfigMap( public List<EventSource<?, GenericKubernetesResourceHandlingCustomResource>> prepareEventSources( EventSourceContext<GenericKubernetesResourceHandlingCustomResource> context) { - var informerEventSource = new InformerEventSource<>(InformerEventSourceConfiguration.from( - new GroupVersionKind("", VERSION, KIND), - GenericKubernetesResourceHandlingCustomResource.class).build(), + var informerEventSource = new InformerEventSource<>( + InformerEventSourceConfiguration.from(new GroupVersionKind("", VERSION, KIND), + GenericKubernetesResourceHandlingCustomResource.class).build(), context); return List.of(informerEventSource); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/gracefulstop/GracefulStopIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/gracefulstop/GracefulStopIT.java index a28d6da07d..e23b181798 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/gracefulstop/GracefulStopIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/gracefulstop/GracefulStopIT.java @@ -17,12 +17,10 @@ public class GracefulStopIT { public static final String TEST_1 = "test1"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withConfigurationService(o -> o.withCloseClientOnStop(false) - .withReconciliationTerminationTimeout(Duration.ofMillis(RECONCILER_SLEEP))) - .withReconciler(new GracefulStopTestReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withConfigurationService(o -> o.withCloseClientOnStop(false) + .withReconciliationTerminationTimeout(Duration.ofMillis(RECONCILER_SLEEP))) + .withReconciler(new GracefulStopTestReconciler()).build(); @Test void stopsGracefullyWithTimeoutConfiguration() { @@ -35,16 +33,18 @@ private void testGracefulStop(String resourceName, int expectedFinalGeneration) var r = operator.get(GracefulStopTestCustomResource.class, resourceName); assertThat(r.getStatus()).isNotNull(); assertThat(r.getStatus().getObservedGeneration()).isEqualTo(1); - assertThat(operator.getReconcilerOfType(GracefulStopTestReconciler.class) - .getNumberOfExecutions()).isEqualTo(1); + assertThat( + operator.getReconcilerOfType(GracefulStopTestReconciler.class).getNumberOfExecutions()) + .isEqualTo(1); }); testRes.getSpec().setValue(2); operator.replace(testRes); - await().pollDelay(Duration.ofMillis(50)).untilAsserted( - () -> assertThat(operator.getReconcilerOfType(GracefulStopTestReconciler.class) - .getNumberOfExecutions()).isEqualTo(2)); + await().pollDelay(Duration.ofMillis(50)) + .untilAsserted(() -> assertThat( + operator.getReconcilerOfType(GracefulStopTestReconciler.class).getNumberOfExecutions()) + .isEqualTo(2)); operator.getOperator().stop(); @@ -56,13 +56,9 @@ private void testGracefulStop(String resourceName, int expectedFinalGeneration) } public GracefulStopTestCustomResource testResource(String name) { - GracefulStopTestCustomResource resource = - new GracefulStopTestCustomResource(); + GracefulStopTestCustomResource resource = new GracefulStopTestCustomResource(); resource.setMetadata( - new ObjectMetaBuilder() - .withName(name) - .withNamespace(operator.getNamespace()) - .build()); + new ObjectMetaBuilder().withName(name).withNamespace(operator.getNamespace()).build()); resource.setSpec(new GracefulStopTestCustomResourceSpec()); resource.getSpec().setValue(1); return resource; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/gracefulstop/GracefulStopTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/gracefulstop/GracefulStopTestReconciler.java index 7b33c68722..fef63e4aa4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/gracefulstop/GracefulStopTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/gracefulstop/GracefulStopTestReconciler.java @@ -8,8 +8,7 @@ import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; @ControllerConfiguration -public class GracefulStopTestReconciler - implements Reconciler<GracefulStopTestCustomResource> { +public class GracefulStopTestReconciler implements Reconciler<GracefulStopTestCustomResource> { public static final int RECONCILER_SLEEP = 1000; @@ -17,8 +16,8 @@ public class GracefulStopTestReconciler @Override public UpdateControl<GracefulStopTestCustomResource> reconcile( - GracefulStopTestCustomResource resource, - Context<GracefulStopTestCustomResource> context) throws InterruptedException { + GracefulStopTestCustomResource resource, Context<GracefulStopTestCustomResource> context) + throws InterruptedException { numberOfExecutions.addAndGet(1); resource.setStatus(new GracefulStopTestCustomResourceStatus()); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informereventsource/InformerEventSourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informereventsource/InformerEventSourceIT.java index 81e0a0febe..3f200f4c9f 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informereventsource/InformerEventSourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informereventsource/InformerEventSourceIT.java @@ -24,17 +24,14 @@ class InformerEventSourceIT { public static final String UPDATE_STATUS_MESSAGE = "Updated Status"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new InformerEventSourceTestCustomReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new InformerEventSourceTestCustomReconciler()).build(); @Test void testUsingInformerToWatchChangesOfConfigMap() { var customResource = initialCustomResource(); customResource = operator.create(customResource); - ConfigMap configMap = - operator.create(relatedConfigMap(customResource.getMetadata().getName())); + ConfigMap configMap = operator.create(relatedConfigMap(customResource.getMetadata().getName())); waitForCRStatusValue(INITIAL_STATUS_MESSAGE); configMap.getData().put(TARGET_CONFIG_MAP_KEY, UPDATE_STATUS_MESSAGE); @@ -48,8 +45,7 @@ void deletingSecondaryResource() { var customResource = initialCustomResource(); customResource = operator.create(customResource); waitForCRStatusValue(MISSING_CONFIG_MAP); - ConfigMap configMap = - operator.create(relatedConfigMap(customResource.getMetadata().getName())); + ConfigMap configMap = operator.create(relatedConfigMap(customResource.getMetadata().getName())); waitForCRStatusValue(INITIAL_STATUS_MESSAGE); boolean res = operator.delete(configMap); @@ -59,8 +55,7 @@ void deletingSecondaryResource() { waitForCRStatusValue(MISSING_CONFIG_MAP); assertThat(((InformerEventSourceTestCustomReconciler) operator.getReconcilers().get(0)) - .getNumberOfExecutions()) - .isEqualTo(3); + .getNumberOfExecutions()).isEqualTo(3); } private ConfigMap relatedConfigMap(String relatedResourceAnnotation) { @@ -87,8 +82,7 @@ private InformerEventSourceTestCustomResource initialCustomResource() { private void waitForCRStatusValue(String value) { await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> { - var cr = - operator.get(InformerEventSourceTestCustomResource.class, RESOURCE_NAME); + var cr = operator.get(InformerEventSourceTestCustomResource.class, RESOURCE_NAME); assertThat(cr.getStatus()).isNotNull(); assertThat(cr.getStatus().getConfigMapValue()).isEqualTo(value); }); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informereventsource/InformerEventSourceTestCustomReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informereventsource/InformerEventSourceTestCustomReconciler.java index 5028d6a0f4..07a9caa7b4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informereventsource/InformerEventSourceTestCustomReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informereventsource/InformerEventSourceTestCustomReconciler.java @@ -36,13 +36,11 @@ public class InformerEventSourceTestCustomReconciler public List<EventSource<?, InformerEventSourceTestCustomResource>> prepareEventSources( EventSourceContext<InformerEventSourceTestCustomResource> context) { - InformerEventSourceConfiguration<ConfigMap> config = - InformerEventSourceConfiguration - .from(ConfigMap.class, InformerEventSourceTestCustomResource.class) - .withSecondaryToPrimaryMapper( - Mappers.fromAnnotation(RELATED_RESOURCE_NAME, RELATED_RESOURCE_TYPE, - InformerEventSourceTestCustomResource.class)) - .build(); + InformerEventSourceConfiguration<ConfigMap> config = InformerEventSourceConfiguration + .from(ConfigMap.class, InformerEventSourceTestCustomResource.class) + .withSecondaryToPrimaryMapper(Mappers.fromAnnotation(RELATED_RESOURCE_NAME, + RELATED_RESOURCE_TYPE, InformerEventSourceTestCustomResource.class)) + .build(); return List.of(new InformerEventSource<>(config, context)); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informereventsource/InformerEventSourceTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informereventsource/InformerEventSourceTestCustomResource.java index 4d1077c64e..d472dbb0fa 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informereventsource/InformerEventSourceTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informereventsource/InformerEventSourceTestCustomResource.java @@ -12,7 +12,6 @@ @Kind("Informereventsourcesample") @ShortNames("ies") public class InformerEventSourceTestCustomResource extends - CustomResource<Void, InformerEventSourceTestCustomResourceStatus> - implements Namespaced { + CustomResource<Void, InformerEventSourceTestCustomResourceStatus> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informerremotecluster/InformerRemoteClusterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informerremotecluster/InformerRemoteClusterIT.java index 3ad274d954..80c5b72118 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informerremotecluster/InformerRemoteClusterIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informerremotecluster/InformerRemoteClusterIT.java @@ -30,23 +30,19 @@ class InformerRemoteClusterIT { static KubernetesClient kubernetesClient; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new InformerRemoteClusterReconciler(kubernetesClient)) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new InformerRemoteClusterReconciler(kubernetesClient)).build(); @Test void testRemoteClusterInformer() { var r = extension.create(testCustomResource()); var cm = kubernetesClient.configMaps() - .resource(remoteConfigMap(r.getMetadata().getName(), - r.getMetadata().getNamespace())) + .resource(remoteConfigMap(r.getMetadata().getName(), r.getMetadata().getNamespace())) .create(); // config map does not exist on the primary resource cluster - assertThat(extension.getKubernetesClient().configMaps() - .inNamespace(CM_NAMESPACE) + assertThat(extension.getKubernetesClient().configMaps().inNamespace(CM_NAMESPACE) .withName(CONFIG_MAP_NAME).get()).isNull(); await().untilAsserted(() -> { @@ -66,23 +62,17 @@ void testRemoteClusterInformer() { InformerRemoteClusterCustomResource testCustomResource() { var res = new InformerRemoteClusterCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(NAME).build()); return res; } ConfigMap remoteConfigMap(String ownerName, String ownerNamespace) { return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(CONFIG_MAP_NAME) - .withNamespace(CM_NAMESPACE) - .withAnnotations(Map.of( - Mappers.DEFAULT_ANNOTATION_FOR_NAME, ownerName, + .withMetadata(new ObjectMetaBuilder().withName(CONFIG_MAP_NAME).withNamespace(CM_NAMESPACE) + .withAnnotations(Map.of(Mappers.DEFAULT_ANNOTATION_FOR_NAME, ownerName, Mappers.DEFAULT_ANNOTATION_FOR_NAMESPACE, ownerNamespace)) .build()) - .withData(Map.of(DATA_KEY, INITIAL_VALUE)) - .build(); + .withData(Map.of(DATA_KEY, INITIAL_VALUE)).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informerremotecluster/InformerRemoteClusterReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informerremotecluster/InformerRemoteClusterReconciler.java index 30735dd880..89b5cc2686 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informerremotecluster/InformerRemoteClusterReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/informerremotecluster/InformerRemoteClusterReconciler.java @@ -34,10 +34,8 @@ public UpdateControl<InformerRemoteClusterCustomResource> reconcile( return context.getSecondaryResource(ConfigMap.class).map(cm -> { var r = new InformerRemoteClusterCustomResource(); - r.setMetadata(new ObjectMetaBuilder() - .withName(resource.getMetadata().getName()) - .withNamespace(resource.getMetadata().getNamespace()) - .build()); + r.setMetadata(new ObjectMetaBuilder().withName(resource.getMetadata().getName()) + .withNamespace(resource.getMetadata().getNamespace()).build()); r.setStatus(new InformerRemoteClusterStatus()); r.getStatus().setRemoteConfigMapMessage(cm.getData().get(DATA_KEY)); return UpdateControl.patchStatus(r); @@ -55,9 +53,7 @@ public List<EventSource<?, InformerRemoteClusterCustomResource>> prepareEventSou .withSecondaryToPrimaryMapper( Mappers.fromDefaultAnnotations(InformerRemoteClusterCustomResource.class)) // setting remote client for informer - .withKubernetesClient(remoteClient) - .withWatchAllNamespaces() - .build(), context); + .withKubernetesClient(remoteClient).withWatchAllNamespaces().build(), context); return List.of(es); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/labelselector/LabelSelectorIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/labelselector/LabelSelectorIT.java index 41411fa16f..e25d573212 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/labelselector/LabelSelectorIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/labelselector/LabelSelectorIT.java @@ -18,9 +18,8 @@ class LabelSelectorIT { @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new LabelSelectorTestReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new LabelSelectorTestReconciler()).build(); @Test void filtersCustomResourceByLabel() { @@ -36,11 +35,8 @@ void filtersCustomResourceByLabel() { LabelSelectorTestCustomResource resource(String name, boolean addLabel) { var res = new LabelSelectorTestCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(name) - .withLabels(addLabel ? Map.of(LABEL_KEY, LABEL_VALUE) - : Collections.emptyMap()) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(name) + .withLabels(addLabel ? Map.of(LABEL_KEY, LABEL_VALUE) : Collections.emptyMap()).build()); return res; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/labelselector/LabelSelectorTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/labelselector/LabelSelectorTestCustomResource.java index 321c684eef..69e728baef 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/labelselector/LabelSelectorTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/labelselector/LabelSelectorTestCustomResource.java @@ -9,7 +9,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("lst") -public class LabelSelectorTestCustomResource - extends CustomResource<Void, Void> +public class LabelSelectorTestCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/labelselector/LabelSelectorTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/labelselector/LabelSelectorTestReconciler.java index a225f6a7be..43f951bbc4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/labelselector/LabelSelectorTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/labelselector/LabelSelectorTestReconciler.java @@ -9,8 +9,7 @@ import static io.javaoperatorsdk.operator.baseapi.labelselector.LabelSelectorTestReconciler.LABEL_KEY; import static io.javaoperatorsdk.operator.baseapi.labelselector.LabelSelectorTestReconciler.LABEL_VALUE; -@ControllerConfiguration( - informer = @Informer(labelSelector = LABEL_KEY + "=" + LABEL_VALUE)) +@ControllerConfiguration(informer = @Informer(labelSelector = LABEL_KEY + "=" + LABEL_VALUE)) public class LabelSelectorTestReconciler implements Reconciler<LabelSelectorTestCustomResource>, TestExecutionInfoProvider { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/leaderelectionchangenamespace/LeaderElectionChangeNamespaceCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/leaderelectionchangenamespace/LeaderElectionChangeNamespaceCustomResource.java index 7b4a38d429..1d42a408e9 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/leaderelectionchangenamespace/LeaderElectionChangeNamespaceCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/leaderelectionchangenamespace/LeaderElectionChangeNamespaceCustomResource.java @@ -9,7 +9,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("lcn") -public class LeaderElectionChangeNamespaceCustomResource - extends CustomResource<Void, Void> +public class LeaderElectionChangeNamespaceCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/leaderelectionchangenamespace/LeaderElectionChangeNamespaceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/leaderelectionchangenamespace/LeaderElectionChangeNamespaceIT.java index dab495ba18..ad91e795a9 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/leaderelectionchangenamespace/LeaderElectionChangeNamespaceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/leaderelectionchangenamespace/LeaderElectionChangeNamespaceIT.java @@ -25,12 +25,10 @@ public class LeaderElectionChangeNamespaceIT { public static final String LEASE_NAME = "nschangelease"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withConfigurationService(o -> o.withLeaderElectionConfiguration( - new LeaderElectionConfiguration(LEASE_NAME))) - .withReconciler(new LeaderElectionChangeNamespaceReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withConfigurationService( + o -> o.withLeaderElectionConfiguration(new LeaderElectionConfiguration(LEASE_NAME))) + .withReconciler(new LeaderElectionChangeNamespaceReconciler()).build(); private static KubernetesClient client = new KubernetesClientBuilder().build(); @@ -50,46 +48,33 @@ void noReconcileOnChangeNamespace() { extension.create(testResource()); var reconciler = extension.getReconcilerOfType(LeaderElectionChangeNamespaceReconciler.class); - await().pollDelay(Duration.ofSeconds(1)) - .timeout(Duration.ofSeconds(3)) - .untilAsserted(() -> { - assertThat(reconciler.getNumberOfExecutions()).isEqualTo(0); - }); + await().pollDelay(Duration.ofSeconds(1)).timeout(Duration.ofSeconds(3)).untilAsserted(() -> { + assertThat(reconciler.getNumberOfExecutions()).isEqualTo(0); + }); extension.getRegisteredControllerForReconcile(LeaderElectionChangeNamespaceReconciler.class) .changeNamespaces("default", extension.getNamespace()); - await().pollDelay(Duration.ofSeconds(1)) - .timeout(Duration.ofSeconds(3)) - .untilAsserted(() -> { - assertThat(reconciler.getNumberOfExecutions()).isEqualTo(0); - }); + await().pollDelay(Duration.ofSeconds(1)).timeout(Duration.ofSeconds(3)).untilAsserted(() -> { + assertThat(reconciler.getNumberOfExecutions()).isEqualTo(0); + }); } LeaderElectionChangeNamespaceCustomResource testResource() { var resource = new LeaderElectionChangeNamespaceCustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withName("test1") - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName("test1").build()); return resource; } static Lease lease() { var lease = new Lease(); - lease.setMetadata(new ObjectMetaBuilder() - .withName(LEASE_NAME) - .withNamespace("default") - .build()); + lease + .setMetadata(new ObjectMetaBuilder().withName(LEASE_NAME).withNamespace("default").build()); var time = ZonedDateTime.now(); - lease.setSpec(new LeaseSpecBuilder() - .withAcquireTime(ZonedDateTime.now()) - .withRenewTime(time) - .withAcquireTime(time) - .withHolderIdentity("non-operator-identity") - .withLeaseTransitions(0) - .withLeaseDurationSeconds(30) - .build()); + lease.setSpec(new LeaseSpecBuilder().withAcquireTime(ZonedDateTime.now()).withRenewTime(time) + .withAcquireTime(time).withHolderIdentity("non-operator-identity").withLeaseTransitions(0) + .withLeaseDurationSeconds(30).build()); return lease; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/manualobservedgeneration/ManualObservedGenerationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/manualobservedgeneration/ManualObservedGenerationIT.java index 743f73742d..567568729f 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/manualobservedgeneration/ManualObservedGenerationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/manualobservedgeneration/ManualObservedGenerationIT.java @@ -13,9 +13,8 @@ public class ManualObservedGenerationIT { public static final String RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder().withReconciler(new ManualObservedGenerationReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new ManualObservedGenerationReconciler()).build(); @Test void observedGenerationUpdated() { @@ -41,9 +40,7 @@ void observedGenerationUpdated() { ManualObservedGenerationCustomResource testResource() { var res = new ManualObservedGenerationCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(RESOURCE_NAME).build()); res.setSpec(new ManualObservedGenerationSpec()); res.getSpec().setValue("Initial Value"); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/manualobservedgeneration/ManualObservedGenerationReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/manualobservedgeneration/ManualObservedGenerationReconciler.java index 865d099766..3346c825b4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/manualobservedgeneration/ManualObservedGenerationReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/manualobservedgeneration/ManualObservedGenerationReconciler.java @@ -31,10 +31,8 @@ public UpdateControl<ManualObservedGenerationCustomResource> reconcile( private ManualObservedGenerationCustomResource resourceForStatusPatch( ManualObservedGenerationCustomResource original) { var res = new ManualObservedGenerationCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(original.getMetadata().getName()) - .withNamespace(original.getMetadata().getNamespace()) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(original.getMetadata().getName()) + .withNamespace(original.getMetadata().getNamespace()).build()); res.setStatus(original.getStatus()); if (res.getStatus() == null) { res.setStatus(new ManualObservedGenerationStatus()); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxinterval/MaxIntervalIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxinterval/MaxIntervalIT.java index 460b374071..c4f5da6bd6 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxinterval/MaxIntervalIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxinterval/MaxIntervalIT.java @@ -23,13 +23,10 @@ void reconciliationTriggeredBasedOnMaxInterval() { operator.create(cr); - await() - .pollInterval(50, TimeUnit.MILLISECONDS) - .atMost(500, TimeUnit.MILLISECONDS) - .untilAsserted( - () -> assertThat(operator.getReconcilerOfType(MaxIntervalTestReconciler.class) - .getNumberOfExecutions()) - .isGreaterThan(3)); + await().pollInterval(50, TimeUnit.MILLISECONDS).atMost(500, TimeUnit.MILLISECONDS) + .untilAsserted(() -> assertThat( + operator.getReconcilerOfType(MaxIntervalTestReconciler.class).getNumberOfExecutions()) + .isGreaterThan(3)); } private MaxIntervalTestCustomResource createTestResource() { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxinterval/MaxIntervalTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxinterval/MaxIntervalTestCustomResource.java index d9f7cb74ba..4bd83718a2 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxinterval/MaxIntervalTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxinterval/MaxIntervalTestCustomResource.java @@ -11,7 +11,6 @@ @Version("v1") @Kind("MaxIntervalTestCustomResource") @ShortNames("mit") -public class MaxIntervalTestCustomResource - extends CustomResource<Void, Void> +public class MaxIntervalTestCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxintervalafterretry/MaxIntervalAfterRetryIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxintervalafterretry/MaxIntervalAfterRetryIT.java index ce53c483cc..585598ced0 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxintervalafterretry/MaxIntervalAfterRetryIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxintervalafterretry/MaxIntervalAfterRetryIT.java @@ -14,9 +14,8 @@ class MaxIntervalAfterRetryIT { @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new MaxIntervalAfterRetryTestReconciler()).build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new MaxIntervalAfterRetryTestReconciler()).build(); @Test void reconciliationTriggeredBasedOnMaxInterval() { @@ -24,12 +23,9 @@ void reconciliationTriggeredBasedOnMaxInterval() { operator.create(cr); - await() - .pollInterval(50, TimeUnit.MILLISECONDS) - .atMost(1, TimeUnit.SECONDS) - .untilAsserted( - () -> assertThat(operator.getReconcilerOfType(MaxIntervalAfterRetryTestReconciler.class) - .getNumberOfExecutions()).isGreaterThan(5)); + await().pollInterval(50, TimeUnit.MILLISECONDS).atMost(1, TimeUnit.SECONDS).untilAsserted( + () -> assertThat(operator.getReconcilerOfType(MaxIntervalAfterRetryTestReconciler.class) + .getNumberOfExecutions()).isGreaterThan(5)); } private MaxIntervalAfterRetryTestCustomResource createTestResource() { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxintervalafterretry/MaxIntervalAfterRetryTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxintervalafterretry/MaxIntervalAfterRetryTestCustomResource.java index 85328a26a3..cc5b47faf5 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxintervalafterretry/MaxIntervalAfterRetryTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/maxintervalafterretry/MaxIntervalAfterRetryTestCustomResource.java @@ -9,7 +9,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("mir") -public class MaxIntervalAfterRetryTestCustomResource - extends CustomResource<Void, Void> +public class MaxIntervalAfterRetryTestCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplereconcilersametype/MultipleReconcilerSameTypeCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplereconcilersametype/MultipleReconcilerSameTypeCustomResource.java index d7e3fa5c37..7b6c9d62f1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplereconcilersametype/MultipleReconcilerSameTypeCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplereconcilersametype/MultipleReconcilerSameTypeCustomResource.java @@ -10,6 +10,5 @@ @Version("v1") @ShortNames("mrst") public class MultipleReconcilerSameTypeCustomResource - extends CustomResource<Void, MultipleReconcilerSameTypeStatus> - implements Namespaced { + extends CustomResource<Void, MultipleReconcilerSameTypeStatus> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplereconcilersametype/MultipleReconcilerSameTypeIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplereconcilersametype/MultipleReconcilerSameTypeIT.java index 57e4ad795b..7d2bf76fbd 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplereconcilersametype/MultipleReconcilerSameTypeIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplereconcilersametype/MultipleReconcilerSameTypeIT.java @@ -14,11 +14,9 @@ public class MultipleReconcilerSameTypeIT { public static final String TEST_RESOURCE_1 = "test1"; public static final String TEST_RESOURCE_2 = "test2"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(MultipleReconcilerSameTypeReconciler1.class) - .withReconciler(MultipleReconcilerSameTypeReconciler2.class) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(MultipleReconcilerSameTypeReconciler1.class) + .withReconciler(MultipleReconcilerSameTypeReconciler2.class).build(); @Test @@ -46,9 +44,7 @@ void multipleReconcilersBasedOnLeaderElection() { MultipleReconcilerSameTypeCustomResource testResource(String name, boolean type1) { var res = new MultipleReconcilerSameTypeCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(name) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(name).build()); if (type1) { res.getMetadata().getLabels().put("reconciler", "1"); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceCustomResource.java index d142f1f0d1..889038cd5d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceCustomResource.java @@ -11,7 +11,6 @@ @Version("v1") @Kind("MultipleSecondaryEventSourceCustomResource") @ShortNames("mses") -public class MultipleSecondaryEventSourceCustomResource - extends CustomResource<Void, Void> +public class MultipleSecondaryEventSourceCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceIT.java index 856f6d8a6f..50684b2292 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceIT.java @@ -15,10 +15,8 @@ class MultipleSecondaryEventSourceIT { public static final String TEST_RESOURCE_NAME = "testresource"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(MultipleSecondaryEventSourceReconciler.class) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(MultipleSecondaryEventSourceReconciler.class).build(); @Test void receivingPeriodicEvents() { @@ -28,8 +26,7 @@ void receivingPeriodicEvents() { var reconciler = operator.getReconcilerOfType(MultipleSecondaryEventSourceReconciler.class); - await().pollDelay(Duration.ofMillis(300)) - .until(() -> reconciler.getNumberOfExecutions() <= 3); + await().pollDelay(Duration.ofMillis(300)).until(() -> reconciler.getNumberOfExecutions() <= 3); int numberOfInitialExecutions = reconciler.getNumberOfExecutions(); @@ -55,11 +52,8 @@ private void updateConfigMap(MultipleSecondaryEventSourceCustomResource resource public MultipleSecondaryEventSourceCustomResource createTestCustomResource() { MultipleSecondaryEventSourceCustomResource resource = new MultipleSecondaryEventSourceCustomResource(); - resource.setMetadata( - new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .withNamespace(operator.getNamespace()) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME) + .withNamespace(operator.getNamespace()).build()); return resource; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceReconciler.java index 12ebf45c8c..c19ca73b57 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiplesecondaryeventsource/MultipleSecondaryEventSourceReconciler.java @@ -42,14 +42,12 @@ public UpdateControl<MultipleSecondaryEventSourceCustomResource> reconcile( if (client.configMaps().inNamespace(resource.getMetadata().getNamespace()) .withName(getName1(resource)).get() == null) { client.configMaps().inNamespace(resource.getMetadata().getNamespace()) - .resource(configMap(getName1(resource), resource)) - .createOrReplace(); + .resource(configMap(getName1(resource), resource)).createOrReplace(); } if (client.configMaps().inNamespace(resource.getMetadata().getNamespace()) .withName(getName2(resource)).get() == null) { client.configMaps().inNamespace(resource.getMetadata().getNamespace()) - .resource(configMap(getName2(resource), resource)) - .createOrReplace(); + .resource(configMap(getName2(resource), resource)).createOrReplace(); } if (numberOfExecutions.get() >= 3) { @@ -70,8 +68,7 @@ public List<EventSource<?, MultipleSecondaryEventSourceCustomResource>> prepareE var config = InformerEventSourceConfiguration .from(ConfigMap.class, MultipleSecondaryEventSourceCustomResource.class) - .withNamespacesInheritedFromController() - .withLabelSelector("multisecondary") + .withNamespacesInheritedFromController().withLabelSelector("multisecondary") .withSecondaryToPrimaryMapper(s -> { var name = s.getMetadata().getName().subSequence(0, s.getMetadata().getName().length() - 1); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDIT.java index 687ea3c581..604343a3ec 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDIT.java @@ -30,10 +30,8 @@ class MultiVersionCRDIT { @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(MultiVersionCRDTestReconciler1.class) - .withReconciler(MultiVersionCRDTestReconciler2.class) - .withConfigurationService( + LocallyRunOperatorExtension.builder().withReconciler(MultiVersionCRDTestReconciler1.class) + .withReconciler(MultiVersionCRDTestReconciler2.class).withConfigurationService( overrider -> overrider.withInformerStoppedHandler(informerStoppedHandler)) .build(); @@ -82,10 +80,10 @@ public void onStop(SharedIndexInformer informer, Throwable ex) { resourceClassName = acceptOnlyIfUnsetOrEqualToAlreadySet(resourceClassName, apiTypeClass.getName()); - log.debug("API Type Class: " + apiTypeClass.getName() - + " - resource class name: " + resourceClassName); - log.info("Informer for " + HasMetadata.getFullResourceName(apiTypeClass) - + " stopped due to: " + ex.getMessage()); + log.debug("API Type Class: " + apiTypeClass.getName() + " - resource class name: " + + resourceClassName); + log.info("Informer for " + HasMetadata.getFullResourceName(apiTypeClass) + " stopped due to: " + + ex.getMessage()); } public String getResourceClassName() { @@ -118,20 +116,16 @@ void multipleCRDVersions() { operator.create(createTestResourceV1WithoutLabel()); operator.create(createTestResourceV2WithLabel()); - await() - .atMost(Duration.ofSeconds(2)) - .pollInterval(Duration.ofMillis(50)) - .untilAsserted( - () -> { - var crV1Now = operator.get(MultiVersionCRDTestCustomResource1.class, CR_V1_NAME); - var crV2Now = operator.get(MultiVersionCRDTestCustomResource2.class, CR_V2_NAME); - assertThat(crV1Now.getStatus()).isNotNull(); - assertThat(crV2Now.getStatus()).isNotNull(); - assertThat(crV1Now.getStatus().getReconciledBy()) - .containsExactly(MultiVersionCRDTestReconciler1.class.getSimpleName()); - assertThat(crV2Now.getStatus().getReconciledBy()) - .containsExactly(MultiVersionCRDTestReconciler2.class.getSimpleName()); - }); + await().atMost(Duration.ofSeconds(2)).pollInterval(Duration.ofMillis(50)).untilAsserted(() -> { + var crV1Now = operator.get(MultiVersionCRDTestCustomResource1.class, CR_V1_NAME); + var crV2Now = operator.get(MultiVersionCRDTestCustomResource2.class, CR_V2_NAME); + assertThat(crV1Now.getStatus()).isNotNull(); + assertThat(crV2Now.getStatus()).isNotNull(); + assertThat(crV1Now.getStatus().getReconciledBy()) + .containsExactly(MultiVersionCRDTestReconciler1.class.getSimpleName()); + assertThat(crV2Now.getStatus().getReconciledBy()) + .containsExactly(MultiVersionCRDTestReconciler2.class.getSimpleName()); + }); } @Test @@ -143,28 +137,20 @@ void invalidEventsShouldStopInformerAndCallInformerStoppedHandler() { var v1res = createTestResourceV1WithoutLabel(); operator.create(v1res); - await() - .atMost(Duration.ofSeconds(10)) - .pollInterval(Duration.ofMillis(50)) - .untilAsserted(() -> { - // v1 is the stored version so trying to create a v2 version should fail because we cannot - // convert a String (as defined by the spec of the v2 CRD) to an int (which is what the - // spec of the v1 CRD defines) - assertThat(informerStoppedHandler.getResourceCreateAsVersion()) - .isEqualTo(HasMetadata.getApiVersion( - MultiVersionCRDTestCustomResource1.class)); - assertThat(informerStoppedHandler.getResourceClassName()) - .isEqualTo(MultiVersionCRDTestCustomResource1.class.getName()); - assertThat(informerStoppedHandler.getFailedResourceVersion()) - .isEqualTo(HasMetadata.getApiVersion( - MultiVersionCRDTestCustomResource2.class)); - assertThat(informerStoppedHandler.getErrorMessage()).contains( - "Cannot deserialize value of type `int` from String \"string value\": not a valid `int` value"); - }); - assertThat( - operator - .get(MultiVersionCRDTestCustomResource2.class, CR_V2_NAME) - .getStatus()) + await().atMost(Duration.ofSeconds(10)).pollInterval(Duration.ofMillis(50)).untilAsserted(() -> { + // v1 is the stored version so trying to create a v2 version should fail because we cannot + // convert a String (as defined by the spec of the v2 CRD) to an int (which is what the + // spec of the v1 CRD defines) + assertThat(informerStoppedHandler.getResourceCreateAsVersion()) + .isEqualTo(HasMetadata.getApiVersion(MultiVersionCRDTestCustomResource1.class)); + assertThat(informerStoppedHandler.getResourceClassName()) + .isEqualTo(MultiVersionCRDTestCustomResource1.class.getName()); + assertThat(informerStoppedHandler.getFailedResourceVersion()) + .isEqualTo(HasMetadata.getApiVersion(MultiVersionCRDTestCustomResource2.class)); + assertThat(informerStoppedHandler.getErrorMessage()).contains( + "Cannot deserialize value of type `int` from String \"string value\": not a valid `int` value"); + }); + assertThat(operator.get(MultiVersionCRDTestCustomResource2.class, CR_V2_NAME).getStatus()) .isNull(); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestCustomResource1.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestCustomResource1.java index cdc56026eb..25154eaba5 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestCustomResource1.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestCustomResource1.java @@ -11,8 +11,7 @@ @Version("v1") @Kind("MultiVersionCRDTestCustomResource") @ShortNames("mvc") -public class MultiVersionCRDTestCustomResource1 - extends +public class MultiVersionCRDTestCustomResource1 extends CustomResource<MultiVersionCRDTestCustomResourceSpec1, MultiVersionCRDTestCustomResourceStatus1> implements Namespaced { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestCustomResource2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestCustomResource2.java index ecf3f0c7e2..cbb2320c92 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestCustomResource2.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestCustomResource2.java @@ -11,8 +11,7 @@ @Version(value = "v2", storage = false) @Kind("MultiVersionCRDTestCustomResource") @ShortNames("mvc") -public class MultiVersionCRDTestCustomResource2 - extends +public class MultiVersionCRDTestCustomResource2 extends CustomResource<MultiVersionCRDTestCustomResourceSpec2, MultiVersionCRDTestCustomResourceStatus2> implements Namespaced { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestReconciler1.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestReconciler1.java index a9b3af7586..870ba979c4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestReconciler1.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestReconciler1.java @@ -19,8 +19,7 @@ public class MultiVersionCRDTestReconciler1 public UpdateControl<MultiVersionCRDTestCustomResource1> reconcile( MultiVersionCRDTestCustomResource1 resource, Context<MultiVersionCRDTestCustomResource1> context) { - log.info("Reconcile MultiVersionCRDTestCustomResource1: {}", - resource.getMetadata().getName()); + log.info("Reconcile MultiVersionCRDTestCustomResource1: {}", resource.getMetadata().getName()); if (resource.getStatus() == null) { resource.setStatus(new MultiVersionCRDTestCustomResourceStatus1()); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestReconciler2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestReconciler2.java index 29d7e830fa..a0457ccf1e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestReconciler2.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/multiversioncrd/MultiVersionCRDTestReconciler2.java @@ -19,8 +19,7 @@ public class MultiVersionCRDTestReconciler2 public UpdateControl<MultiVersionCRDTestCustomResource2> reconcile( MultiVersionCRDTestCustomResource2 resource, Context<MultiVersionCRDTestCustomResource2> context) { - log.info("Reconcile MultiVersionCRDTestCustomResource2: {}", - resource.getMetadata().getName()); + log.info("Reconcile MultiVersionCRDTestCustomResource2: {}", resource.getMetadata().getName()); if (resource.getStatus() == null) { resource.setStatus(new MultiVersionCRDTestCustomResourceStatus2()); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/nextreconciliationimminent/NextReconciliationImminentCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/nextreconciliationimminent/NextReconciliationImminentCustomResource.java index 5a54443393..cf8fe28452 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/nextreconciliationimminent/NextReconciliationImminentCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/nextreconciliationimminent/NextReconciliationImminentCustomResource.java @@ -10,8 +10,7 @@ @Version("v1") @ShortNames("nri") public class NextReconciliationImminentCustomResource - extends CustomResource<Void, NextReconciliationImminentStatus> - implements Namespaced { + extends CustomResource<Void, NextReconciliationImminentStatus> implements Namespaced { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/nextreconciliationimminent/NextReconciliationImminentIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/nextreconciliationimminent/NextReconciliationImminentIT.java index 5f7933610f..50c0129c2e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/nextreconciliationimminent/NextReconciliationImminentIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/nextreconciliationimminent/NextReconciliationImminentIT.java @@ -15,17 +15,14 @@ public class NextReconciliationImminentIT { - private static final Logger log = - LoggerFactory.getLogger(NextReconciliationImminentIT.class); + private static final Logger log = LoggerFactory.getLogger(NextReconciliationImminentIT.class); public static final int WAIT_FOR_EVENT = 300; public static final String TEST_RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new NextReconciliationImminentReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new NextReconciliationImminentReconciler()).build(); @Test void skippingStatusUpdateWithNextReconciliationImminent() throws InterruptedException { @@ -55,9 +52,7 @@ void skippingStatusUpdateWithNextReconciliationImminent() throws InterruptedExce NextReconciliationImminentCustomResource testResource() { var res = new NextReconciliationImminentCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); return res; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourceandstatusnossa/PatchResourceAndStatusNoSSAIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourceandstatusnossa/PatchResourceAndStatusNoSSAIT.java index de4ba09b23..b39f50aa49 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourceandstatusnossa/PatchResourceAndStatusNoSSAIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourceandstatusnossa/PatchResourceAndStatusNoSSAIT.java @@ -18,8 +18,7 @@ class PatchResourceAndStatusNoSSAIT { LocallyRunOperatorExtension.builder() .withConfigurationService(o -> o.withUseSSAToPatchPrimaryResource(false)) - .withReconciler(PatchResourceAndStatusNoSSAReconciler.class) - .build(); + .withReconciler(PatchResourceAndStatusNoSSAReconciler.class).build(); @Test void updatesSubResourceStatus() { @@ -30,37 +29,25 @@ void updatesSubResourceStatus() { // wait for sure, there are no more events TestUtils.waitXms(300); - PatchResourceAndStatusNoSSACustomResource customResource = - operator - .get(PatchResourceAndStatusNoSSACustomResource.class, - resource.getMetadata().getName()); + PatchResourceAndStatusNoSSACustomResource customResource = operator + .get(PatchResourceAndStatusNoSSACustomResource.class, resource.getMetadata().getName()); - assertThat(TestUtils.getNumberOfExecutions(operator)) - .isEqualTo(1); + assertThat(TestUtils.getNumberOfExecutions(operator)).isEqualTo(1); assertThat(customResource.getStatus().getState()) .isEqualTo(PatchResourceAndStatusNoSSAStatus.State.SUCCESS); - assertThat( - customResource - .getMetadata() - .getAnnotations() - .get(PatchResourceAndStatusNoSSAReconciler.TEST_ANNOTATION)) - .isNotNull(); + assertThat(customResource.getMetadata().getAnnotations() + .get(PatchResourceAndStatusNoSSAReconciler.TEST_ANNOTATION)).isNotNull(); } void awaitStatusUpdated(String name) { - await("cr status updated") - .atMost(5, TimeUnit.SECONDS) - .untilAsserted( - () -> { - PatchResourceAndStatusNoSSACustomResource cr = - operator.get(PatchResourceAndStatusNoSSACustomResource.class, name); - assertThat(cr) - .isNotNull(); - assertThat(cr.getStatus()) - .isNotNull(); - assertThat(cr.getStatus().getState()) - .isEqualTo(PatchResourceAndStatusNoSSAStatus.State.SUCCESS); - }); + await("cr status updated").atMost(5, TimeUnit.SECONDS).untilAsserted(() -> { + PatchResourceAndStatusNoSSACustomResource cr = + operator.get(PatchResourceAndStatusNoSSACustomResource.class, name); + assertThat(cr).isNotNull(); + assertThat(cr.getStatus()).isNotNull(); + assertThat(cr.getStatus().getState()) + .isEqualTo(PatchResourceAndStatusNoSSAStatus.State.SUCCESS); + }); } public PatchResourceAndStatusNoSSACustomResource createTestCustomResource(String id) { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchResourceAndStatusWithSSAReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchResourceAndStatusWithSSAReconciler.java index 2d599a9039..5cdea0d91e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchResourceAndStatusWithSSAReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchResourceAndStatusWithSSAReconciler.java @@ -4,9 +4,8 @@ import io.javaoperatorsdk.operator.api.reconciler.*; @ControllerConfiguration -public class PatchResourceAndStatusWithSSAReconciler - implements Reconciler<PatchResourceWithSSACustomResource>, - Cleaner<PatchResourceWithSSACustomResource> { +public class PatchResourceAndStatusWithSSAReconciler implements + Reconciler<PatchResourceWithSSACustomResource>, Cleaner<PatchResourceWithSSACustomResource> { public static final String ADDED_VALUE = "Added Value"; @@ -16,10 +15,8 @@ public UpdateControl<PatchResourceWithSSACustomResource> reconcile( Context<PatchResourceWithSSACustomResource> context) { var res = new PatchResourceWithSSACustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(resource.getMetadata().getName()) - .withNamespace(resource.getMetadata().getNamespace()) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(resource.getMetadata().getName()) + .withNamespace(resource.getMetadata().getNamespace()).build()); res.setSpec(new PatchResourceWithSSASpec()); res.getSpec().setControllerManagedValue(ADDED_VALUE); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchResourceWithSSACustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchResourceWithSSACustomResource.java index 0c789127ac..fb5c7adccf 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchResourceWithSSACustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchResourceWithSSACustomResource.java @@ -9,8 +9,7 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("prs") -public class PatchResourceWithSSACustomResource - extends CustomResource<PatchResourceWithSSASpec, PatchResourceWithSSAStatus> - implements Namespaced { +public class PatchResourceWithSSACustomResource extends + CustomResource<PatchResourceWithSSASpec, PatchResourceWithSSAStatus> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchResourceWithSSAReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchResourceWithSSAReconciler.java index f5f53ee6c5..41a3d89ab3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchResourceWithSSAReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchResourceWithSSAReconciler.java @@ -4,9 +4,8 @@ import io.javaoperatorsdk.operator.api.reconciler.*; @ControllerConfiguration -public class PatchResourceWithSSAReconciler - implements Reconciler<PatchResourceWithSSACustomResource>, - Cleaner<PatchResourceWithSSACustomResource> { +public class PatchResourceWithSSAReconciler implements + Reconciler<PatchResourceWithSSACustomResource>, Cleaner<PatchResourceWithSSACustomResource> { public static final String ADDED_VALUE = "Added Value"; @@ -16,10 +15,8 @@ public UpdateControl<PatchResourceWithSSACustomResource> reconcile( Context<PatchResourceWithSSACustomResource> context) { var res = new PatchResourceWithSSACustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(resource.getMetadata().getName()) - .withNamespace(resource.getMetadata().getNamespace()) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(resource.getMetadata().getName()) + .withNamespace(resource.getMetadata().getNamespace()).build()); // first update the spec with missing value, then status in next reconciliation if (resource.getSpec().getControllerManagedValue() == null) { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchWithSSAITBase.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchWithSSAITBase.java index 50b005fef7..44d39acef9 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchWithSSAITBase.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/patchresourcewithssa/PatchWithSSAITBase.java @@ -17,9 +17,7 @@ public abstract class PatchWithSSAITBase { @RegisterExtension LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(reconciler()) - .build(); + LocallyRunOperatorExtension.builder().withReconciler(reconciler()).build(); @Test void reconcilerPatchesResourceWithSSA() { @@ -36,8 +34,8 @@ void reconcilerPatchesResourceWithSSA() { assertThat(actualResource.getStatus().isSuccessfullyReconciled()).isTrue(); // one for resource, one for subresource assertThat(actualResource.getMetadata().getManagedFields().stream() - .filter(mf -> mf.getManager() - .equals(reconciler().getClass().getSimpleName().toLowerCase())) + .filter( + mf -> mf.getManager().equals(reconciler().getClass().getSimpleName().toLowerCase())) .toList()).hasSize(2); }); } @@ -46,9 +44,7 @@ void reconcilerPatchesResourceWithSSA() { PatchResourceWithSSACustomResource testResource() { var res = new PatchResourceWithSSACustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(RESOURCE_NAME).build()); res.setSpec(new PatchResourceWithSSASpec()); res.getSpec().setInitValue(INIT_VALUE); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourceEventSourceCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourceEventSourceCustomResource.java index 74817da86d..9cbce3f25a 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourceEventSourceCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourceEventSourceCustomResource.java @@ -9,7 +9,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("pres") -public class PerResourceEventSourceCustomResource - extends CustomResource<Void, Void> +public class PerResourceEventSourceCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourcePollingEventSourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourcePollingEventSourceIT.java index 299109bdd1..a2598944f6 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourcePollingEventSourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/perresourceeventsource/PerResourcePollingEventSourceIT.java @@ -15,10 +15,8 @@ class PerResourcePollingEventSourceIT { public static final String NAME_2 = "name2"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new PerResourcePollingEventSourceTestReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new PerResourcePollingEventSourceTestReconciler()).build(); /** * This is kinda some test to verify that the implementation of PerResourcePollingEventSource @@ -41,9 +39,7 @@ void fetchedAndReconciledMultipleTimes() { private PerResourceEventSourceCustomResource resource(String name) { var res = new PerResourceEventSourceCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(name) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(name).build()); return res; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/AbstractPrimaryIndexerTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/AbstractPrimaryIndexerTestReconciler.java index ac2e7e1534..ad045925e7 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/AbstractPrimaryIndexerTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/AbstractPrimaryIndexerTestReconciler.java @@ -12,8 +12,8 @@ import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; @ControllerConfiguration -public class AbstractPrimaryIndexerTestReconciler implements - Reconciler<PrimaryIndexerTestCustomResource> { +public class AbstractPrimaryIndexerTestReconciler + implements Reconciler<PrimaryIndexerTestCustomResource> { public static final String CONFIG_MAP_NAME = "common-config-map"; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/PrimaryIndexerIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/PrimaryIndexerIT.java index cb810dcd35..129a439f39 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/PrimaryIndexerIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/PrimaryIndexerIT.java @@ -32,23 +32,17 @@ void changesToSecondaryResourcesCorrectlyTriggerReconciler() { operator.create(createTestResource(RESOURCE_NAME1)); operator.create(createTestResource(RESOURCE_NAME2)); - await() - .pollDelay(Duration.ofMillis(500)) - .untilAsserted( - () -> { - assertThat(reconciler.getNumberOfExecutions().get(RESOURCE_NAME1).get()).isEqualTo(1); - assertThat(reconciler.getNumberOfExecutions().get(RESOURCE_NAME2).get()).isEqualTo(1); - }); + await().pollDelay(Duration.ofMillis(500)).untilAsserted(() -> { + assertThat(reconciler.getNumberOfExecutions().get(RESOURCE_NAME1).get()).isEqualTo(1); + assertThat(reconciler.getNumberOfExecutions().get(RESOURCE_NAME2).get()).isEqualTo(1); + }); operator.create(configMap()); - await() - .pollDelay(Duration.ofMillis(500)) - .untilAsserted( - () -> { - assertThat(reconciler.getNumberOfExecutions().get(RESOURCE_NAME1).get()).isEqualTo(2); - assertThat(reconciler.getNumberOfExecutions().get(RESOURCE_NAME2).get()).isEqualTo(2); - }); + await().pollDelay(Duration.ofMillis(500)).untilAsserted(() -> { + assertThat(reconciler.getNumberOfExecutions().get(RESOURCE_NAME1).get()).isEqualTo(2); + assertThat(reconciler.getNumberOfExecutions().get(RESOURCE_NAME2).get()).isEqualTo(2); + }); } private ConfigMap configMap() { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/PrimaryIndexerTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/PrimaryIndexerTestCustomResource.java index f670a4be64..5a106e26e8 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/PrimaryIndexerTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/PrimaryIndexerTestCustomResource.java @@ -11,8 +11,7 @@ @Version("v1") @Kind("PrimaryIndexerTestCustomResource") @ShortNames("pi") -public class PrimaryIndexerTestCustomResource - extends +public class PrimaryIndexerTestCustomResource extends CustomResource<PrimaryIndexerTestCustomResourceSpec, PrimaryIndexerTestCustomResourceStatus> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/PrimaryIndexerTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/PrimaryIndexerTestReconciler.java index d03cc0fcb0..ab86b7528d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/PrimaryIndexerTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primaryindexer/PrimaryIndexerTestReconciler.java @@ -12,8 +12,7 @@ import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource; @ControllerConfiguration -public class PrimaryIndexerTestReconciler - extends AbstractPrimaryIndexerTestReconciler { +public class PrimaryIndexerTestReconciler extends AbstractPrimaryIndexerTestReconciler { @Override public List<EventSource<?, PrimaryIndexerTestCustomResource>> prepareEventSources( @@ -21,19 +20,12 @@ public List<EventSource<?, PrimaryIndexerTestCustomResource>> prepareEventSource context.getPrimaryCache().addIndexer(CONFIG_MAP_RELATION_INDEXER, indexer); - var informerConfiguration = - InformerEventSourceConfiguration - .from(ConfigMap.class, PrimaryIndexerTestCustomResource.class) - .withSecondaryToPrimaryMapper( - (ConfigMap secondaryResource) -> context - .getPrimaryCache() - .byIndex( - CONFIG_MAP_RELATION_INDEXER, - secondaryResource.getMetadata().getName()) - .stream() - .map(ResourceID::fromResource) - .collect(Collectors.toSet())) - .build(); + var informerConfiguration = InformerEventSourceConfiguration + .from(ConfigMap.class, PrimaryIndexerTestCustomResource.class) + .withSecondaryToPrimaryMapper((ConfigMap secondaryResource) -> context.getPrimaryCache() + .byIndex(CONFIG_MAP_RELATION_INDEXER, secondaryResource.getMetadata().getName()) + .stream().map(ResourceID::fromResource).collect(Collectors.toSet())) + .build(); return List.of(new InformerEventSource<>(informerConfiguration, context)); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/Cluster.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/Cluster.java index 18190ae1fa..a797243ebe 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/Cluster.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/Cluster.java @@ -9,7 +9,5 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("clu") -public class Cluster - extends CustomResource<Void, Void> - implements Namespaced { +public class Cluster extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/Job.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/Job.java index 3215fd8538..75b44622fc 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/Job.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/Job.java @@ -9,7 +9,5 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("cjo") -public class Job - extends CustomResource<JobSpec, Void> - implements Namespaced { +public class Job extends CustomResource<JobSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/JobReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/JobReconciler.java index fdca997f7d..e07edac3a1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/JobReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/JobReconciler.java @@ -18,8 +18,7 @@ * intended to be a reusable code as it is, rather serves for deeper understanding of the problem. */ @ControllerConfiguration() -public class JobReconciler - implements Reconciler<Job> { +public class JobReconciler implements Reconciler<Job> { private static final String JOB_CLUSTER_INDEX = "job-cluster-index"; @@ -38,8 +37,7 @@ public JobReconciler(boolean addPrimaryToSecondaryMapper) { } @Override - public UpdateControl<Job> reconcile( - Job resource, Context<Job> context) { + public UpdateControl<Job> reconcile(Job resource, Context<Job> context) { if (!getResourceDirectlyFromCache) { // this is only possible when there is primary to secondary mapper @@ -49,10 +47,8 @@ public UpdateControl<Job> reconcile( // reading the resource from cache as alternative, works without primary to secondary mapper var informerEventSource = (InformerEventSource<Cluster, Job>) context.eventSourceRetriever() .getEventSourceFor(Cluster.class); - informerEventSource - .get(new ResourceID(resource.getSpec().getClusterName(), - resource.getMetadata().getNamespace())) - .orElseThrow( + informerEventSource.get(new ResourceID(resource.getSpec().getClusterName(), + resource.getMetadata().getNamespace())).orElseThrow( () -> new IllegalStateException("Secondary resource cannot be read from cache")); } numberOfExecutions.addAndGet(1); @@ -67,8 +63,8 @@ public List<EventSource<?, Job>> prepareEventSources(EventSourceContext<Job> con InformerEventSourceConfiguration.Builder<Cluster> informerConfiguration = InformerEventSourceConfiguration.from(Cluster.class, Job.class) .withSecondaryToPrimaryMapper(cluster -> context.getPrimaryCache() - .byIndex(JOB_CLUSTER_INDEX, indexKey(cluster.getMetadata().getName(), - cluster.getMetadata().getNamespace())) + .byIndex(JOB_CLUSTER_INDEX, + indexKey(cluster.getMetadata().getName(), cluster.getMetadata().getNamespace())) .stream().map(ResourceID::fromResource).collect(Collectors.toSet())) .withNamespacesInheritedFromController(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/PrimaryToSecondaryIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/PrimaryToSecondaryIT.java index cfcb2854bb..63b993c6e1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/PrimaryToSecondaryIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/PrimaryToSecondaryIT.java @@ -18,10 +18,8 @@ class PrimaryToSecondaryIT { @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withAdditionalCustomResourceDefinition(Cluster.class) - .withReconciler(new JobReconciler()) - .build(); + LocallyRunOperatorExtension.builder().withAdditionalCustomResourceDefinition(Cluster.class) + .withReconciler(new JobReconciler()).build(); @Test void readsSecondaryInManyToOneCases() throws InterruptedException { @@ -36,9 +34,7 @@ void readsSecondaryInManyToOneCases() throws InterruptedException { public static Job job() { var job = new Job(); - job.setMetadata(new ObjectMetaBuilder() - .withName("job1") - .build()); + job.setMetadata(new ObjectMetaBuilder().withName("job1").build()); job.setSpec(new JobSpec()); job.getSpec().setClusterName(CLUSTER_NAME); return job; @@ -46,9 +42,7 @@ public static Job job() { public static Cluster cluster() { Cluster cluster = new Cluster(); - cluster.setMetadata(new ObjectMetaBuilder() - .withName(CLUSTER_NAME) - .build()); + cluster.setMetadata(new ObjectMetaBuilder().withName(CLUSTER_NAME).build()); return cluster; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/PrimaryToSecondaryMissingIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/PrimaryToSecondaryMissingIT.java index 4e1908f282..c61b677edd 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/PrimaryToSecondaryMissingIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/primarytosecondary/PrimaryToSecondaryMissingIT.java @@ -18,10 +18,8 @@ class PrimaryToSecondaryMissingIT { @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withAdditionalCustomResourceDefinition(Cluster.class) - .withReconciler(new JobReconciler(false)) - .build(); + LocallyRunOperatorExtension.builder().withAdditionalCustomResourceDefinition(Cluster.class) + .withReconciler(new JobReconciler(false)).build(); @Test void missingPrimaryToSecondaryCausesIssueAccessingSecondary() throws InterruptedException { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ratelimit/RateLimitCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ratelimit/RateLimitCustomResource.java index 79732a199b..f673c2360b 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ratelimit/RateLimitCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ratelimit/RateLimitCustomResource.java @@ -9,8 +9,7 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("rlc") -public class RateLimitCustomResource - extends CustomResource<RateLimitCustomResourceSpec, Void> +public class RateLimitCustomResource extends CustomResource<RateLimitCustomResourceSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ratelimit/RateLimitIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ratelimit/RateLimitIT.java index 1f09b75b59..febc035820 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ratelimit/RateLimitIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ratelimit/RateLimitIT.java @@ -21,9 +21,7 @@ class RateLimitIT { @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new RateLimitReconciler()) - .build(); + LocallyRunOperatorExtension.builder().withReconciler(new RateLimitReconciler()).build(); @Test void rateLimitsExecution() { @@ -34,8 +32,7 @@ void rateLimitsExecution() { resource.getSpec().setNumber(i); operator.replace(resource); }); - await().pollInterval(Duration.ofMillis(100)) - .pollDelay(Duration.ofMillis(REFRESH_PERIOD / 2)) + await().pollInterval(Duration.ofMillis(100)).pollDelay(Duration.ofMillis(REFRESH_PERIOD / 2)) .untilAsserted(() -> assertThat( operator.getReconcilerOfType(RateLimitReconciler.class).getNumberOfExecutions()) .isEqualTo(1)); @@ -48,9 +45,7 @@ void rateLimitsExecution() { public RateLimitCustomResource createResource() { RateLimitCustomResource res = new RateLimitCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName("test") - .build()); + res.setMetadata(new ObjectMetaBuilder().withName("test").build()); res.setSpec(new RateLimitCustomResourceSpec()); res.getSpec().setNumber(0); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ratelimit/RateLimitReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ratelimit/RateLimitReconciler.java index 75a70f94d1..91edf461ec 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ratelimit/RateLimitReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/ratelimit/RateLimitReconciler.java @@ -9,20 +9,17 @@ import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; import io.javaoperatorsdk.operator.processing.event.rate.RateLimited; -@RateLimited(maxReconciliations = 1, - within = RateLimitReconciler.REFRESH_PERIOD, +@RateLimited(maxReconciliations = 1, within = RateLimitReconciler.REFRESH_PERIOD, unit = TimeUnit.MILLISECONDS) @ControllerConfiguration -public class RateLimitReconciler - implements Reconciler<RateLimitCustomResource> { +public class RateLimitReconciler implements Reconciler<RateLimitCustomResource> { public static final int REFRESH_PERIOD = 3000; private final AtomicInteger numberOfExecutions = new AtomicInteger(0); @Override - public UpdateControl<RateLimitCustomResource> reconcile( - RateLimitCustomResource resource, + public UpdateControl<RateLimitCustomResource> reconcile(RateLimitCustomResource resource, Context<RateLimitCustomResource> context) { numberOfExecutions.addAndGet(1); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/retry/RetryIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/retry/RetryIT.java index e1610dc000..e7e0fc15b4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/retry/RetryIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/retry/RetryIT.java @@ -20,13 +20,10 @@ class RetryIT { public static final int NUMBER_FAILED_EXECUTIONS = 3; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler( - new RetryTestCustomReconciler(NUMBER_FAILED_EXECUTIONS), - new GenericRetry().setInitialInterval(RETRY_INTERVAL).withLinearRetry() - .setMaxAttempts(MAX_RETRY_ATTEMPTS)) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new RetryTestCustomReconciler(NUMBER_FAILED_EXECUTIONS), new GenericRetry() + .setInitialInterval(RETRY_INTERVAL).withLinearRetry().setMaxAttempts(MAX_RETRY_ATTEMPTS)) + .build(); @Test @@ -36,21 +33,14 @@ void retryFailedExecution() { operator.create(resource); await("cr status updated") - .pollDelay( - RETRY_INTERVAL * (NUMBER_FAILED_EXECUTIONS + 2), - TimeUnit.MILLISECONDS) - .pollInterval( - RETRY_INTERVAL, - TimeUnit.MILLISECONDS) - .atMost(5, TimeUnit.SECONDS) + .pollDelay(RETRY_INTERVAL * (NUMBER_FAILED_EXECUTIONS + 2), TimeUnit.MILLISECONDS) + .pollInterval(RETRY_INTERVAL, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) .untilAsserted(() -> { - assertThat( - TestUtils.getNumberOfExecutions(operator)) + assertThat(TestUtils.getNumberOfExecutions(operator)) .isEqualTo(NUMBER_FAILED_EXECUTIONS + 1); RetryTestCustomResource finalResource = - operator.get(RetryTestCustomResource.class, - resource.getMetadata().getName()); + operator.get(RetryTestCustomResource.class, resource.getMetadata().getName()); assertThat(finalResource.getStatus().getState()) .isEqualTo(RetryTestCustomResourceStatus.State.SUCCESS); }); @@ -58,10 +48,7 @@ void retryFailedExecution() { public static RetryTestCustomResource createTestCustomResource(String id) { RetryTestCustomResource resource = new RetryTestCustomResource(); - resource.setMetadata( - new ObjectMetaBuilder() - .withName("retrysource-" + id) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName("retrysource-" + id).build()); resource.setKind("retrysample"); resource.setSpec(new RetryTestCustomResourceSpec()); resource.getSpec().setValue(id); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/retry/RetryMaxAttemptIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/retry/RetryMaxAttemptIT.java index bedfd5cff5..4958115032 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/retry/RetryMaxAttemptIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/retry/RetryMaxAttemptIT.java @@ -18,12 +18,10 @@ class RetryMaxAttemptIT { RetryTestCustomReconciler reconciler = new RetryTestCustomReconciler(ALL_EXECUTION_TO_FAIL); @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(reconciler, - new GenericRetry().setInitialInterval(RETRY_INTERVAL).withLinearRetry() - .setMaxAttempts(MAX_RETRY_ATTEMPTS)) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(reconciler, new GenericRetry().setInitialInterval(RETRY_INTERVAL) + .withLinearRetry().setMaxAttempts(MAX_RETRY_ATTEMPTS)) + .build(); @Test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/retry/RetryTestCustomReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/retry/RetryTestCustomReconciler.java index b9fee4769a..34b78de06c 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/retry/RetryTestCustomReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/retry/RetryTestCustomReconciler.java @@ -15,8 +15,7 @@ public class RetryTestCustomReconciler implements Reconciler<RetryTestCustomResource>, TestExecutionInfoProvider { - private static final Logger log = - LoggerFactory.getLogger(RetryTestCustomReconciler.class); + private static final Logger log = LoggerFactory.getLogger(RetryTestCustomReconciler.class); private final AtomicInteger numberOfExecutions = new AtomicInteger(0); private final AtomicInteger numberOfExecutionFails; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/ReconcilerExecutorIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/ReconcilerExecutorIT.java index 727930d8e6..8a7506dddc 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/ReconcilerExecutorIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/ReconcilerExecutorIT.java @@ -63,21 +63,16 @@ void cleanupExecuted() { awaitStatusUpdated(); operator.delete(resource); - await().atMost(Duration.ofSeconds(1)) - .until(() -> ((TestReconciler) operator.getFirstReconciler()) - .getNumberOfCleanupExecutions() == 1); + await().atMost(Duration.ofSeconds(1)).until( + () -> ((TestReconciler) operator.getFirstReconciler()).getNumberOfCleanupExecutions() == 1); } void awaitResourcesCreatedOrUpdated() { - await("config map created") - .atMost(5, TimeUnit.SECONDS) - .untilAsserted( - () -> { - ConfigMap configMap = - operator.get(ConfigMap.class, "test-config-map"); - assertThat(configMap).isNotNull(); - assertThat(configMap.getData().get("test-key")).isEqualTo("test-value"); - }); + await("config map created").atMost(5, TimeUnit.SECONDS).untilAsserted(() -> { + ConfigMap configMap = operator.get(ConfigMap.class, "test-config-map"); + assertThat(configMap).isNotNull(); + assertThat(configMap.getData().get("test-key")).isEqualTo("test-value"); + }); } void awaitStatusUpdated() { @@ -85,16 +80,12 @@ void awaitStatusUpdated() { } void awaitStatusUpdated(int timeout) { - await("cr status updated") - .atMost(timeout, TimeUnit.SECONDS) - .untilAsserted( - () -> { - TestCustomResource cr = - operator.get(TestCustomResource.class, - TestUtils.TEST_CUSTOM_RESOURCE_NAME); - assertThat(cr).isNotNull(); - assertThat(cr.getStatus()).isNotNull(); - assertThat(cr.getStatus().getConfigMapStatus()).isEqualTo("ConfigMap Ready"); - }); + await("cr status updated").atMost(timeout, TimeUnit.SECONDS).untilAsserted(() -> { + TestCustomResource cr = + operator.get(TestCustomResource.class, TestUtils.TEST_CUSTOM_RESOURCE_NAME); + assertThat(cr).isNotNull(); + assertThat(cr.getStatus()).isNotNull(); + assertThat(cr.getStatus().getConfigMapStatus()).isEqualTo("ConfigMap Ready"); + }); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/TestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/TestCustomResource.java index 5728746573..e93a039cbb 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/TestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/TestCustomResource.java @@ -12,6 +12,5 @@ @Kind("CustomService") @ShortNames("cs") public class TestCustomResource - extends CustomResource<TestCustomResourceSpec, TestCustomResourceStatus> - implements Namespaced { + extends CustomResource<TestCustomResourceSpec, TestCustomResourceStatus> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/TestCustomResourceSpec.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/TestCustomResourceSpec.java index eda3c477b2..dc90da6e53 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/TestCustomResourceSpec.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/TestCustomResourceSpec.java @@ -34,16 +34,7 @@ public void setValue(String value) { @Override public String toString() { - return "TestCustomResourceSpec{" - + "configMapName='" - + configMapName - + '\'' - + ", key='" - + key - + '\'' - + ", value='" - + value - + '\'' - + '}'; + return "TestCustomResourceSpec{" + "configMapName='" + configMapName + '\'' + ", key='" + key + + '\'' + ", value='" + value + '\'' + '}'; } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/TestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/TestReconciler.java index 50cfd334bf..8c5bf987dc 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/TestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/simple/TestReconciler.java @@ -15,8 +15,7 @@ import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider; @ControllerConfiguration(generationAwareEventProcessing = false) -public class TestReconciler - implements Reconciler<TestCustomResource>, Cleaner<TestCustomResource>, +public class TestReconciler implements Reconciler<TestCustomResource>, Cleaner<TestCustomResource>, TestExecutionInfoProvider { private static final Logger log = LoggerFactory.getLogger(TestReconciler.class); @@ -38,77 +37,55 @@ public void setUpdateStatus(boolean updateStatus) { } @Override - public DeleteControl cleanup( - TestCustomResource resource, Context<TestCustomResource> context) { + public DeleteControl cleanup(TestCustomResource resource, Context<TestCustomResource> context) { numberOfCleanupExecutions.incrementAndGet(); - var statusDetail = context.getClient() - .configMaps() - .inNamespace(resource.getMetadata().getNamespace()) - .withName(resource.getSpec().getConfigMapName()) - .delete(); + var statusDetail = + context.getClient().configMaps().inNamespace(resource.getMetadata().getNamespace()) + .withName(resource.getSpec().getConfigMapName()).delete(); if (statusDetail.size() == 1 && statusDetail.get(0).getCauses().isEmpty()) { - log.info( - "Deleted ConfigMap {} for resource: {}", - resource.getSpec().getConfigMapName(), + log.info("Deleted ConfigMap {} for resource: {}", resource.getSpec().getConfigMapName(), resource.getMetadata().getName()); } else { - log.error( - "Failed to delete ConfigMap {} for resource: {}", - resource.getSpec().getConfigMapName(), - resource.getMetadata().getName()); + log.error("Failed to delete ConfigMap {} for resource: {}", + resource.getSpec().getConfigMapName(), resource.getMetadata().getName()); } return DeleteControl.defaultDelete(); } @Override - public UpdateControl<TestCustomResource> reconcile( - TestCustomResource resource, Context<TestCustomResource> context) { + public UpdateControl<TestCustomResource> reconcile(TestCustomResource resource, + Context<TestCustomResource> context) { numberOfExecutions.addAndGet(1); if (!resource.getMetadata().getFinalizers().contains(FINALIZER_NAME)) { throw new IllegalStateException("Finalizer is not present."); } final var kubernetesClient = context.getClient(); ConfigMap existingConfigMap = - kubernetesClient - .configMaps() - .inNamespace(resource.getMetadata().getNamespace()) - .withName(resource.getSpec().getConfigMapName()) - .get(); + kubernetesClient.configMaps().inNamespace(resource.getMetadata().getNamespace()) + .withName(resource.getSpec().getConfigMapName()).get(); if (existingConfigMap != null) { existingConfigMap.setData(configMapData(resource)); // existingConfigMap.getMetadata().setResourceVersion(null); - kubernetesClient - .configMaps() - .inNamespace(resource.getMetadata().getNamespace()) - .resource(existingConfigMap) - .createOrReplace(); + kubernetesClient.configMaps().inNamespace(resource.getMetadata().getNamespace()) + .resource(existingConfigMap).createOrReplace(); } else { Map<String, String> labels = new HashMap<>(); labels.put("managedBy", TestReconciler.class.getSimpleName()); - ConfigMap newConfigMap = - new ConfigMapBuilder() - .withMetadata( - new ObjectMetaBuilder() - .withName(resource.getSpec().getConfigMapName()) - .withNamespace(resource.getMetadata().getNamespace()) - .withLabels(labels) - .build()) - .withData(configMapData(resource)) - .build(); - kubernetesClient - .configMaps() - .inNamespace(resource.getMetadata().getNamespace()).resource(newConfigMap) - .createOrReplace(); + ConfigMap newConfigMap = new ConfigMapBuilder() + .withMetadata(new ObjectMetaBuilder().withName(resource.getSpec().getConfigMapName()) + .withNamespace(resource.getMetadata().getNamespace()).withLabels(labels).build()) + .withData(configMapData(resource)).build(); + kubernetesClient.configMaps().inNamespace(resource.getMetadata().getNamespace()) + .resource(newConfigMap).createOrReplace(); } if (updateStatus) { var statusUpdateResource = new TestCustomResource(); - statusUpdateResource.setMetadata(new ObjectMetaBuilder() - .withName(resource.getMetadata().getName()) - .withNamespace(resource.getMetadata().getNamespace()) - .build()); + statusUpdateResource + .setMetadata(new ObjectMetaBuilder().withName(resource.getMetadata().getName()) + .withNamespace(resource.getMetadata().getNamespace()).build()); resource.setStatus(new TestCustomResourceStatus()); resource.getStatus().setConfigMapStatus("ConfigMap Ready"); return UpdateControl.patchStatus(resource); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchLockingCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchLockingCustomResource.java index 61d4c7f1ac..6ea3681cb4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchLockingCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchLockingCustomResource.java @@ -9,8 +9,7 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("spl") -public class StatusPatchLockingCustomResource - extends +public class StatusPatchLockingCustomResource extends CustomResource<StatusPatchLockingCustomResourceSpec, StatusPatchLockingCustomResourceStatus> implements Namespaced { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchLockingReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchLockingReconciler.java index 46f0e63331..a03f3f8ad8 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchLockingReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchLockingReconciler.java @@ -8,8 +8,7 @@ import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; @ControllerConfiguration -public class StatusPatchLockingReconciler - implements Reconciler<StatusPatchLockingCustomResource> { +public class StatusPatchLockingReconciler implements Reconciler<StatusPatchLockingCustomResource> { public static final String MESSAGE = "message"; public static final long WAIT_TIME = 500L; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchNotLockingForNonSSAIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchNotLockingForNonSSAIT.java index 2363a86392..5b65ade49f 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchNotLockingForNonSSAIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchNotLockingForNonSSAIT.java @@ -21,8 +21,7 @@ class StatusPatchNotLockingForNonSSAIT { @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder().withReconciler(StatusPatchLockingReconciler.class) - .withConfigurationService(o -> o.withUseSSAToPatchPrimaryResource(false)) - .build(); + .withConfigurationService(o -> o.withUseSSAToPatchPrimaryResource(false)).build(); @Test void noOptimisticLockingDoneOnStatusUpdate() throws InterruptedException { @@ -35,12 +34,9 @@ void noOptimisticLockingDoneOnStatusUpdate() throws InterruptedException { assertThat( operator.getReconcilerOfType(StatusPatchLockingReconciler.class).getNumberOfExecutions()) .isEqualTo(1); - var actual = operator.get(StatusPatchLockingCustomResource.class, - TEST_RESOURCE_NAME); - assertThat(actual - .getStatus().getValue()).isEqualTo(1); - assertThat(actual.getMetadata().getGeneration()) - .isEqualTo(1); + var actual = operator.get(StatusPatchLockingCustomResource.class, TEST_RESOURCE_NAME); + assertThat(actual.getStatus().getValue()).isEqualTo(1); + assertThat(actual.getMetadata().getGeneration()).isEqualTo(1); }); } @@ -50,8 +46,7 @@ void valuesAreDeletedIfSetToNull() { var resource = operator.create(createResource()); await().untilAsserted(() -> { - var actual = operator.get(StatusPatchLockingCustomResource.class, - TEST_RESOURCE_NAME); + var actual = operator.get(StatusPatchLockingCustomResource.class, TEST_RESOURCE_NAME); assertThat(actual.getStatus()).isNotNull(); assertThat(actual.getStatus().getMessage()).isEqualTo(MESSAGE); }); @@ -62,8 +57,7 @@ void valuesAreDeletedIfSetToNull() { operator.replace(resource); await().timeout(Duration.ofMinutes(3)).untilAsserted(() -> { - var actual = operator.get(StatusPatchLockingCustomResource.class, - TEST_RESOURCE_NAME); + var actual = operator.get(StatusPatchLockingCustomResource.class, TEST_RESOURCE_NAME); assertThat(actual.getStatus()).isNotNull(); assertThat(actual.getStatus().getMessage()).isNull(); }); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchSSAMigrationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchSSAMigrationIT.java index 0a5c947c21..63de13d42f 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchSSAMigrationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statuspatchnonlocking/StatusPatchSSAMigrationIT.java @@ -26,8 +26,7 @@ public class StatusPatchSSAMigrationIT { @BeforeEach void beforeEach(TestInfo testInfo) { - LocallyRunOperatorExtension.applyCrd(StatusPatchLockingCustomResource.class, - client); + LocallyRunOperatorExtension.applyCrd(StatusPatchLockingCustomResource.class, client); testInfo.getTestMethod() .ifPresent(method -> testNamespace = KubernetesResourceUtil.sanitizeName(method.getName())); client.namespaces().resource(testNamespace(testNamespace)).create(); @@ -108,9 +107,10 @@ void workaroundMigratingFromToSSA() { var actualResource = client.resource(testResource()).get(); actualResource.getSpec().setMessageInStatus(false); // removing the managed field entry for former method works - actualResource.getMetadata().setManagedFields(actualResource.getMetadata().getManagedFields() - .stream().filter(r -> !r.getOperation().equals("Update") && r.getSubresource() != null) - .toList()); + actualResource.getMetadata() + .setManagedFields(actualResource.getMetadata().getManagedFields().stream() + .filter(r -> !r.getOperation().equals("Update") && r.getSubresource() != null) + .toList()); client.resource(actualResource).update(); await().untilAsserted(() -> { @@ -126,10 +126,9 @@ void workaroundMigratingFromToSSA() { private Operator startOperator(boolean patchStatusWithSSA) { - var operator = new Operator(o -> o.withCloseClientOnStop(false) - .withUseSSAToPatchPrimaryResource(patchStatusWithSSA)); - operator.register(new StatusPatchLockingReconciler(), - o -> o.settingNamespaces(testNamespace)); + var operator = new Operator( + o -> o.withCloseClientOnStop(false).withUseSSAToPatchPrimaryResource(patchStatusWithSSA)); + operator.register(new StatusPatchLockingReconciler(), o -> o.settingNamespaces(testNamespace)); operator.start(); return operator; @@ -138,16 +137,13 @@ private Operator startOperator(boolean patchStatusWithSSA) { StatusPatchLockingCustomResource testResource() { StatusPatchLockingCustomResource res = new StatusPatchLockingCustomResource(); res.setSpec(new StatusPatchLockingCustomResourceSpec()); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .withNamespace(testNamespace) - .build()); + res.setMetadata( + new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).withNamespace(testNamespace).build()); return res; } private Namespace testNamespace(String name) { - return new NamespaceBuilder().withMetadata(new ObjectMetaBuilder() - .withName(name) - .build()).build(); + return new NamespaceBuilder().withMetadata(new ObjectMetaBuilder().withName(name).build()) + .build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statusupdatelocking/StatusUpdateLockingCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statusupdatelocking/StatusUpdateLockingCustomResource.java index fb638ef5a0..b2282cdcb2 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statusupdatelocking/StatusUpdateLockingCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statusupdatelocking/StatusUpdateLockingCustomResource.java @@ -12,7 +12,6 @@ @Kind("StatusUpdateLockingCustomResource") @ShortNames("sul") public class StatusUpdateLockingCustomResource - extends CustomResource<Void, StatusUpdateLockingCustomResourceStatus> - implements Namespaced { + extends CustomResource<Void, StatusUpdateLockingCustomResourceStatus> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statusupdatelocking/StatusUpdateLockingIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statusupdatelocking/StatusUpdateLockingIT.java index 881b0b01fc..9192188da1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statusupdatelocking/StatusUpdateLockingIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statusupdatelocking/StatusUpdateLockingIT.java @@ -18,11 +18,9 @@ class StatusUpdateLockingIT { public static final String TEST_RESOURCE_NAME = "test"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withConfigurationService(o -> o.withUseSSAToPatchPrimaryResource(false)) - .withReconciler(StatusUpdateLockingReconciler.class) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withConfigurationService(o -> o.withUseSSAToPatchPrimaryResource(false)) + .withReconciler(StatusUpdateLockingReconciler.class).build(); @Test void noOptimisticLockingDoneOnStatusPatch() throws InterruptedException { @@ -33,10 +31,8 @@ void noOptimisticLockingDoneOnStatusPatch() throws InterruptedException { await().pollDelay(Duration.ofMillis(WAIT_TIME)).timeout(Duration.ofSeconds(460)) .untilAsserted(() -> { - assertThat( - operator.getReconcilerOfType(StatusUpdateLockingReconciler.class) - .getNumberOfExecutions()) - .isEqualTo(1); + assertThat(operator.getReconcilerOfType(StatusUpdateLockingReconciler.class) + .getNumberOfExecutions()).isEqualTo(1); assertThat(operator.get(StatusUpdateLockingCustomResource.class, TEST_RESOURCE_NAME) .getStatus().getValue()).isEqualTo(1); }); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statusupdatelocking/StatusUpdateLockingReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statusupdatelocking/StatusUpdateLockingReconciler.java index 31dc727dde..e87c4d35a2 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statusupdatelocking/StatusUpdateLockingReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/statusupdatelocking/StatusUpdateLockingReconciler.java @@ -14,8 +14,7 @@ public class StatusUpdateLockingReconciler @Override public UpdateControl<StatusUpdateLockingCustomResource> reconcile( StatusUpdateLockingCustomResource resource, - Context<StatusUpdateLockingCustomResource> context) - throws InterruptedException { + Context<StatusUpdateLockingCustomResource> context) throws InterruptedException { numberOfExecutions.addAndGet(1); Thread.sleep(WAIT_TIME); resource.setStatus(new StatusUpdateLockingCustomResourceStatus()); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/subresource/SubResourceTestCustomReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/subresource/SubResourceTestCustomReconciler.java index 51ae9e9330..e34efddea6 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/subresource/SubResourceTestCustomReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/subresource/SubResourceTestCustomReconciler.java @@ -19,8 +19,7 @@ public class SubResourceTestCustomReconciler public static final int RECONCILER_MIN_EXEC_TIME = 300; - private static final Logger log = - LoggerFactory.getLogger(SubResourceTestCustomReconciler.class); + private static final Logger log = LoggerFactory.getLogger(SubResourceTestCustomReconciler.class); private final AtomicInteger numberOfExecutions = new AtomicInteger(0); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/subresource/SubResourceUpdateIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/subresource/SubResourceUpdateIT.java index 8a73cadf3f..f38fcc3020 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/subresource/SubResourceUpdateIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/subresource/SubResourceUpdateIT.java @@ -20,9 +20,8 @@ class SubResourceUpdateIT { public static final int EVENT_RECEIVE_WAIT = 200; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(SubResourceTestCustomReconciler.class) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(SubResourceTestCustomReconciler.class).build(); @Test void updatesSubResourceStatus() { @@ -33,8 +32,7 @@ void updatesSubResourceStatus() { // wait for sure, there are no more events waitXms(WAIT_AFTER_EXECUTION); // there is no event on status update processed - assertThat(TestUtils.getNumberOfExecutions(operator)) - .isEqualTo(2); + assertThat(TestUtils.getNumberOfExecutions(operator)).isEqualTo(2); } @Test @@ -48,8 +46,7 @@ void updatesSubResourceStatusNoFinalizer() { // wait for sure, there are no more events waitXms(WAIT_AFTER_EXECUTION); // there is no event on status update processed - assertThat(TestUtils.getNumberOfExecutions(operator)) - .isEqualTo(2); + assertThat(TestUtils.getNumberOfExecutions(operator)).isEqualTo(2); } /** Note that we check on controller impl if there is finalizer on execution. */ @@ -63,8 +60,7 @@ void ifNoFinalizerPresentFirstAddsTheFinalizerThenExecutesControllerAgain() { // wait for sure, there are no more events waitXms(WAIT_AFTER_EXECUTION); // there is no event on status update processed - assertThat(TestUtils.getNumberOfExecutions(operator)) - .isEqualTo(2); + assertThat(TestUtils.getNumberOfExecutions(operator)).isEqualTo(2); } /** @@ -91,25 +87,17 @@ void updateCustomResourceAfterSubResourceChange() { } void awaitStatusUpdated(String name) { - await("cr status updated") - .atMost(5, TimeUnit.SECONDS) - .untilAsserted( - () -> { - SubResourceTestCustomResource cr = - operator.get(SubResourceTestCustomResource.class, name); - assertThat(cr).isNotNull(); - assertThat(cr.getStatus()).isNotNull(); - assertThat(cr.getStatus().getState()) - .isEqualTo(SUCCESS); - }); + await("cr status updated").atMost(5, TimeUnit.SECONDS).untilAsserted(() -> { + SubResourceTestCustomResource cr = operator.get(SubResourceTestCustomResource.class, name); + assertThat(cr).isNotNull(); + assertThat(cr.getStatus()).isNotNull(); + assertThat(cr.getStatus().getState()).isEqualTo(SUCCESS); + }); } public SubResourceTestCustomResource createTestCustomResource(String id) { SubResourceTestCustomResource resource = new SubResourceTestCustomResource(); - resource.setMetadata( - new ObjectMetaBuilder() - .withName("subresource-" + id) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName("subresource-" + id).build()); resource.setKind("SubresourceSample"); resource.setSpec(new SubResourceTestCustomResourceSpec()); resource.getSpec().setValue(id); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiableDependentPartCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiableDependentPartCustomResource.java index 7b0d757f82..9494e4f59a 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiableDependentPartCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiableDependentPartCustomResource.java @@ -10,7 +10,6 @@ @Version("v1") @ShortNames("udp") public class UnmodifiableDependentPartCustomResource - extends CustomResource<UnmodifiableDependentPartSpec, Void> - implements Namespaced { + extends CustomResource<UnmodifiableDependentPartSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiableDependentPartIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiableDependentPartIT.java index a80905c23a..5e67000048 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiableDependentPartIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiableDependentPartIT.java @@ -19,10 +19,8 @@ public class UnmodifiableDependentPartIT { public static final String UPDATED_DATA = "updatedData"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(UnmodifiableDependentPartReconciler.class) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(UnmodifiableDependentPartReconciler.class).build(); @Test void partConfigMapDataUnmodifiable() { @@ -49,9 +47,7 @@ void partConfigMapDataUnmodifiable() { UnmodifiableDependentPartCustomResource testResource() { var res = new UnmodifiableDependentPartCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); res.setSpec(new UnmodifiableDependentPartSpec()); res.getSpec().setData(INITIAL_DATA); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiableDependentPartReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiableDependentPartReconciler.java index 9c7f6fb9c1..e68676601f 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiableDependentPartReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiableDependentPartReconciler.java @@ -15,8 +15,7 @@ public class UnmodifiableDependentPartReconciler @Override public UpdateControl<UnmodifiableDependentPartCustomResource> reconcile( UnmodifiableDependentPartCustomResource resource, - Context<UnmodifiableDependentPartCustomResource> context) - throws InterruptedException { + Context<UnmodifiableDependentPartCustomResource> context) throws InterruptedException { numberOfExecutions.addAndGet(1); return UpdateControl.noUpdate(); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiablePartConfigMapDependent.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiablePartConfigMapDependent.java index d913c0cecd..2bd257e29d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiablePartConfigMapDependent.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/unmodifiabledependentpart/UnmodifiablePartConfigMapDependent.java @@ -23,10 +23,8 @@ protected ConfigMap desired(UnmodifiableDependentPartCustomResource primary, Context<UnmodifiableDependentPartCustomResource> context) { var actual = context.getSecondaryResource(ConfigMap.class); ConfigMap res = new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) + .withMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()) .build(); res.setData(Map.of(ACTUAL_DATA_KEY, primary.getSpec().getData(), // setting the old data if available diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/updatestatusincleanupandreschedule/UpdateStatusInCleanupAndRescheduleCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/updatestatusincleanupandreschedule/UpdateStatusInCleanupAndRescheduleCustomResource.java index de877ceb90..1b0d710df9 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/updatestatusincleanupandreschedule/UpdateStatusInCleanupAndRescheduleCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/updatestatusincleanupandreschedule/UpdateStatusInCleanupAndRescheduleCustomResource.java @@ -9,9 +9,7 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("usc") -public class UpdateStatusInCleanupAndRescheduleCustomResource - extends - CustomResource<Void, UpdateStatusInCleanupAndRescheduleCustomStatus> - implements Namespaced { +public class UpdateStatusInCleanupAndRescheduleCustomResource extends + CustomResource<Void, UpdateStatusInCleanupAndRescheduleCustomStatus> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/updatestatusincleanupandreschedule/UpdateStatusInCleanupAndRescheduleIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/updatestatusincleanupandreschedule/UpdateStatusInCleanupAndRescheduleIT.java index 81dc6dd448..ba1681c7a3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/updatestatusincleanupandreschedule/UpdateStatusInCleanupAndRescheduleIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/updatestatusincleanupandreschedule/UpdateStatusInCleanupAndRescheduleIT.java @@ -13,10 +13,8 @@ public class UpdateStatusInCleanupAndRescheduleIT { public static final String TEST_RESOURCE = "test1"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(UpdateStatusInCleanupAndRescheduleReconciler.class) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(UpdateStatusInCleanupAndRescheduleReconciler.class).build(); @Test @@ -38,15 +36,12 @@ void testRescheduleAfterPatch() { }); assertThat(extension.getReconcilerOfType(UpdateStatusInCleanupAndRescheduleReconciler.class) - .getRescheduleDelayWorked()) - .isTrue(); + .getRescheduleDelayWorked()).isTrue(); } UpdateStatusInCleanupAndRescheduleCustomResource testResource() { var resource = new UpdateStatusInCleanupAndRescheduleCustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE).build()); return resource; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java index d239122314..1d93764ba8 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java @@ -135,8 +135,8 @@ void missingAnnotationCreatesDefaultConfig() { } @SuppressWarnings("rawtypes") - private DependentResourceSpec findByName( - List<DependentResourceSpec> dependentResourceSpecList, String name) { + private DependentResourceSpec findByName(List<DependentResourceSpec> dependentResourceSpecList, + String name) { return dependentResourceSpecList.stream().filter(d -> d.getName().equals(name)).findFirst() .orElseThrow(); } @@ -199,13 +199,11 @@ void configuringRateLimitAndGradualRetryViaSuperClassShouldWork() { var config = configFor(new GradualRetryAndRateLimitedOnSuperClass()); final var retry = config.getRetry(); final var testRetry = assertInstanceOf(GenericRetry.class, retry); - assertEquals( - BaseClassWithGradualRetryAndRateLimited.RETRY_MAX_ATTEMPTS, + assertEquals(BaseClassWithGradualRetryAndRateLimited.RETRY_MAX_ATTEMPTS, testRetry.getMaxAttempts()); final var rateLimiter = assertInstanceOf(LinearRateLimiter.class, config.getRateLimiter()); - assertEquals( - BaseClassWithGradualRetryAndRateLimited.RATE_LIMITED_MAX_RECONCILIATIONS, + assertEquals(BaseClassWithGradualRetryAndRateLimited.RATE_LIMITED_MAX_RECONCILIATIONS, rateLimiter.getLimitForPeriod()); assertEquals( Duration.ofSeconds(BaseClassWithGradualRetryAndRateLimited.RATE_LIMITED_WITHIN_SECONDS), @@ -272,16 +270,16 @@ void dependentsShouldUseSSAByDefaultIfNotExcluded() { var kubernetesDependentResourceConfig = extractDependentKubernetesResourceConfig(config, 0); assertNotNull(kubernetesDependentResourceConfig); - assertTrue(configurationService.shouldUseSSA( - DefaultSSAForDependentsReconciler.DefaultDependent.class, ConfigMapReader.class, - kubernetesDependentResourceConfig)); + assertTrue( + configurationService.shouldUseSSA(DefaultSSAForDependentsReconciler.DefaultDependent.class, + ConfigMapReader.class, kubernetesDependentResourceConfig)); kubernetesDependentResourceConfig = extractDependentKubernetesResourceConfig(config, 1); assertNotNull(kubernetesDependentResourceConfig); assertFalse(kubernetesDependentResourceConfig.useSSA()); - assertFalse(configurationService - .shouldUseSSA(DefaultSSAForDependentsReconciler.NonSSADependent.class, Service.class, - kubernetesDependentResourceConfig)); + assertFalse( + configurationService.shouldUseSSA(DefaultSSAForDependentsReconciler.NonSSADependent.class, + Service.class, kubernetesDependentResourceConfig)); } @Test @@ -303,9 +301,8 @@ private static int getValue( return ((CustomConfig) configuration.getConfigurationFor(spec)).value(); } - @ControllerConfiguration( - maxReconciliationInterval = @MaxReconciliationInterval(interval = 50, - timeUnit = TimeUnit.SECONDS)) + @ControllerConfiguration(maxReconciliationInterval = @MaxReconciliationInterval(interval = 50, + timeUnit = TimeUnit.SECONDS)) private static class MaxIntervalReconciler implements Reconciler<ConfigMap> { @Override @@ -315,8 +312,7 @@ public UpdateControl<ConfigMap> reconcile(ConfigMap resource, Context<ConfigMap> } @Workflow(dependents = @Dependent(type = ReadOnlyDependent.class)) - @ControllerConfiguration( - informer = @Informer(namespaces = OneDepReconciler.CONFIGURED_NS)) + @ControllerConfiguration(informer = @Informer(namespaces = OneDepReconciler.CONFIGURED_NS)) private static class OneDepReconciler implements Reconciler<ConfigMapReader> { private static final String CONFIGURED_NS = "foo"; @@ -341,10 +337,8 @@ public UpdateControl<ConfigMapReader> reconcile(ConfigMapReader resource, } } - @Workflow(dependents = { - @Dependent(type = ReadOnlyDependent.class), - @Dependent(type = ReadOnlyDependent.class) - }) + @Workflow(dependents = {@Dependent(type = ReadOnlyDependent.class), + @Dependent(type = ReadOnlyDependent.class)}) @ControllerConfiguration private static class DuplicatedDepReconciler implements Reconciler<ConfigMapReader> { @@ -357,8 +351,7 @@ public UpdateControl<ConfigMapReader> reconcile(ConfigMapReader resource, @Workflow(dependents = { @Dependent(type = ReadOnlyDependent.class, name = NamedDuplicatedDepReconciler.NAME), - @Dependent(type = ReadOnlyDependent.class) - }) + @Dependent(type = ReadOnlyDependent.class)}) @ControllerConfiguration private static class NamedDuplicatedDepReconciler implements Reconciler<ConfigMapReader> { @@ -381,10 +374,8 @@ public UpdateControl<ConfigMapReader> reconcile(ConfigMapReader resource, } } - @Workflow(dependents = { - @Dependent(type = SelectorReconciler.WithAnnotation.class), - @Dependent(type = ReadOnlyDependent.class) - }) + @Workflow(dependents = {@Dependent(type = SelectorReconciler.WithAnnotation.class), + @Dependent(type = ReadOnlyDependent.class)}) @ControllerConfiguration public static class SelectorReconciler implements Reconciler<ConfigMapReader> { @@ -413,10 +404,8 @@ public UpdateControl<ConfigMap> reconcile(ConfigMap resource, Context<ConfigMap> } @Workflow( - dependents = { - @Dependent(type = DefaultSSAForDependentsReconciler.DefaultDependent.class), - @Dependent(type = DefaultSSAForDependentsReconciler.NonSSADependent.class) - }) + dependents = {@Dependent(type = DefaultSSAForDependentsReconciler.DefaultDependent.class), + @Dependent(type = DefaultSSAForDependentsReconciler.NonSSADependent.class)}) private static class DefaultSSAForDependentsReconciler implements Reconciler<ConfigMap> { @Override @@ -478,8 +467,7 @@ public UpdateControl<ConfigMap> reconcile(ConfigMap resource, Context<ConfigMap> } } - @GradualRetry( - maxAttempts = CheckRetryingGraduallyConfiguration.MAX_ATTEMPTS, + @GradualRetry(maxAttempts = CheckRetryingGraduallyConfiguration.MAX_ATTEMPTS, initialInterval = CheckRetryingGraduallyConfiguration.INITIAL_INTERVAL, intervalMultiplier = CheckRetryingGraduallyConfiguration.INTERVAL_MULTIPLIER, maxInterval = CheckRetryingGraduallyConfiguration.MAX_INTERVAL) @@ -499,8 +487,7 @@ public UpdateControl<ConfigMap> reconcile(ConfigMap resource, Context<ConfigMap> @ControllerConfiguration private static class GradualRetryAndRateLimitedOnSuperClass - extends BaseClassWithGradualRetryAndRateLimited - implements Reconciler<ConfigMap> { + extends BaseClassWithGradualRetryAndRateLimited implements Reconciler<ConfigMap> { @Override public UpdateControl<ConfigMap> reconcile(ConfigMap resource, Context<ConfigMap> context) { @@ -532,10 +519,8 @@ public UpdateControl<ConfigMap> reconcile(ConfigMap resource, Context<ConfigMap> } } - @Workflow(dependents = { - @Dependent(type = CustomAnnotatedDep.class), - @Dependent(type = ChildCustomAnnotatedDep.class) - }) + @Workflow(dependents = {@Dependent(type = CustomAnnotatedDep.class), + @Dependent(type = ChildCustomAnnotatedDep.class)}) @ControllerConfiguration() private static class CustomAnnotationReconciler implements Reconciler<ConfigMap> { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/ControllerConfigurationAnnotationProcessorTest.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/ControllerConfigurationAnnotationProcessorTest.java index a7365c19b9..90d3d74d14 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/ControllerConfigurationAnnotationProcessorTest.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/ControllerConfigurationAnnotationProcessorTest.java @@ -12,35 +12,28 @@ class ControllerConfigurationAnnotationProcessorTest { @Test public void generateCorrectDoneableClassIfInterfaceIsSecond() { Compilation compilation = - Compiler.javac() - .withProcessors(new ControllerConfigurationAnnotationProcessor()) - .compile( - JavaFileObjects.forResource( - "compile-fixtures/ReconcilerImplemented2Interfaces.java")); + Compiler.javac().withProcessors(new ControllerConfigurationAnnotationProcessor()).compile( + JavaFileObjects.forResource("compile-fixtures/ReconcilerImplemented2Interfaces.java")); CompilationSubject.assertThat(compilation).succeeded(); } @Test public void generateCorrectDoneableClassIfThereIsAbstractBaseController() { Compilation compilation = - Compiler.javac() - .withProcessors(new ControllerConfigurationAnnotationProcessor()) - .compile( - JavaFileObjects.forResource("compile-fixtures/AbstractReconciler.java"), - JavaFileObjects.forResource( - "compile-fixtures/ReconcilerImplementedIntermediateAbstractClass.java")); + Compiler.javac().withProcessors(new ControllerConfigurationAnnotationProcessor()).compile( + JavaFileObjects.forResource("compile-fixtures/AbstractReconciler.java"), + JavaFileObjects.forResource( + "compile-fixtures/ReconcilerImplementedIntermediateAbstractClass.java")); CompilationSubject.assertThat(compilation).succeeded(); } @Test public void generateDoneableClassWithMultilevelHierarchy() { Compilation compilation = - Compiler.javac() - .withProcessors(new ControllerConfigurationAnnotationProcessor()) - .compile( - JavaFileObjects.forResource("compile-fixtures/AdditionalReconcilerInterface.java"), - JavaFileObjects.forResource("compile-fixtures/MultilevelAbstractReconciler.java"), - JavaFileObjects.forResource("compile-fixtures/MultilevelReconciler.java")); + Compiler.javac().withProcessors(new ControllerConfigurationAnnotationProcessor()).compile( + JavaFileObjects.forResource("compile-fixtures/AdditionalReconcilerInterface.java"), + JavaFileObjects.forResource("compile-fixtures/MultilevelAbstractReconciler.java"), + JavaFileObjects.forResource("compile-fixtures/MultilevelReconciler.java")); CompilationSubject.assertThat(compilation).succeeded(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationServiceTest.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationServiceTest.java index 88fd33e946..b904bc3277 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationServiceTest.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/runtime/DefaultConfigurationServiceTest.java @@ -24,8 +24,7 @@ void returnsValuesFromControllerAnnotationFinalizer() { final var configuration = configurationService.getConfigurationFor(reconciler); assertEquals(CustomResource.getCRDName(TestCustomResource.class), configuration.getResourceTypeName()); - assertEquals( - ReconcilerUtils.getDefaultFinalizerName(TestCustomResource.class), + assertEquals(ReconcilerUtils.getDefaultFinalizerName(TestCustomResource.class), configuration.getFinalizerName()); assertEquals(TestCustomResource.class, configuration.getResourceClass()); assertFalse(configuration.isGenerationAware()); @@ -41,10 +40,9 @@ void returnCustomerFinalizerNameIfSet() { @Test void supportsInnerClassCustomResources() { final var reconciler = new TestCustomFinalizerReconciler(); - assertDoesNotThrow( - () -> { - configurationService.getConfigurationFor(reconciler).getAssociatedReconcilerClassName(); - }); + assertDoesNotThrow(() -> { + configurationService.getConfigurationFor(reconciler).getAssociatedReconcilerClassName(); + }); } @ControllerConfiguration(finalizerName = CUSTOM_FINALIZER_NAME) @@ -69,8 +67,8 @@ static class NotAutomaticallyCreated implements Reconciler<TestCustomResource> { public static final String NAME = "should-be-logged"; @Override - public UpdateControl<TestCustomResource> reconcile( - TestCustomResource resource, Context<TestCustomResource> context) { + public UpdateControl<TestCustomResource> reconcile(TestCustomResource resource, + Context<TestCustomResource> context) { return null; } } @@ -79,8 +77,8 @@ public UpdateControl<TestCustomResource> reconcile( static class TestCustomReconciler implements Reconciler<TestCustomResource> { @Override - public UpdateControl<TestCustomResource> reconcile( - TestCustomResource resource, Context<TestCustomResource> context) { + public UpdateControl<TestCustomResource> reconcile(TestCustomResource resource, + Context<TestCustomResource> context) { return null; } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/BulkDependentDeleterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/BulkDependentDeleterIT.java index be7365951e..9b2752339d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/BulkDependentDeleterIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/BulkDependentDeleterIT.java @@ -8,9 +8,8 @@ public class BulkDependentDeleterIT extends BulkDependentTestBase { @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder().withReconciler(new ManagedDeleterBulkReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new ManagedDeleterBulkReconciler()).build(); @Override public LocallyRunOperatorExtension extension() { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/BulkDependentTestBase.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/BulkDependentTestBase.java index 0441e31205..4844e7cdd2 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/BulkDependentTestBase.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/BulkDependentTestBase.java @@ -47,29 +47,24 @@ public void updatesData() { private void assertNumberOfConfigMaps(int n) { // this test was failing with a lower timeout on GitHub, probably the garbage collection was // slower there. - await().atMost(Duration.ofSeconds(30)) - .untilAsserted(() -> { - var cms = - extension().getKubernetesClient().configMaps().inNamespace(extension().getNamespace()) - .withLabel(LABEL_KEY, LABEL_VALUE) - .list().getItems(); - assertThat(cms).withFailMessage("Number of items is still: " + cms.size()) - .hasSize(n); - }); + await().atMost(Duration.ofSeconds(30)).untilAsserted(() -> { + var cms = + extension().getKubernetesClient().configMaps().inNamespace(extension().getNamespace()) + .withLabel(LABEL_KEY, LABEL_VALUE).list().getItems(); + assertThat(cms).withFailMessage("Number of items is still: " + cms.size()).hasSize(n); + }); } private void assertAdditionalDataOnConfigMaps(String expectedValue) { - await().atMost(Duration.ofSeconds(30)) - .untilAsserted(() -> { - var cms = - extension().getKubernetesClient().configMaps().inNamespace(extension().getNamespace()) - .withLabel(LABEL_KEY, LABEL_VALUE) - .list().getItems(); - cms.forEach(cm -> { - assertThat(cm.getData().get(ConfigMapDeleterBulkDependentResource.ADDITIONAL_DATA_KEY)) - .isEqualTo(expectedValue); - }); - }); + await().atMost(Duration.ofSeconds(30)).untilAsserted(() -> { + var cms = + extension().getKubernetesClient().configMaps().inNamespace(extension().getNamespace()) + .withLabel(LABEL_KEY, LABEL_VALUE).list().getItems(); + cms.forEach(cm -> { + assertThat(cm.getData().get(ConfigMapDeleterBulkDependentResource.ADDITIONAL_DATA_KEY)) + .isEqualTo(expectedValue); + }); + }); } public static BulkDependentTestCustomResource testResource() { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/BulkDependentTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/BulkDependentTestCustomResource.java index f7451e06d6..00f517c705 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/BulkDependentTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/BulkDependentTestCustomResource.java @@ -10,6 +10,5 @@ @Version("v1") @ShortNames("sbd") public class BulkDependentTestCustomResource - extends CustomResource<BulkDependentTestSpec, BulkDependentTestStatus> - implements Namespaced { + extends CustomResource<BulkDependentTestSpec, BulkDependentTestStatus> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/ConfigMapDeleterBulkDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/ConfigMapDeleterBulkDependentResource.java index cba3db3835..8006d0c4fb 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/ConfigMapDeleterBulkDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/ConfigMapDeleterBulkDependentResource.java @@ -15,8 +15,7 @@ * Not using CRUDKubernetesDependentResource so the delete functionality can be tested. */ public class ConfigMapDeleterBulkDependentResource - extends - KubernetesDependentResource<ConfigMap, BulkDependentTestCustomResource> + extends KubernetesDependentResource<ConfigMap, BulkDependentTestCustomResource> implements CRUDBulkDependentResource<ConfigMap, BulkDependentTestCustomResource> { public static final String LABEL_KEY = "bulk"; @@ -42,13 +41,12 @@ public Map<String, ConfigMap> desiredResources(BulkDependentTestCustomResource p public ConfigMap desired(BulkDependentTestCustomResource primary, String key) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName() + INDEX_DELIMITER + key) - .withNamespace(primary.getMetadata().getNamespace()) - .withLabels(Map.of(LABEL_KEY, LABEL_VALUE)) - .build()); - configMap.setData( - Map.of("number", key, ADDITIONAL_DATA_KEY, primary.getSpec().getAdditionalData())); + configMap.setMetadata( + new ObjectMetaBuilder().withName(primary.getMetadata().getName() + INDEX_DELIMITER + key) + .withNamespace(primary.getMetadata().getNamespace()) + .withLabels(Map.of(LABEL_KEY, LABEL_VALUE)).build()); + configMap + .setData(Map.of("number", key, ADDITIONAL_DATA_KEY, primary.getSpec().getAdditionalData())); return configMap; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/condition/BulkDependentWithConditionIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/condition/BulkDependentWithConditionIT.java index d4b857bf0c..87f050b25b 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/condition/BulkDependentWithConditionIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/condition/BulkDependentWithConditionIT.java @@ -16,10 +16,8 @@ class BulkDependentWithConditionIT { @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new ManagedBulkDependentWithReadyConditionReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new ManagedBulkDependentWithReadyConditionReconciler()).build(); @Test void handlesBulkDependentWithPrecondition() { @@ -33,8 +31,7 @@ void handlesBulkDependentWithPrecondition() { assertThat(res.getStatus().getReady()).isTrue(); var cms = extension.getKubernetesClient().configMaps().inNamespace(extension.getNamespace()) - .withLabel(LABEL_KEY, LABEL_VALUE) - .list().getItems(); + .withLabel(LABEL_KEY, LABEL_VALUE).list().getItems(); assertThat(cms).hasSize(INITIAL_NUMBER_OF_CONFIG_MAPS); }); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/condition/ManagedBulkDependentWithReadyConditionReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/condition/ManagedBulkDependentWithReadyConditionReconciler.java index 1dc48386cb..fd6f717b3c 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/condition/ManagedBulkDependentWithReadyConditionReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/condition/ManagedBulkDependentWithReadyConditionReconciler.java @@ -18,13 +18,12 @@ public class ManagedBulkDependentWithReadyConditionReconciler @Override public UpdateControl<BulkDependentTestCustomResource> reconcile( - BulkDependentTestCustomResource resource, - Context<BulkDependentTestCustomResource> context) throws Exception { + BulkDependentTestCustomResource resource, Context<BulkDependentTestCustomResource> context) + throws Exception { numberOfExecutions.incrementAndGet(); var ready = context.managedWorkflowAndDependentResourceContext().getWorkflowReconcileResult() - .orElseThrow() - .allDependentResourcesReady(); + .orElseThrow().allDependentResourcesReady(); resource.setStatus(new BulkDependentTestStatus()); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/condition/SampleBulkCondition.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/condition/SampleBulkCondition.java index c6e64b7413..42813706a6 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/condition/SampleBulkCondition.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/condition/SampleBulkCondition.java @@ -7,8 +7,7 @@ import io.javaoperatorsdk.operator.dependent.bulkdependent.CRUDConfigMapBulkDependentResource; import io.javaoperatorsdk.operator.processing.dependent.workflow.Condition; -public class SampleBulkCondition - implements Condition<ConfigMap, BulkDependentTestCustomResource> { +public class SampleBulkCondition implements Condition<ConfigMap, BulkDependentTestCustomResource> { // We use ConfigMaps here just to show how to check some properties of resources managed by a // BulkDependentResource. In real life example this would be rather based on some status of those @@ -17,8 +16,7 @@ public class SampleBulkCondition @Override public boolean isMet( DependentResource<ConfigMap, BulkDependentTestCustomResource> dependentResource, - BulkDependentTestCustomResource primary, - Context<BulkDependentTestCustomResource> context) { + BulkDependentTestCustomResource primary, Context<BulkDependentTestCustomResource> context) { var resources = ((CRUDConfigMapBulkDependentResource) dependentResource) .getSecondaryResources(primary, context); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/external/BulkExternalDependentIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/external/BulkExternalDependentIT.java index d25f92d2be..b259e08180 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/external/BulkExternalDependentIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/external/BulkExternalDependentIT.java @@ -12,9 +12,8 @@ class BulkExternalDependentIT { @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder().withReconciler(new ExternalBulkResourceReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new ExternalBulkResourceReconciler()).build(); ExternalServiceMock externalServiceMock = ExternalServiceMock.getInstance(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/external/ExternalBulkDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/external/ExternalBulkDependentResource.java index 5112b09be1..7f4aa7d0f4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/external/ExternalBulkDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/external/ExternalBulkDependentResource.java @@ -55,9 +55,8 @@ public ExternalResource update(ExternalResource actual, ExternalResource desired } private static String toExternalResourceId(BulkDependentTestCustomResource primary, String i) { - return primary.getMetadata().getName() + EXTERNAL_RESOURCE_NAME_DELIMITER + - primary.getMetadata().getNamespace() + - EXTERNAL_RESOURCE_NAME_DELIMITER + i; + return primary.getMetadata().getName() + EXTERNAL_RESOURCE_NAME_DELIMITER + + primary.getMetadata().getNamespace() + EXTERNAL_RESOURCE_NAME_DELIMITER + i; } private ResourceID toResourceID(ExternalResource externalResource) { @@ -80,13 +79,11 @@ public Map<String, ExternalResource> desiredResources(BulkDependentTestCustomRes @Override public Map<String, ExternalResource> getSecondaryResources( - BulkDependentTestCustomResource primary, - Context<BulkDependentTestCustomResource> context) { + BulkDependentTestCustomResource primary, Context<BulkDependentTestCustomResource> context) { return context.getSecondaryResourcesAsStream(resourceType()) .filter(r -> r.getId() - .startsWith(primary.getMetadata().getName() + EXTERNAL_RESOURCE_NAME_DELIMITER + - primary.getMetadata().getNamespace() + - EXTERNAL_RESOURCE_NAME_DELIMITER)) + .startsWith(primary.getMetadata().getName() + EXTERNAL_RESOURCE_NAME_DELIMITER + + primary.getMetadata().getNamespace() + EXTERNAL_RESOURCE_NAME_DELIMITER)) .collect(Collectors.toMap( r -> r.getId().substring(r.getId().lastIndexOf(EXTERNAL_RESOURCE_NAME_DELIMITER) + 1), r -> r)); @@ -94,9 +91,7 @@ public Map<String, ExternalResource> getSecondaryResources( @Override public void deleteTargetResource(BulkDependentTestCustomResource primary, - ExternalResource resource, - String key, - Context<BulkDependentTestCustomResource> context) { + ExternalResource resource, String key, Context<BulkDependentTestCustomResource> context) { externalServiceMock.delete(resource.getId()); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/managed/ManagedBulkDependentIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/managed/ManagedBulkDependentIT.java index 9f3d763f1b..b33a0ca94e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/managed/ManagedBulkDependentIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/managed/ManagedBulkDependentIT.java @@ -8,9 +8,8 @@ public class ManagedBulkDependentIT extends BulkDependentTestBase { @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder().withReconciler(new ManagedBulkDependentReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new ManagedBulkDependentReconciler()).build(); @Override diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/managed/ManagedBulkDependentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/managed/ManagedBulkDependentReconciler.java index be323949aa..b0361a8edf 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/managed/ManagedBulkDependentReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/managed/ManagedBulkDependentReconciler.java @@ -9,15 +9,14 @@ @Workflow(dependents = @Dependent(type = CRUDConfigMapBulkDependentResource.class)) @ControllerConfiguration -public class ManagedBulkDependentReconciler - implements Reconciler<BulkDependentTestCustomResource> { +public class ManagedBulkDependentReconciler implements Reconciler<BulkDependentTestCustomResource> { private final AtomicInteger numberOfExecutions = new AtomicInteger(0); @Override public UpdateControl<BulkDependentTestCustomResource> reconcile( - BulkDependentTestCustomResource resource, - Context<BulkDependentTestCustomResource> context) throws Exception { + BulkDependentTestCustomResource resource, Context<BulkDependentTestCustomResource> context) + throws Exception { numberOfExecutions.addAndGet(1); return UpdateControl.noUpdate(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/managed/ManagedDeleterBulkReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/managed/ManagedDeleterBulkReconciler.java index 7de2b3898f..48fb5dcfce 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/managed/ManagedDeleterBulkReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/managed/ManagedDeleterBulkReconciler.java @@ -10,8 +10,7 @@ public class ManagedDeleterBulkReconciler implements Reconciler<BulkDependentTestCustomResource> { @Override public UpdateControl<BulkDependentTestCustomResource> reconcile( - BulkDependentTestCustomResource resource, - Context<BulkDependentTestCustomResource> context) + BulkDependentTestCustomResource resource, Context<BulkDependentTestCustomResource> context) throws Exception { return UpdateControl.noUpdate(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkDependentIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkDependentIT.java index c84ad38de0..bd2b386b8f 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkDependentIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkDependentIT.java @@ -21,9 +21,7 @@ public class ReadOnlyBulkDependentIT { @RegisterExtension LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new ReadOnlyBulkReconciler()) - .build(); + LocallyRunOperatorExtension.builder().withReconciler(new ReadOnlyBulkReconciler()).build(); @Test void readOnlyBulkDependent() { @@ -49,19 +47,16 @@ void readOnlyBulkDependent() { private ConfigMap createConfigMap(int i, BulkDependentTestCustomResource primary) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(TEST + ReadOnlyBulkDependentResource.INDEX_DELIMITER + i) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata( + new ObjectMetaBuilder().withName(TEST + ReadOnlyBulkDependentResource.INDEX_DELIMITER + i) + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap.addOwnerReference(primary); return configMap; } BulkDependentTestCustomResource testCustomResource() { BulkDependentTestCustomResource customResource = new BulkDependentTestCustomResource(); - customResource.setMetadata(new ObjectMetaBuilder() - .withName(TEST) - .build()); + customResource.setMetadata(new ObjectMetaBuilder().withName(TEST).build()); customResource.setSpec(new BulkDependentTestSpec()); customResource.getSpec().setNumberOfResources(EXPECTED_NUMBER_OF_RESOURCES); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkDependentResource.java index e655d96d6e..bd4b629e06 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkDependentResource.java @@ -18,8 +18,7 @@ @KubernetesDependent public class ReadOnlyBulkDependentResource - extends - KubernetesDependentResource<ConfigMap, BulkDependentTestCustomResource> + extends KubernetesDependentResource<ConfigMap, BulkDependentTestCustomResource> implements BulkDependentResource<ConfigMap, BulkDependentTestCustomResource>, SecondaryToPrimaryMapper<ConfigMap> { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkReconciler.java index bec0823914..d78fcbe336 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/readonly/ReadOnlyBulkReconciler.java @@ -14,17 +14,13 @@ public class ReadOnlyBulkReconciler implements Reconciler<BulkDependentTestCusto public UpdateControl<BulkDependentTestCustomResource> reconcile( BulkDependentTestCustomResource resource, Context<BulkDependentTestCustomResource> context) { - var nonReadyDependents = - context.managedWorkflowAndDependentResourceContext().getWorkflowReconcileResult() - .orElseThrow() - .getNotReadyDependents(); + var nonReadyDependents = context.managedWorkflowAndDependentResourceContext() + .getWorkflowReconcileResult().orElseThrow().getNotReadyDependents(); BulkDependentTestCustomResource customResource = new BulkDependentTestCustomResource(); - customResource.setMetadata(new ObjectMetaBuilder() - .withName(resource.getMetadata().getName()) - .withNamespace(resource.getMetadata().getNamespace()) - .build()); + customResource.setMetadata(new ObjectMetaBuilder().withName(resource.getMetadata().getName()) + .withNamespace(resource.getMetadata().getNamespace()).build()); var status = new BulkDependentTestStatus(); status.setReady(nonReadyDependents.isEmpty()); customResource.setStatus(status); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/standalone/StandaloneBulkDependentIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/standalone/StandaloneBulkDependentIT.java index 5e0ded6100..e81504fd8f 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/standalone/StandaloneBulkDependentIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/standalone/StandaloneBulkDependentIT.java @@ -8,9 +8,8 @@ class StandaloneBulkDependentIT extends BulkDependentTestBase { @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder().withReconciler(new StandaloneBulkDependentReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new StandaloneBulkDependentReconciler()).build(); @Override public LocallyRunOperatorExtension extension() { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/standalone/StandaloneBulkDependentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/standalone/StandaloneBulkDependentReconciler.java index ab74c41906..6aa87737d4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/standalone/StandaloneBulkDependentReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/bulkdependent/standalone/StandaloneBulkDependentReconciler.java @@ -24,8 +24,7 @@ public StandaloneBulkDependentReconciler() { @Override public UpdateControl<BulkDependentTestCustomResource> reconcile( - BulkDependentTestCustomResource resource, - Context<BulkDependentTestCustomResource> context) { + BulkDependentTestCustomResource resource, Context<BulkDependentTestCustomResource> context) { numberOfExecutions.addAndGet(1); dependent.reconcile(resource, context); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/CleanerForManagedDependentCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/CleanerForManagedDependentCustomResource.java index c5cd602ba5..7fdc1a31ec 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/CleanerForManagedDependentCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/CleanerForManagedDependentCustomResource.java @@ -11,7 +11,6 @@ @Version("v1") @Kind("CleanerForReconcilerCustomResource") @ShortNames("cfr") -public class CleanerForManagedDependentCustomResource - extends CustomResource<Void, String> +public class CleanerForManagedDependentCustomResource extends CustomResource<Void, String> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/CleanerForManagedDependentResourcesOnlyIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/CleanerForManagedDependentResourcesOnlyIT.java index 000fe2b28e..4182c9f953 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/CleanerForManagedDependentResourcesOnlyIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/CleanerForManagedDependentResourcesOnlyIT.java @@ -14,10 +14,8 @@ class CleanerForManagedDependentResourcesOnlyIT { public static final String TEST_RESOURCE_NAME = "cleaner-for-reconciler-test1"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new CleanerForManagedDependentTestReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new CleanerForManagedDependentTestReconciler()).build(); @Test @@ -31,9 +29,8 @@ void addsFinalizerAndCallsCleanupIfCleanerImplemented() { operator.delete(testResource); - await().until( - () -> operator.get(CleanerForManagedDependentCustomResource.class, - TEST_RESOURCE_NAME) == null); + await().until(() -> operator.get(CleanerForManagedDependentCustomResource.class, + TEST_RESOURCE_NAME) == null); CleanerForManagedDependentTestReconciler reconciler = (CleanerForManagedDependentTestReconciler) operator.getFirstReconciler(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/CleanerForManagedDependentTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/CleanerForManagedDependentTestReconciler.java index bf9a45e29e..5e26a143e5 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/CleanerForManagedDependentTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/CleanerForManagedDependentTestReconciler.java @@ -9,8 +9,7 @@ @Workflow(dependents = {@Dependent(type = ConfigMapDependentResource.class)}) @ControllerConfiguration public class CleanerForManagedDependentTestReconciler - implements Reconciler<CleanerForManagedDependentCustomResource>, - TestExecutionInfoProvider { + implements Reconciler<CleanerForManagedDependentCustomResource>, TestExecutionInfoProvider { private final AtomicInteger numberOfExecutions = new AtomicInteger(0); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/ConfigMapDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/ConfigMapDependentResource.java index fbb964f196..7d184c5403 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/ConfigMapDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/cleanermanageddependent/ConfigMapDependentResource.java @@ -11,8 +11,8 @@ import io.javaoperatorsdk.operator.processing.dependent.Updater; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource; -public class ConfigMapDependentResource extends - KubernetesDependentResource<ConfigMap, CleanerForManagedDependentCustomResource> +public class ConfigMapDependentResource + extends KubernetesDependentResource<ConfigMap, CleanerForManagedDependentCustomResource> implements Creator<ConfigMap, CleanerForManagedDependentCustomResource>, Updater<ConfigMap, CleanerForManagedDependentCustomResource>, Deleter<CleanerForManagedDependentCustomResource> { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/ConfigMapDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/ConfigMapDependentResource.java index 7d7c62e6b4..396df3c626 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/ConfigMapDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/ConfigMapDependentResource.java @@ -18,10 +18,8 @@ public ConfigMapDependentResource() { protected ConfigMap desired(CreateOnlyIfNotExistingDependentWithSSACustomResource primary, Context<CreateOnlyIfNotExistingDependentWithSSACustomResource> context) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap.setData(Map.of("drkey", "v")); return configMap; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSACustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSACustomResource.java index 3e53f422bd..997a5d7384 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSACustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSACustomResource.java @@ -8,6 +8,5 @@ @Group("sample.javaoperatorsdk") @Version("v1") public class CreateOnlyIfNotExistingDependentWithSSACustomResource - extends CustomResource<Void, Void> - implements Namespaced { + extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSAIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSAIT.java index 82e41c4a1d..462b236e39 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSAIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSAIT.java @@ -20,19 +20,15 @@ class CreateOnlyIfNotExistingDependentWithSSAIT { public static final String KEY = "key"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new CreateOnlyIfNotExistingDependentWithSSAReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new CreateOnlyIfNotExistingDependentWithSSAReconciler()).build(); @Test void createsResourceOnlyIfNotExisting() { - var cm = new ConfigMapBuilder().withMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()) - .withData(Map.of(KEY, "val")) - .build(); + var cm = new ConfigMapBuilder() + .withMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()) + .withData(Map.of(KEY, "val")).build(); extension.create(cm); extension.create(testResource()); @@ -45,9 +41,7 @@ void createsResourceOnlyIfNotExisting() { CreateOnlyIfNotExistingDependentWithSSACustomResource testResource() { var res = new CreateOnlyIfNotExistingDependentWithSSACustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); return res; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSAReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSAReconciler.java index 3699cd1a78..5c19a4c1cd 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSAReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/createonlyifnotexistsdependentwithssa/CreateOnlyIfNotExistingDependentWithSSAReconciler.java @@ -5,8 +5,7 @@ import io.javaoperatorsdk.operator.api.reconciler.*; import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; -@Workflow(dependents = { - @Dependent(type = ConfigMapDependentResource.class)}) +@Workflow(dependents = {@Dependent(type = ConfigMapDependentResource.class)}) @ControllerConfiguration() public class CreateOnlyIfNotExistingDependentWithSSAReconciler implements Reconciler<CreateOnlyIfNotExistingDependentWithSSACustomResource> { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperIT.java index 8f2f966a22..314e34d929 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperIT.java @@ -19,10 +19,8 @@ class DependentAnnotationSecondaryMapperIT { public static final String TEST_RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(DependentAnnotationSecondaryMapperReconciler.class) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(DependentAnnotationSecondaryMapperReconciler.class).build(); @Test void mapsSecondaryByAnnotation() { @@ -37,8 +35,7 @@ void mapsSecondaryByAnnotation() { var annotations = configMap.getMetadata().getAnnotations(); - assertThat(annotations) - .containsEntry(DEFAULT_ANNOTATION_FOR_NAME, TEST_RESOURCE_NAME) + assertThat(annotations).containsEntry(DEFAULT_ANNOTATION_FOR_NAME, TEST_RESOURCE_NAME) .containsEntry(DEFAULT_ANNOTATION_FOR_NAMESPACE, operator.getNamespace()); assertThat(configMap.getMetadata().getOwnerReferences()).isEmpty(); @@ -53,9 +50,7 @@ void mapsSecondaryByAnnotation() { DependentAnnotationSecondaryMapperResource testResource() { var res = new DependentAnnotationSecondaryMapperResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); return res; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperReconciler.java index 7dc17b5695..a09e2743d3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperReconciler.java @@ -33,8 +33,8 @@ public int getNumberOfExecutions() { return numberOfExecutions.get(); } - public static class ConfigMapDependentResource extends - KubernetesDependentResource<ConfigMap, DependentAnnotationSecondaryMapperResource> + public static class ConfigMapDependentResource + extends KubernetesDependentResource<ConfigMap, DependentAnnotationSecondaryMapperResource> implements Creator<ConfigMap, DependentAnnotationSecondaryMapperResource>, Updater<ConfigMap, DependentAnnotationSecondaryMapperResource>, Deleter<DependentAnnotationSecondaryMapperResource> { @@ -47,10 +47,8 @@ public ConfigMapDependentResource() { protected ConfigMap desired(DependentAnnotationSecondaryMapperResource primary, Context<DependentAnnotationSecondaryMapperResource> context) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap.setData(Map.of("data", primary.getMetadata().getName())); return configMap; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperResource.java index f41f92d0ef..018e47d26e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentannotationsecondarymapper/DependentAnnotationSecondaryMapperResource.java @@ -11,7 +11,6 @@ @Version("v1") @Kind("MaxIntervalTestCustomResource") @ShortNames("mit") -public class DependentAnnotationSecondaryMapperResource - extends CustomResource<Void, Void> +public class DependentAnnotationSecondaryMapperResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentcustommappingannotation/CustomMappingConfigMapDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentcustommappingannotation/CustomMappingConfigMapDependentResource.java index ad8639f6cf..a9f355d532 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentcustommappingannotation/CustomMappingConfigMapDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentcustommappingannotation/CustomMappingConfigMapDependentResource.java @@ -35,12 +35,9 @@ public CustomMappingConfigMapDependentResource() { protected ConfigMap desired(DependentCustomMappingCustomResource primary, Context<DependentCustomMappingCustomResource> context) { return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .withData(Map.of(KEY, primary.getSpec().getValue())) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()) + .withData(Map.of(KEY, primary.getSpec().getValue())).build(); } @Override diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentcustommappingannotation/DependentCustomMappingAnnotationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentcustommappingannotation/DependentCustomMappingAnnotationIT.java index 3d754fc395..ebb6a62e90 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentcustommappingannotation/DependentCustomMappingAnnotationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentcustommappingannotation/DependentCustomMappingAnnotationIT.java @@ -19,10 +19,8 @@ class DependentCustomMappingAnnotationIT { public static final String TEST_RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(DependentCustomMappingReconciler.class) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(DependentCustomMappingReconciler.class).build(); @Test @@ -46,8 +44,7 @@ private void assertConfigMapData(String val) { await().untilAsserted(() -> { var resource = extension.get(ConfigMap.class, TEST_RESOURCE_NAME); assertThat(resource).isNotNull(); - assertThat(resource.getMetadata().getAnnotations()) - .containsKey(CUSTOM_NAME_KEY) + assertThat(resource.getMetadata().getAnnotations()).containsKey(CUSTOM_NAME_KEY) .containsKey(CUSTOM_NAMESPACE_KEY); assertThat(resource.getData()).containsEntry(CustomMappingConfigMapDependentResource.KEY, val); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentcustommappingannotation/DependentCustomMappingCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentcustommappingannotation/DependentCustomMappingCustomResource.java index 124a8d1108..73e15550ca 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentcustommappingannotation/DependentCustomMappingCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentcustommappingannotation/DependentCustomMappingCustomResource.java @@ -8,7 +8,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") public class DependentCustomMappingCustomResource - extends CustomResource<DependentCustomMappingSpec, Void> - implements Namespaced { + extends CustomResource<DependentCustomMappingSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/DependentDifferentNamespaceCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/DependentDifferentNamespaceCustomResource.java index 020d147ba9..8dc08f227f 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/DependentDifferentNamespaceCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/DependentDifferentNamespaceCustomResource.java @@ -10,6 +10,5 @@ @Version("v1") @ShortNames("ddn") public class DependentDifferentNamespaceCustomResource - extends CustomResource<DependentDifferentNamespaceSpec, Void> - implements Namespaced { + extends CustomResource<DependentDifferentNamespaceSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/DependentDifferentNamespaceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/DependentDifferentNamespaceIT.java index b9abf05cad..ab17220480 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/DependentDifferentNamespaceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/DependentDifferentNamespaceIT.java @@ -18,10 +18,8 @@ class DependentDifferentNamespaceIT { public static final String CHANGED_VALUE = "changed_value"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(DependentDifferentNamespaceReconciler.class) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(DependentDifferentNamespaceReconciler.class).build(); @Test void managesCRUDOperationsForDependentInDifferentNamespace() { @@ -50,15 +48,12 @@ void managesCRUDOperationsForDependentInDifferentNamespace() { private ConfigMap getDependentConfigMap() { return extension.getKubernetesClient().configMaps() - .inNamespace(ConfigMapDependentResource.NAMESPACE) - .withName(TEST_1).get(); + .inNamespace(ConfigMapDependentResource.NAMESPACE).withName(TEST_1).get(); } DependentDifferentNamespaceCustomResource testResource() { var res = new DependentDifferentNamespaceCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_1) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_1).build()); res.setSpec(new DependentDifferentNamespaceSpec()); res.getSpec().setValue(INITIAL_VALUE); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/DependentDifferentNamespaceReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/DependentDifferentNamespaceReconciler.java index d4ae1c5e0a..c71893b83e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/DependentDifferentNamespaceReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentdifferentnamespace/DependentDifferentNamespaceReconciler.java @@ -6,13 +6,10 @@ import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider; -@Workflow(dependents = { - @Dependent(type = ConfigMapDependentResource.class), -}) +@Workflow(dependents = {@Dependent(type = ConfigMapDependentResource.class),}) @ControllerConfiguration public class DependentDifferentNamespaceReconciler - implements Reconciler<DependentDifferentNamespaceCustomResource>, - TestExecutionInfoProvider { + implements Reconciler<DependentDifferentNamespaceCustomResource>, TestExecutionInfoProvider { private final AtomicInteger numberOfExecutions = new AtomicInteger(0); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/DependentFilterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/DependentFilterIT.java index 328a4a0544..5268b68932 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/DependentFilterIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/DependentFilterIT.java @@ -20,9 +20,8 @@ class DependentFilterIT { public static final String RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(DependentFilterTestReconciler.class) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(DependentFilterTestReconciler.class).build(); @Test void filtersUpdateOnConfigMap() { @@ -30,8 +29,9 @@ void filtersUpdateOnConfigMap() { operator.create(resource); await().pollDelay(Duration.ofMillis(150)).untilAsserted(() -> { - assertThat(operator.getReconcilerOfType(DependentFilterTestReconciler.class) - .getNumberOfExecutions()).isEqualTo(1); + assertThat( + operator.getReconcilerOfType(DependentFilterTestReconciler.class).getNumberOfExecutions()) + .isEqualTo(1); }); var configMap = operator.get(ConfigMap.class, RESOURCE_NAME); @@ -39,16 +39,15 @@ void filtersUpdateOnConfigMap() { operator.replace(configMap); await().pollDelay(Duration.ofMillis(150)).untilAsserted(() -> { - assertThat(operator.getReconcilerOfType(DependentFilterTestReconciler.class) - .getNumberOfExecutions()).isEqualTo(1); + assertThat( + operator.getReconcilerOfType(DependentFilterTestReconciler.class).getNumberOfExecutions()) + .isEqualTo(1); }); } DependentFilterTestCustomResource createResource() { DependentFilterTestCustomResource resource = new DependentFilterTestCustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withName(RESOURCE_NAME) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(RESOURCE_NAME).build()); resource.setSpec(new DependentFilterTestResourceSpec()); resource.getSpec().setValue("value1"); return resource; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/DependentFilterTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/DependentFilterTestCustomResource.java index 43822aafb8..bc4d92edbb 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/DependentFilterTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/DependentFilterTestCustomResource.java @@ -10,8 +10,7 @@ @Version("v1") @ShortNames("dft") public class DependentFilterTestCustomResource - extends CustomResource<DependentFilterTestResourceSpec, Void> - implements Namespaced { + extends CustomResource<DependentFilterTestResourceSpec, Void> implements Namespaced { public String getConfigMapName(int id) { return "configmap" + id; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/FilteredDependentConfigMap.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/FilteredDependentConfigMap.java index 7cbb60c583..544aa8c5d0 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/FilteredDependentConfigMap.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/FilteredDependentConfigMap.java @@ -23,10 +23,8 @@ public FilteredDependentConfigMap() { protected ConfigMap desired(DependentFilterTestCustomResource primary, Context<DependentFilterTestCustomResource> context) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap.setData(Map.of(CM_VALUE_KEY, primary.getSpec().getValue())); return configMap; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/UpdateFilter.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/UpdateFilter.java index 2dd4c8bf99..999b3f00d3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/UpdateFilter.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentfilter/UpdateFilter.java @@ -6,8 +6,7 @@ import static io.javaoperatorsdk.operator.dependent.dependentfilter.DependentFilterTestReconciler.CM_VALUE_KEY; import static io.javaoperatorsdk.operator.dependent.dependentfilter.DependentFilterTestReconciler.CONFIG_MAP_FILTER_VALUE; -public class UpdateFilter - implements OnUpdateFilter<ConfigMap> { +public class UpdateFilter implements OnUpdateFilter<ConfigMap> { @Override public boolean accept(ConfigMap resource, ConfigMap oldResource) { return !resource.getData().get(CM_VALUE_KEY).equals(CONFIG_MAP_FILTER_VALUE); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentoperationeventfiltering/DependentOperationEventFilterCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentoperationeventfiltering/DependentOperationEventFilterCustomResource.java index 021c984ec3..cdfe1fb5f6 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentoperationeventfiltering/DependentOperationEventFilterCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentoperationeventfiltering/DependentOperationEventFilterCustomResource.java @@ -11,7 +11,6 @@ @Version("v1") @Kind("OperationEventFilterCustomResource") @ShortNames("oef") -public class DependentOperationEventFilterCustomResource - extends CustomResource<DependentOperationEventFilterCustomResourceSpec, String> - implements Namespaced { +public class DependentOperationEventFilterCustomResource extends + CustomResource<DependentOperationEventFilterCustomResourceSpec, String> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentoperationeventfiltering/DependentOperationEventFilterCustomResourceTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentoperationeventfiltering/DependentOperationEventFilterCustomResourceTestReconciler.java index 3149d1c6d0..15ec998c36 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentoperationeventfiltering/DependentOperationEventFilterCustomResourceTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentoperationeventfiltering/DependentOperationEventFilterCustomResourceTestReconciler.java @@ -7,14 +7,10 @@ import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider; -@Workflow(dependents = { - @Dependent(type = ConfigMapDependentResource.class) -}) -@ControllerConfiguration( - informer = @Informer(namespaces = Constants.WATCH_CURRENT_NAMESPACE)) +@Workflow(dependents = {@Dependent(type = ConfigMapDependentResource.class)}) +@ControllerConfiguration(informer = @Informer(namespaces = Constants.WATCH_CURRENT_NAMESPACE)) public class DependentOperationEventFilterCustomResourceTestReconciler - implements Reconciler<DependentOperationEventFilterCustomResource>, - TestExecutionInfoProvider { + implements Reconciler<DependentOperationEventFilterCustomResource>, TestExecutionInfoProvider { private final AtomicInteger numberOfExecutions = new AtomicInteger(0); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentoperationeventfiltering/DependentOperationEventFilterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentoperationeventfiltering/DependentOperationEventFilterIT.java index 12413cd4b4..e7f4612fca 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentoperationeventfiltering/DependentOperationEventFilterIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentoperationeventfiltering/DependentOperationEventFilterIT.java @@ -20,21 +20,16 @@ class DependentOperationEventFilterIT { @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withNamespaceDeleteTimeout(2) - .withReconciler(new DependentOperationEventFilterCustomResourceTestReconciler()) - .build(); + LocallyRunOperatorExtension.builder().withNamespaceDeleteTimeout(2) + .withReconciler(new DependentOperationEventFilterCustomResourceTestReconciler()).build(); @Test void reconcileNotTriggeredWithDependentResourceCreateOrUpdate() { - var resource = - operator.create(createTestResource()); + var resource = operator.create(createTestResource()); await().pollDelay(Duration.ofSeconds(1)).atMost(Duration.ofSeconds(3)) - .until( - () -> ((DependentOperationEventFilterCustomResourceTestReconciler) operator - .getFirstReconciler()) - .getNumberOfExecutions() == 1); + .until(() -> ((DependentOperationEventFilterCustomResourceTestReconciler) operator + .getFirstReconciler()).getNumberOfExecutions() == 1); assertThat(operator.get(ConfigMap.class, TEST).getData()) .containsEntry(ConfigMapDependentResource.KEY, SPEC_VAL_1); @@ -42,10 +37,8 @@ void reconcileNotTriggeredWithDependentResourceCreateOrUpdate() { operator.replace(resource); await().pollDelay(Duration.ofSeconds(1)).atMost(Duration.ofSeconds(3)) - .until( - () -> ((DependentOperationEventFilterCustomResourceTestReconciler) operator - .getFirstReconciler()) - .getNumberOfExecutions() == 2); + .until(() -> ((DependentOperationEventFilterCustomResourceTestReconciler) operator + .getFirstReconciler()).getNumberOfExecutions() == 2); assertThat(operator.get(ConfigMap.class, TEST).getData()) .containsEntry(ConfigMapDependentResource.KEY, SPEC_VAL_2); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/ConfigMapDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/ConfigMapDependentResource.java index 9f80a90f0d..448606409e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/ConfigMapDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/ConfigMapDependentResource.java @@ -19,11 +19,8 @@ public ConfigMapDependentResource() { protected ConfigMap desired(DependentReInitializationCustomResource primary, Context<DependentReInitializationCustomResource> context) { return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .withData(Map.of("key", "val")) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()) + .withData(Map.of("key", "val")).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/DependentReInitializationCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/DependentReInitializationCustomResource.java index a3c4e9f20b..e00a1b525c 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/DependentReInitializationCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/DependentReInitializationCustomResource.java @@ -7,8 +7,7 @@ @Group("sample.javaoperatorsdk") @Version("v1") -public class DependentReInitializationCustomResource - extends CustomResource<Void, Void> +public class DependentReInitializationCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/DependentReInitializationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/DependentReInitializationIT.java index c215d82da2..07b4e44f91 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/DependentReInitializationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/DependentReInitializationIT.java @@ -26,9 +26,7 @@ void dependentCanDeReInitialized() { private static void startEndStopOperator(KubernetesClient client, ConfigMapDependentResource dependent) { - Operator o1 = new Operator(o -> o - .withCloseClientOnStop(false) - .withKubernetesClient(client)); + Operator o1 = new Operator(o -> o.withCloseClientOnStop(false).withKubernetesClient(client)); o1.register(new DependentReInitializationReconciler(dependent)); o1.start(); o1.stop(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/DependentReInitializationReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/DependentReInitializationReconciler.java index 7f6072665f..b4592e95d7 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/DependentReInitializationReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentreinitialization/DependentReInitializationReconciler.java @@ -26,8 +26,7 @@ public UpdateControl<DependentReInitializationCustomResource> reconcile( @Override public List<EventSource<?, DependentReInitializationCustomResource>> prepareEventSources( EventSourceContext<DependentReInitializationCustomResource> context) { - return EventSourceUtils.dependentEventSources(context, - configMapDependentResource); + return EventSourceUtils.dependentEventSources(context, configMapDependentResource); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefIT.java index 0530934dba..6c343d150e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefIT.java @@ -19,10 +19,8 @@ class DependentResourceCrossRefIT { public static final int EXECUTION_NUMBER = 50; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new DependentResourceCrossRefReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new DependentResourceCrossRefReconciler()).build(); @Test void dependentResourceCanReferenceEachOther() { @@ -30,18 +28,15 @@ void dependentResourceCanReferenceEachOther() { for (int i = 0; i < EXECUTION_NUMBER; i++) { operator.create(testResource(i)); } - await() - .pollDelay(Duration.ofMillis(150)) - .untilAsserted( - () -> { - assertThat(operator - .getReconcilerOfType(DependentResourceCrossRefReconciler.class) - .isErrorHappened()).isFalse(); - for (int i = 0; i < EXECUTION_NUMBER; i++) { - assertThat(operator.get(ConfigMap.class, TEST_RESOURCE_NAME + i)).isNotNull(); - assertThat(operator.get(Secret.class, TEST_RESOURCE_NAME + i)).isNotNull(); - } - }); + await().pollDelay(Duration.ofMillis(150)).untilAsserted(() -> { + assertThat( + operator.getReconcilerOfType(DependentResourceCrossRefReconciler.class).isErrorHappened()) + .isFalse(); + for (int i = 0; i < EXECUTION_NUMBER; i++) { + assertThat(operator.get(ConfigMap.class, TEST_RESOURCE_NAME + i)).isNotNull(); + assertThat(operator.get(Secret.class, TEST_RESOURCE_NAME + i)).isNotNull(); + } + }); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefReconciler.java index 4464c02906..95aab13131 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefReconciler.java @@ -51,8 +51,8 @@ public boolean isErrorHappened() { return errorHappened; } - public static class SecretDependentResource extends - CRUDKubernetesDependentResource<Secret, DependentResourceCrossRefResource> { + public static class SecretDependentResource + extends CRUDKubernetesDependentResource<Secret, DependentResourceCrossRefResource> { public SecretDependentResource() { super(Secret.class); @@ -62,17 +62,15 @@ public SecretDependentResource() { protected Secret desired(DependentResourceCrossRefResource primary, Context<DependentResourceCrossRefResource> context) { Secret secret = new Secret(); - secret.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + secret.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); secret.setData(Map.of("key", Base64.getEncoder().encodeToString("secretData".getBytes()))); return secret; } } - public static class ConfigMapDependentResource extends - CRUDKubernetesDependentResource<ConfigMap, DependentResourceCrossRefResource> { + public static class ConfigMapDependentResource + extends CRUDKubernetesDependentResource<ConfigMap, DependentResourceCrossRefResource> { public ConfigMapDependentResource() { super(ConfigMap.class); @@ -86,10 +84,8 @@ protected ConfigMap desired(DependentResourceCrossRefResource primary, throw new IllegalStateException("Secret is empty"); } ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap .setData(Map.of("secretKey", new ArrayList<>(secret.get().getData().keySet()).get(0))); return configMap; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefResource.java index fd89f7fa70..2c708cc415 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentresourcecrossref/DependentResourceCrossRefResource.java @@ -7,7 +7,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") -public class DependentResourceCrossRefResource - extends CustomResource<Void, Void> +public class DependentResourceCrossRefResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSACustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSACustomResource.java index ed71a9db64..d7e6721fbf 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSACustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSACustomResource.java @@ -9,7 +9,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("dssa") -public class DependentSSACustomResource - extends CustomResource<DependentSSASpec, Void> +public class DependentSSACustomResource extends CustomResource<DependentSSASpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSAMatchingIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSAMatchingIT.java index ec02dd7f5c..a47503b01a 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSAMatchingIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSAMatchingIT.java @@ -30,10 +30,8 @@ public class DependentSSAMatchingIT { @RegisterExtension LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new DependentSSAReconciler(), - o -> o.withFieldManager(CUSTOM_FIELD_MANAGER_NAME)) - .build(); + LocallyRunOperatorExtension.builder().withReconciler(new DependentSSAReconciler(), + o -> o.withFieldManager(CUSTOM_FIELD_MANAGER_NAME)).build(); @Test void testMatchingAndUpdate() { @@ -50,17 +48,12 @@ void testMatchingAndUpdate() { }); ConfigMap cmPatch = new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .withNamespace(resource.getMetadata().getNamespace()) - .build()) - .withData(Map.of(ADDITIONAL_KEY, ADDITIONAL_VALUE)) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME) + .withNamespace(resource.getMetadata().getNamespace()).build()) + .withData(Map.of(ADDITIONAL_KEY, ADDITIONAL_VALUE)).build(); extension.getKubernetesClient().configMaps().resource(cmPatch).patch(new PatchContext.Builder() - .withFieldManager(OTHER_FIELD_MANAGER) - .withPatchType(PatchType.SERVER_SIDE_APPLY) - .build()); + .withFieldManager(OTHER_FIELD_MANAGER).withPatchType(PatchType.SERVER_SIDE_APPLY).build()); await().pollDelay(Duration.ofMillis(300)).untilAsserted(() -> { var cm = extension.get(ConfigMap.class, TEST_RESOURCE_NAME); @@ -84,9 +77,7 @@ void testMatchingAndUpdate() { public DependentSSACustomResource testResource() { DependentSSACustomResource resource = new DependentSSACustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); resource.setSpec(new DependentSSASpec()); resource.getSpec().setValue(INITIAL_VALUE); return resource; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSAMigrationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSAMigrationIT.java index bd3aedb5f9..d251439bb3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSAMigrationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSAMigrationIT.java @@ -34,17 +34,15 @@ void setup(TestInfo testInfo) { testInfo.getTestMethod().ifPresent(method -> { namespace = KubernetesResourceUtil.sanitizeName(method.getName()); cleanup(); - client.namespaces().resource(new NamespaceBuilder().withMetadata(new ObjectMetaBuilder() - .withName(namespace) - .build()).build()).create(); + client.namespaces().resource(new NamespaceBuilder() + .withMetadata(new ObjectMetaBuilder().withName(namespace).build()).build()).create(); }); } @AfterEach void cleanup() { - client.namespaces().resource(new NamespaceBuilder().withMetadata(new ObjectMetaBuilder() - .withName(namespace) - .build()).build()).delete(); + client.namespaces().resource(new NamespaceBuilder() + .withMetadata(new ObjectMetaBuilder().withName(namespace).build()).build()).delete(); } @Test @@ -65,8 +63,7 @@ void usingDefaultFieldManagerDoesNotCreatesANewOneWithApplyOperation() { var legacyOperator = createOperator(client, true, null); DependentSSACustomResource testResource = reconcileWithLegacyOperator(legacyOperator); - var operator = createOperator(client, false, - FABRIC8_CLIENT_DEFAULT_FIELD_MANAGER); + var operator = createOperator(client, false, FABRIC8_CLIENT_DEFAULT_FIELD_MANAGER); reconcileWithNewApproach(testResource, operator); var cm = getDependentConfigMap(); @@ -154,10 +151,8 @@ private Operator createOperator(KubernetesClient client, boolean legacyDependent public DependentSSACustomResource testResource() { DependentSSACustomResource resource = new DependentSSACustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withNamespace(namespace) - .withName(TEST_RESOURCE_NAME) - .build()); + resource.setMetadata( + new ObjectMetaBuilder().withNamespace(namespace).withName(TEST_RESOURCE_NAME).build()); resource.setSpec(new DependentSSASpec()); resource.getSpec().setValue(INITIAL_VALUE); return resource; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSAReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSAReconciler.java index 8825f4007e..281b190c50 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSAReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/DependentSSAReconciler.java @@ -28,9 +28,8 @@ public DependentSSAReconciler() { } public DependentSSAReconciler(boolean useSSA) { - ssaConfigMapDependent.configureWith(new KubernetesDependentResourceConfigBuilder<ConfigMap>() - .withUseSSA(useSSA) - .build()); + ssaConfigMapDependent.configureWith( + new KubernetesDependentResourceConfigBuilder<ConfigMap>().withUseSSA(useSSA).build()); this.useSSA = useSSA; } @@ -43,8 +42,7 @@ public SSAConfigMapDependent getSsaConfigMapDependent() { } @Override - public UpdateControl<DependentSSACustomResource> reconcile( - DependentSSACustomResource resource, + public UpdateControl<DependentSSACustomResource> reconcile(DependentSSACustomResource resource, Context<DependentSSACustomResource> context) { ssaConfigMapDependent.reconcile(resource, context); @@ -59,7 +57,6 @@ public int getNumberOfExecutions() { @Override public List<EventSource<?, DependentSSACustomResource>> prepareEventSources( EventSourceContext<DependentSSACustomResource> context) { - return EventSourceUtils.dependentEventSources(context, - ssaConfigMapDependent); + return EventSourceUtils.dependentEventSources(context, ssaConfigMapDependent); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/SSAConfigMapDependent.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/SSAConfigMapDependent.java index a912bfcd03..7bf0e1f0e4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/SSAConfigMapDependent.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/dependentssa/SSAConfigMapDependent.java @@ -9,8 +9,8 @@ import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource; -public class SSAConfigMapDependent extends - CRUDKubernetesDependentResource<ConfigMap, DependentSSACustomResource> { +public class SSAConfigMapDependent + extends CRUDKubernetesDependentResource<ConfigMap, DependentSSACustomResource> { public static AtomicInteger NUMBER_OF_UPDATES = new AtomicInteger(0); @@ -24,17 +24,13 @@ public SSAConfigMapDependent() { protected ConfigMap desired(DependentSSACustomResource primary, Context<DependentSSACustomResource> context) { return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .withData(Map.of(DATA_KEY, primary.getSpec().getValue())) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()) + .withData(Map.of(DATA_KEY, primary.getSpec().getValue())).build(); } @Override - public ConfigMap update(ConfigMap actual, ConfigMap desired, - DependentSSACustomResource primary, + public ConfigMap update(ConfigMap actual, ConfigMap desired, DependentSSACustomResource primary, Context<DependentSSACustomResource> context) { NUMBER_OF_UPDATES.incrementAndGet(); return super.update(actual, desired, primary, context); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateCustomResource.java index 353e86d2f9..38d1cb60d1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateCustomResource.java @@ -9,7 +9,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("ess") -public class ExternalStateCustomResource - extends CustomResource<ExternalStateSpec, Void> +public class ExternalStateCustomResource extends CustomResource<ExternalStateSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateDependentIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateDependentIT.java index adfe1f31a1..dee92a9978 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateDependentIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateDependentIT.java @@ -7,9 +7,8 @@ public class ExternalStateDependentIT extends ExternalStateTestBase { @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(ExternalStateDependentReconciler.class) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(ExternalStateDependentReconciler.class).build(); @Override public LocallyRunOperatorExtension extension() { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateDependentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateDependentReconciler.java index 9140f40587..8e749df72e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateDependentReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateDependentReconciler.java @@ -14,15 +14,13 @@ @Workflow(dependents = @Dependent(type = ExternalWithStateDependentResource.class)) @ControllerConfiguration public class ExternalStateDependentReconciler - implements Reconciler<ExternalStateCustomResource>, - TestExecutionInfoProvider { + implements Reconciler<ExternalStateCustomResource>, TestExecutionInfoProvider { public static final String ID_KEY = "id"; private final AtomicInteger numberOfExecutions = new AtomicInteger(0); @Override - public UpdateControl<ExternalStateCustomResource> reconcile( - ExternalStateCustomResource resource, + public UpdateControl<ExternalStateCustomResource> reconcile(ExternalStateCustomResource resource, Context<ExternalStateCustomResource> context) { numberOfExecutions.addAndGet(1); @@ -36,10 +34,8 @@ public int getNumberOfExecutions() { @Override public List<EventSource<?, ExternalStateCustomResource>> prepareEventSources( EventSourceContext<ExternalStateCustomResource> context) { - var configMapEventSource = new InformerEventSource<>( - InformerEventSourceConfiguration.from(ConfigMap.class, ExternalStateCustomResource.class) - .build(), - context); + var configMapEventSource = new InformerEventSource<>(InformerEventSourceConfiguration + .from(ConfigMap.class, ExternalStateCustomResource.class).build(), context); return List.of(configMapEventSource); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateIT.java index 066d777e80..5dd891447d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateIT.java @@ -23,8 +23,7 @@ class ExternalStateIT { @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(ExternalStateReconciler.class) - .build(); + LocallyRunOperatorExtension.builder().withReconciler(ExternalStateReconciler.class).build(); @Test public void reconcilesResourceWithPersistentState() { @@ -63,9 +62,7 @@ private void assertResourcesCreated(ExternalStateCustomResource resource, private ExternalStateCustomResource testResource() { var res = new ExternalStateCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); res.setSpec(new ExternalStateSpec()); res.getSpec().setData(INITIAL_TEST_DATA); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateReconciler.java index 5fb2932152..4f38950c27 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateReconciler.java @@ -30,9 +30,8 @@ import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider; @ControllerConfiguration -public class ExternalStateReconciler - implements Reconciler<ExternalStateCustomResource>, Cleaner<ExternalStateCustomResource>, - TestExecutionInfoProvider { +public class ExternalStateReconciler implements Reconciler<ExternalStateCustomResource>, + Cleaner<ExternalStateCustomResource>, TestExecutionInfoProvider { public static final String ID_KEY = "id"; private final AtomicInteger numberOfExecutions = new AtomicInteger(0); @@ -43,8 +42,8 @@ public class ExternalStateReconciler PerResourcePollingEventSource<ExternalResource, ExternalStateCustomResource> externalResourceEventSource; @Override - public UpdateControl<ExternalStateCustomResource> reconcile( - ExternalStateCustomResource resource, Context<ExternalStateCustomResource> context) { + public UpdateControl<ExternalStateCustomResource> reconcile(ExternalStateCustomResource resource, + Context<ExternalStateCustomResource> context) { numberOfExecutions.addAndGet(1); var externalResource = context.getSecondaryResource(ExternalResource.class); @@ -75,12 +74,9 @@ private void createExternalResource(ExternalStateCustomResource resource, var createdResource = externalService.create(new ExternalResource(resource.getSpec().getData())); var configMap = new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(resource.getMetadata().getName()) - .withNamespace(resource.getMetadata().getNamespace()) - .build()) - .withData(Map.of(ID_KEY, createdResource.getId())) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(resource.getMetadata().getName()) + .withNamespace(resource.getMetadata().getNamespace()).build()) + .withData(Map.of(ID_KEY, createdResource.getId())).build(); configMap.addOwnerReference(resource); context.getClient().configMaps().resource(configMap).create(); @@ -110,16 +106,13 @@ public int getNumberOfExecutions() { public List<EventSource<?, ExternalStateCustomResource>> prepareEventSources( EventSourceContext<ExternalStateCustomResource> context) { - configMapEventSource = new InformerEventSource<>( - InformerEventSourceConfiguration.from(ConfigMap.class, ExternalStateCustomResource.class) - .build(), - context); + configMapEventSource = new InformerEventSource<>(InformerEventSourceConfiguration + .from(ConfigMap.class, ExternalStateCustomResource.class).build(), context); configMapEventSource.setEventSourcePriority(EventSourceStartPriority.RESOURCE_STATE_LOADER); final PerResourcePollingEventSource.ResourceFetcher<ExternalResource, ExternalStateCustomResource> fetcher = (ExternalStateCustomResource primaryResource) -> { - var configMap = - configMapEventSource.getSecondaryResource(primaryResource).orElse(null); + var configMap = configMapEventSource.getSecondaryResource(primaryResource).orElse(null); if (configMap == null) { return Collections.emptySet(); } @@ -131,7 +124,6 @@ public List<EventSource<?, ExternalStateCustomResource>> prepareEventSources( new PerResourcePollingEventSource<>(ExternalResource.class, context, new PerResourcePollingConfigurationBuilder<>(fetcher, Duration.ofMillis(300L)).build()); - return Arrays.asList(configMapEventSource, - externalResourceEventSource); + return Arrays.asList(configMapEventSource, externalResourceEventSource); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateTestBase.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateTestBase.java index c58c7cf670..1146c02b4d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateTestBase.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalStateTestBase.java @@ -57,9 +57,7 @@ private void assertResourcesCreated(ExternalStateCustomResource resource, private ExternalStateCustomResource testResource() { var res = new ExternalStateCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); res.setSpec(new ExternalStateSpec()); res.getSpec().setData(INITIAL_TEST_DATA); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalWithStateDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalWithStateDependentResource.java index 47d6a25144..9763dfecff 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalWithStateDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/ExternalWithStateDependentResource.java @@ -18,8 +18,7 @@ import io.javaoperatorsdk.operator.support.ExternalResource; public class ExternalWithStateDependentResource extends - PerResourcePollingDependentResource<ExternalResource, ExternalStateCustomResource> - implements + PerResourcePollingDependentResource<ExternalResource, ExternalStateCustomResource> implements DependentResourceWithExplicitState<ExternalResource, ExternalStateCustomResource, ConfigMap>, Updater<ExternalResource, ExternalStateCustomResource> { @@ -31,8 +30,7 @@ public ExternalWithStateDependentResource() { @Override @SuppressWarnings("unchecked") - public Set<ExternalResource> fetchResources( - ExternalStateCustomResource primaryResource) { + public Set<ExternalResource> fetchResources(ExternalStateCustomResource primaryResource) { return getResourceID(primaryResource).map(id -> { var externalResource = externalService.read(id); return externalResource.map(Set::of).orElseGet(Collections::emptySet); @@ -41,8 +39,8 @@ public Set<ExternalResource> fetchResources( @Override protected Optional<ExternalResource> selectTargetSecondaryResource( - Set<ExternalResource> secondaryResources, - ExternalStateCustomResource primary, Context<ExternalStateCustomResource> context) { + Set<ExternalResource> secondaryResources, ExternalStateCustomResource primary, + Context<ExternalStateCustomResource> context) { var id = getResourceID(primary); return id.flatMap(k -> secondaryResources.stream().filter(e -> e.getId().equals(k)).findAny()); } @@ -65,43 +63,35 @@ public Class<ConfigMap> stateResourceClass() { } @Override - public ConfigMap stateResource(ExternalStateCustomResource primary, - ExternalResource resource) { + public ConfigMap stateResource(ExternalStateCustomResource primary, ExternalResource resource) { ConfigMap configMap = new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .withData(Map.of(ExternalStateDependentReconciler.ID_KEY, resource.getId())) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()) + .withData(Map.of(ExternalStateDependentReconciler.ID_KEY, resource.getId())).build(); configMap.addOwnerReference(primary); return configMap; } @Override - public ExternalResource create(ExternalResource desired, - ExternalStateCustomResource primary, + public ExternalResource create(ExternalResource desired, ExternalStateCustomResource primary, Context<ExternalStateCustomResource> context) { return externalService.create(desired); } @Override - public ExternalResource update(ExternalResource actual, - ExternalResource desired, ExternalStateCustomResource primary, - Context<ExternalStateCustomResource> context) { + public ExternalResource update(ExternalResource actual, ExternalResource desired, + ExternalStateCustomResource primary, Context<ExternalStateCustomResource> context) { return externalService.update(new ExternalResource(actual.getId(), desired.getData())); } @Override public Matcher.Result<ExternalResource> match(ExternalResource resource, - ExternalStateCustomResource primary, - Context<ExternalStateCustomResource> context) { + ExternalStateCustomResource primary, Context<ExternalStateCustomResource> context) { return Matcher.Result.nonComputed(resource.getData().equals(primary.getSpec().getData())); } @Override - protected void handleDelete(ExternalStateCustomResource primary, - ExternalResource secondary, + protected void handleDelete(ExternalStateCustomResource primary, ExternalResource secondary, Context<ExternalStateCustomResource> context) { externalService.delete(secondary.getId()); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/BulkDependentResourceExternalWithState.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/BulkDependentResourceExternalWithState.java index df3171fbec..0136eaf840 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/BulkDependentResourceExternalWithState.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/BulkDependentResourceExternalWithState.java @@ -19,8 +19,7 @@ public class BulkDependentResourceExternalWithState extends PerResourcePollingDependentResource<ExternalResource, ExternalStateBulkDependentCustomResource> - implements - BulkDependentResource<ExternalResource, ExternalStateBulkDependentCustomResource>, + implements BulkDependentResource<ExternalResource, ExternalStateBulkDependentCustomResource>, CRUDBulkDependentResource<ExternalResource, ExternalStateBulkDependentCustomResource>, DependentResourceWithExplicitState<ExternalResource, ExternalStateBulkDependentCustomResource, ConfigMap> { @@ -56,12 +55,9 @@ public Class<ConfigMap> stateResourceClass() { public ConfigMap stateResource(ExternalStateBulkDependentCustomResource primary, ExternalResource resource) { ConfigMap configMap = new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(configMapName(primary, resource)) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .withData(Map.of(ExternalStateDependentReconciler.ID_KEY, resource.getId())) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(configMapName(primary, resource)) + .withNamespace(primary.getMetadata().getNamespace()).build()) + .withData(Map.of(ExternalStateDependentReconciler.ID_KEY, resource.getId())).build(); configMap.addOwnerReference(primary); return configMap; } @@ -74,23 +70,21 @@ public ExternalResource create(ExternalResource desired, } @Override - public ExternalResource update(ExternalResource actual, - ExternalResource desired, ExternalStateBulkDependentCustomResource primary, + public ExternalResource update(ExternalResource actual, ExternalResource desired, + ExternalStateBulkDependentCustomResource primary, Context<ExternalStateBulkDependentCustomResource> context) { return externalService.update(new ExternalResource(actual.getId(), desired.getData())); } @Override protected void handleDelete(ExternalStateBulkDependentCustomResource primary, - ExternalResource secondary, - Context<ExternalStateBulkDependentCustomResource> context) { + ExternalResource secondary, Context<ExternalStateBulkDependentCustomResource> context) { externalService.delete(secondary.getId()); } @Override public Matcher.Result<ExternalResource> match(ExternalResource actualResource, - ExternalResource desired, - ExternalStateBulkDependentCustomResource primary, + ExternalResource desired, ExternalStateBulkDependentCustomResource primary, Context<ExternalStateBulkDependentCustomResource> context) { return Matcher.Result.computed(desired.getData().equals(actualResource.getData()), desired); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/ExternalStateBulkDependentCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/ExternalStateBulkDependentCustomResource.java index 4e8c07dcc7..c5cc5c5773 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/ExternalStateBulkDependentCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/ExternalStateBulkDependentCustomResource.java @@ -10,6 +10,5 @@ @Version("v1") @ShortNames("esb") public class ExternalStateBulkDependentCustomResource - extends CustomResource<ExternalStateBulkSpec, Void> - implements Namespaced { + extends CustomResource<ExternalStateBulkSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/ExternalStateBulkDependentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/ExternalStateBulkDependentReconciler.java index 2e0f672c79..79ca1547a6 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/ExternalStateBulkDependentReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/ExternalStateBulkDependentReconciler.java @@ -14,8 +14,7 @@ @Workflow(dependents = @Dependent(type = BulkDependentResourceExternalWithState.class)) @ControllerConfiguration public class ExternalStateBulkDependentReconciler - implements Reconciler<ExternalStateBulkDependentCustomResource>, - TestExecutionInfoProvider { + implements Reconciler<ExternalStateBulkDependentCustomResource>, TestExecutionInfoProvider { private final AtomicInteger numberOfExecutions = new AtomicInteger(0); @@ -37,8 +36,7 @@ public List<EventSource<?, ExternalStateBulkDependentCustomResource>> prepareEve EventSourceContext<ExternalStateBulkDependentCustomResource> context) { var configMapEventSource = new InformerEventSource<>( InformerEventSourceConfiguration - .from(ConfigMap.class, ExternalStateBulkDependentCustomResource.class) - .build(), + .from(ConfigMap.class, ExternalStateBulkDependentCustomResource.class).build(), context); return List.of(configMapEventSource); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/ExternalStateBulkIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/ExternalStateBulkIT.java index 3677537b01..24b224ee69 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/ExternalStateBulkIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/externalstate/externalstatebulkdependent/ExternalStateBulkIT.java @@ -25,10 +25,8 @@ class ExternalStateBulkIT { private final ExternalIDGenServiceMock externalService = ExternalIDGenServiceMock.getInstance(); @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(ExternalStateBulkDependentReconciler.class) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(ExternalStateBulkDependentReconciler.class).build(); @Test void reconcilesResourceWithPersistentState() { @@ -53,10 +51,9 @@ void reconcilesResourceWithPersistentState() { private void assertResourcesDeleted(ExternalStateBulkDependentCustomResource resource) { await().untilAsserted(() -> { - var configMaps = - operator.getKubernetesClient().configMaps().inNamespace(operator.getNamespace()) - .list().getItems().stream().filter( - cm -> cm.getMetadata().getName().startsWith(resource.getMetadata().getName())); + var configMaps = operator.getKubernetesClient().configMaps() + .inNamespace(operator.getNamespace()).list().getItems().stream() + .filter(cm -> cm.getMetadata().getName().startsWith(resource.getMetadata().getName())); var resources = externalService.listResources(); assertThat(configMaps).isEmpty(); assertThat(resources).isEmpty(); @@ -70,19 +67,16 @@ private void assertResources(ExternalStateBulkDependentCustomResource resource, assertThat(resources).hasSize(size); assertThat(resources).allMatch(r -> r.getData().startsWith(initialTestData)); - var configMaps = - operator.getKubernetesClient().configMaps().inNamespace(operator.getNamespace()) - .list().getItems().stream().filter( - cm -> cm.getMetadata().getName().startsWith(resource.getMetadata().getName())); + var configMaps = operator.getKubernetesClient().configMaps() + .inNamespace(operator.getNamespace()).list().getItems().stream() + .filter(cm -> cm.getMetadata().getName().startsWith(resource.getMetadata().getName())); assertThat(configMaps).hasSize(size); }); } private ExternalStateBulkDependentCustomResource testResource() { var res = new ExternalStateBulkDependentCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); res.setSpec(new ExternalStateBulkSpec()); res.getSpec().setNumber(INITIAL_BULK_SIZE); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentresourcemanaged/ConfigMapGenericKubernetesDependent.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentresourcemanaged/ConfigMapGenericKubernetesDependent.java index 54c91f66f1..d794b45625 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentresourcemanaged/ConfigMapGenericKubernetesDependent.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentresourcemanaged/ConfigMapGenericKubernetesDependent.java @@ -14,10 +14,9 @@ import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent; @KubernetesDependent -public class ConfigMapGenericKubernetesDependent extends - GenericKubernetesDependentResource<GenericKubernetesDependentManagedCustomResource> - implements - Creator<GenericKubernetesResource, GenericKubernetesDependentManagedCustomResource>, +public class ConfigMapGenericKubernetesDependent + extends GenericKubernetesDependentResource<GenericKubernetesDependentManagedCustomResource> + implements Creator<GenericKubernetesResource, GenericKubernetesDependentManagedCustomResource>, Updater<GenericKubernetesResource, GenericKubernetesDependentManagedCustomResource>, GarbageCollected<GenericKubernetesDependentManagedCustomResource> { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentresourcemanaged/GenericKubernetesDependentManagedCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentresourcemanaged/GenericKubernetesDependentManagedCustomResource.java index 24c1bbcb08..bc0995e572 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentresourcemanaged/GenericKubernetesDependentManagedCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentresourcemanaged/GenericKubernetesDependentManagedCustomResource.java @@ -11,6 +11,5 @@ @Version("v1") @ShortNames("gkdm") public class GenericKubernetesDependentManagedCustomResource - extends CustomResource<GenericKubernetesDependentSpec, Void> - implements Namespaced { + extends CustomResource<GenericKubernetesDependentSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentresourcemanaged/GenericKubernetesDependentManagedIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentresourcemanaged/GenericKubernetesDependentManagedIT.java index 9bcccb9c46..21ee950cfe 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentresourcemanaged/GenericKubernetesDependentManagedIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentresourcemanaged/GenericKubernetesDependentManagedIT.java @@ -11,10 +11,8 @@ public class GenericKubernetesDependentManagedIT extends GenericKubernetesDependentTestBase<GenericKubernetesDependentManagedCustomResource> { @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new GenericKubernetesDependentManagedReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new GenericKubernetesDependentManagedReconciler()).build(); @Override public LocallyRunOperatorExtension extension() { @@ -24,9 +22,7 @@ public LocallyRunOperatorExtension extension() { @Override public GenericKubernetesDependentManagedCustomResource testResource(String name, String data) { var resource = new GenericKubernetesDependentManagedCustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withName(name) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(name).build()); resource.setSpec(new GenericKubernetesDependentSpec()); resource.getSpec().setValue(INITIAL_DATA); return resource; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentstandalone/ConfigMapGenericKubernetesDependent.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentstandalone/ConfigMapGenericKubernetesDependent.java index 79324641f3..9f14b6cce8 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentstandalone/ConfigMapGenericKubernetesDependent.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentstandalone/ConfigMapGenericKubernetesDependent.java @@ -12,8 +12,8 @@ import io.javaoperatorsdk.operator.processing.dependent.Updater; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.GenericKubernetesDependentResource; -public class ConfigMapGenericKubernetesDependent extends - GenericKubernetesDependentResource<GenericKubernetesDependentStandaloneCustomResource> +public class ConfigMapGenericKubernetesDependent + extends GenericKubernetesDependentResource<GenericKubernetesDependentStandaloneCustomResource> implements Creator<GenericKubernetesResource, GenericKubernetesDependentStandaloneCustomResource>, Updater<GenericKubernetesResource, GenericKubernetesDependentStandaloneCustomResource>, diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentstandalone/GenericKubernetesDependentStandaloneCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentstandalone/GenericKubernetesDependentStandaloneCustomResource.java index eaf56831c5..846c526223 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentstandalone/GenericKubernetesDependentStandaloneCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentstandalone/GenericKubernetesDependentStandaloneCustomResource.java @@ -11,6 +11,5 @@ @Version("v1") @ShortNames("gkd") public class GenericKubernetesDependentStandaloneCustomResource - extends CustomResource<GenericKubernetesDependentSpec, Void> - implements Namespaced { + extends CustomResource<GenericKubernetesDependentSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentstandalone/GenericKubernetesDependentStandaloneIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentstandalone/GenericKubernetesDependentStandaloneIT.java index 07c264c6c2..d7548e5063 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentstandalone/GenericKubernetesDependentStandaloneIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/generickubernetesresource/generickubernetesdependentstandalone/GenericKubernetesDependentStandaloneIT.java @@ -11,10 +11,8 @@ public class GenericKubernetesDependentStandaloneIT extends GenericKubernetesDependentTestBase<GenericKubernetesDependentStandaloneCustomResource> { @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new GenericKubernetesDependentStandaloneReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new GenericKubernetesDependentStandaloneReconciler()).build(); @Override public LocallyRunOperatorExtension extension() { @@ -24,9 +22,7 @@ public LocallyRunOperatorExtension extension() { @Override public GenericKubernetesDependentStandaloneCustomResource testResource(String name, String data) { var resource = new GenericKubernetesDependentStandaloneCustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withName(name) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(name).build()); resource.setSpec(new GenericKubernetesDependentSpec()); resource.getSpec().setValue(INITIAL_DATA); return resource; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/ConfigMapDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/ConfigMapDependentResource.java index 37e109e8de..91e4d98869 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/ConfigMapDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/ConfigMapDependentResource.java @@ -24,13 +24,10 @@ public ConfigMapDependentResource() { protected ConfigMap desired(InformerRelatedBehaviorTestCustomResource primary, Context<InformerRelatedBehaviorTestCustomResource> context) { return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withLabels(Map.of("app", "rbac-test")) + .withMetadata(new ObjectMetaBuilder().withLabels(Map.of("app", "rbac-test")) .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .withData(Map.of(DATA_KEY, primary.getMetadata().getName())) - .build(); + .withNamespace(primary.getMetadata().getNamespace()).build()) + .withData(Map.of(DATA_KEY, primary.getMetadata().getName())).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/InformerRelatedBehaviorITS.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/InformerRelatedBehaviorITS.java index 21079c0504..96e95ae014 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/InformerRelatedBehaviorITS.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/InformerRelatedBehaviorITS.java @@ -138,8 +138,7 @@ private void assertInformerNotWatchingForAdditionalNamespace(Operator operator) .get(INFORMER_RELATED_BEHAVIOR_TEST_RECONCILER); InformerHealthIndicator controllerHealthIndicator = - (InformerHealthIndicator) unhealthyEventSources - .get(ControllerEventSource.NAME) + (InformerHealthIndicator) unhealthyEventSources.get(ControllerEventSource.NAME) .informerHealthIndicators().get(additionalNamespace); assertThat(controllerHealthIndicator).isNotNull(); assertThat(controllerHealthIndicator.getTargetNamespace()).isEqualTo(additionalNamespace); @@ -234,19 +233,14 @@ private void assertNotReconciled() { InformerRelatedBehaviorTestCustomResource testCustomResource() { InformerRelatedBehaviorTestCustomResource testCustomResource = new InformerRelatedBehaviorTestCustomResource(); - testCustomResource.setMetadata(new ObjectMetaBuilder() - .withNamespace(actualNamespace) - .withName(TEST_RESOURCE_NAME) - .build()); + testCustomResource.setMetadata(new ObjectMetaBuilder().withNamespace(actualNamespace) + .withName(TEST_RESOURCE_NAME).build()); return testCustomResource; } private ConfigMap dependentConfigMap() { - return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .withNamespace(actualNamespace) - .build()) + return new ConfigMapBuilder().withMetadata( + new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).withNamespace(actualNamespace).build()) .build(); } @@ -262,32 +256,28 @@ private void assertReconciled() { @SuppressWarnings("unchecked") private void assertRuntimeInfoNoCRPermission(Operator operator) { assertThat(operator.getRuntimeInfo().allEventSourcesAreHealthy()).isFalse(); - var unhealthyEventSources = - operator.getRuntimeInfo().unhealthyEventSources() - .get(INFORMER_RELATED_BEHAVIOR_TEST_RECONCILER); - assertThat(unhealthyEventSources).isNotEmpty(); - assertThat(unhealthyEventSources.get(ControllerEventSource.NAME)) - .isNotNull(); - var informerHealthIndicators = operator.getRuntimeInfo() - .unhealthyInformerWrappingEventSourceHealthIndicator() + var unhealthyEventSources = operator.getRuntimeInfo().unhealthyEventSources() .get(INFORMER_RELATED_BEHAVIOR_TEST_RECONCILER); + assertThat(unhealthyEventSources).isNotEmpty(); + assertThat(unhealthyEventSources.get(ControllerEventSource.NAME)).isNotNull(); + var informerHealthIndicators = + operator.getRuntimeInfo().unhealthyInformerWrappingEventSourceHealthIndicator() + .get(INFORMER_RELATED_BEHAVIOR_TEST_RECONCILER); assertThat(informerHealthIndicators).isNotEmpty(); - assertThat(informerHealthIndicators.get(ControllerEventSource.NAME) - .informerHealthIndicators()) + assertThat(informerHealthIndicators.get(ControllerEventSource.NAME).informerHealthIndicators()) .hasSize(1); } @SuppressWarnings("unchecked") private void assertRuntimeInfoForSecondaryPermission(Operator operator) { assertThat(operator.getRuntimeInfo().allEventSourcesAreHealthy()).isFalse(); - var unhealthyEventSources = - operator.getRuntimeInfo().unhealthyEventSources() - .get(INFORMER_RELATED_BEHAVIOR_TEST_RECONCILER); + var unhealthyEventSources = operator.getRuntimeInfo().unhealthyEventSources() + .get(INFORMER_RELATED_BEHAVIOR_TEST_RECONCILER); assertThat(unhealthyEventSources).isNotEmpty(); assertThat(unhealthyEventSources.get(CONFIG_MAP_DEPENDENT_RESOURCE)).isNotNull(); - var informerHealthIndicators = operator.getRuntimeInfo() - .unhealthyInformerWrappingEventSourceHealthIndicator() - .get(INFORMER_RELATED_BEHAVIOR_TEST_RECONCILER); + var informerHealthIndicators = + operator.getRuntimeInfo().unhealthyInformerWrappingEventSourceHealthIndicator() + .get(INFORMER_RELATED_BEHAVIOR_TEST_RECONCILER); assertThat(informerHealthIndicators).isNotEmpty(); assertThat( informerHealthIndicators.get(CONFIG_MAP_DEPENDENT_RESOURCE).informerHealthIndicators()) @@ -295,12 +285,8 @@ private void assertRuntimeInfoForSecondaryPermission(Operator operator) { } KubernetesClient clientUsingServiceAccount() { - KubernetesClient client = new KubernetesClientBuilder() - .withConfig(new ConfigBuilder() - .withImpersonateUsername("rbac-test-user") - .withNamespace(actualNamespace) - .build()) - .build(); + KubernetesClient client = new KubernetesClientBuilder().withConfig(new ConfigBuilder() + .withImpersonateUsername("rbac-test-user").withNamespace(actualNamespace).build()).build(); return client; } @@ -313,16 +299,15 @@ Operator startOperator(boolean stopOnInformerErrorDuringStartup, boolean addStop reconciler = new InformerRelatedBehaviorTestReconciler(); - Operator operator = new Operator( - co -> { - co.withKubernetesClient(clientUsingServiceAccount()); - co.withStopOnInformerErrorDuringStartup(stopOnInformerErrorDuringStartup); - co.withCacheSyncTimeout(Duration.ofMillis(3000)); - co.withReconciliationTerminationTimeout(Duration.ofSeconds(1)); - if (addStopHandler) { - co.withInformerStoppedHandler((informer, ex) -> replacementStopHandlerCalled = true); - } - }); + Operator operator = new Operator(co -> { + co.withKubernetesClient(clientUsingServiceAccount()); + co.withStopOnInformerErrorDuringStartup(stopOnInformerErrorDuringStartup); + co.withCacheSyncTimeout(Duration.ofMillis(3000)); + co.withReconciliationTerminationTimeout(Duration.ofSeconds(1)); + if (addStopHandler) { + co.withInformerStoppedHandler((informer, ex) -> replacementStopHandlerCalled = true); + } + }); operator.register(reconciler, o -> { if (namespaces.length > 0) { o.settingNamespaces(namespaces); @@ -348,24 +333,22 @@ private void setFullResourcesAccess() { } private void addRoleBindingsToTestNamespaces() { - var role = ReconcilerUtils - .loadYaml(Role.class, this.getClass(), "rback-test-only-main-ns-access.yaml"); + var role = ReconcilerUtils.loadYaml(Role.class, this.getClass(), + "rback-test-only-main-ns-access.yaml"); adminClient.resource(role).inNamespace(actualNamespace).createOrReplace(); - var roleBinding = ReconcilerUtils - .loadYaml(RoleBinding.class, this.getClass(), - "rback-test-only-main-ns-access-binding.yaml"); + var roleBinding = ReconcilerUtils.loadYaml(RoleBinding.class, this.getClass(), + "rback-test-only-main-ns-access-binding.yaml"); adminClient.resource(roleBinding).inNamespace(actualNamespace).createOrReplace(); } private void applyClusterRoleBinding() { - var clusterRoleBinding = ReconcilerUtils - .loadYaml(ClusterRoleBinding.class, this.getClass(), "rback-test-role-binding.yaml"); + var clusterRoleBinding = ReconcilerUtils.loadYaml(ClusterRoleBinding.class, this.getClass(), + "rback-test-role-binding.yaml"); adminClient.resource(clusterRoleBinding).createOrReplace(); } private void applyClusterRole(String filename) { - var clusterRole = ReconcilerUtils - .loadYaml(ClusterRole.class, this.getClass(), filename); + var clusterRole = ReconcilerUtils.loadYaml(ClusterRole.class, this.getClass(), filename); adminClient.resource(clusterRole).createOrReplace(); } @@ -375,15 +358,13 @@ private Namespace namespace() { private Namespace namespace(String name) { Namespace n = new Namespace(); - n.setMetadata(new ObjectMetaBuilder() - .withName(name) - .build()); + n.setMetadata(new ObjectMetaBuilder().withName(name).build()); return n; } private void removeClusterRoleBinding() { - var clusterRoleBinding = ReconcilerUtils - .loadYaml(ClusterRoleBinding.class, this.getClass(), "rback-test-role-binding.yaml"); + var clusterRoleBinding = ReconcilerUtils.loadYaml(ClusterRoleBinding.class, this.getClass(), + "rback-test-role-binding.yaml"); adminClient.resource(clusterRoleBinding).delete(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/InformerRelatedBehaviorTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/InformerRelatedBehaviorTestCustomResource.java index 9269dc5d6e..80753624ce 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/InformerRelatedBehaviorTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/informerrelatedbehavior/InformerRelatedBehaviorTestCustomResource.java @@ -9,7 +9,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("rbt") -public class InformerRelatedBehaviorTestCustomResource - extends CustomResource<Void, Void> +public class InformerRelatedBehaviorTestCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/kubernetesdependentgarbagecollection/DependentGarbageCollectionTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/kubernetesdependentgarbagecollection/DependentGarbageCollectionTestCustomResource.java index 33f9899689..795058354c 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/kubernetesdependentgarbagecollection/DependentGarbageCollectionTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/kubernetesdependentgarbagecollection/DependentGarbageCollectionTestCustomResource.java @@ -9,8 +9,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("dgc") -public class DependentGarbageCollectionTestCustomResource - extends - CustomResource<DependentGarbageCollectionTestCustomResourceSpec, Void> - implements Namespaced { +public class DependentGarbageCollectionTestCustomResource extends + CustomResource<DependentGarbageCollectionTestCustomResourceSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/kubernetesdependentgarbagecollection/DependentGarbageCollectionTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/kubernetesdependentgarbagecollection/DependentGarbageCollectionTestReconciler.java index e786c1c2c1..c9f08cea77 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/kubernetesdependentgarbagecollection/DependentGarbageCollectionTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/kubernetesdependentgarbagecollection/DependentGarbageCollectionTestReconciler.java @@ -63,8 +63,8 @@ public boolean isErrorOccurred() { return errorOccurred; } - private static class ConfigMapDependentResource extends - KubernetesDependentResource<ConfigMap, DependentGarbageCollectionTestCustomResource> + private static class ConfigMapDependentResource + extends KubernetesDependentResource<ConfigMap, DependentGarbageCollectionTestCustomResource> implements Creator<ConfigMap, DependentGarbageCollectionTestCustomResource>, Updater<ConfigMap, DependentGarbageCollectionTestCustomResource>, GarbageCollected<DependentGarbageCollectionTestCustomResource> { @@ -77,10 +77,8 @@ public ConfigMapDependentResource() { protected ConfigMap desired(DependentGarbageCollectionTestCustomResource primary, Context<DependentGarbageCollectionTestCustomResource> context) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap.setData(Map.of("key", "data")); return configMap; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/kubernetesdependentgarbagecollection/KubernetesDependentGarbageCollectionIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/kubernetesdependentgarbagecollection/KubernetesDependentGarbageCollectionIT.java index afc89471a6..42417446de 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/kubernetesdependentgarbagecollection/KubernetesDependentGarbageCollectionIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/kubernetesdependentgarbagecollection/KubernetesDependentGarbageCollectionIT.java @@ -17,17 +17,14 @@ class KubernetesDependentGarbageCollectionIT { public static final String TEST_RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new DependentGarbageCollectionTestReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new DependentGarbageCollectionTestReconciler()).build(); @Test void resourceSecondaryResourceIsGarbageCollected() { var resource = customResource(); - var createdResources = - operator.create(resource); + var createdResources = operator.create(resource); await().untilAsserted(() -> { ConfigMap configMap = operator.get(ConfigMap.class, TEST_RESOURCE_NAME); @@ -51,8 +48,7 @@ void resourceSecondaryResourceIsGarbageCollected() { @Test void deletesSecondaryResource() { var resource = customResource(); - var createdResources = - operator.create(resource); + var createdResources = operator.create(resource); await().untilAsserted(() -> { ConfigMap configMap = operator.get(ConfigMap.class, TEST_RESOURCE_NAME); @@ -71,9 +67,7 @@ void deletesSecondaryResource() { DependentGarbageCollectionTestCustomResource customResource() { DependentGarbageCollectionTestCustomResource resource = new DependentGarbageCollectionTestCustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); resource.setSpec(new DependentGarbageCollectionTestCustomResourceSpec()); resource.getSpec().setCreateConfigMap(true); return resource; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceConfigMap.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceConfigMap.java index d0bc50ddd8..d292ed3843 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceConfigMap.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceConfigMap.java @@ -22,13 +22,9 @@ public MultipleDependentResourceConfigMap(String value) { protected ConfigMap desired(MultipleDependentResourceCustomResource primary, Context<MultipleDependentResourceCustomResource> context) { - return new ConfigMapBuilder() - .withNewMetadata() - .withName(getConfigMapName(value)) - .withNamespace(primary.getMetadata().getNamespace()) - .endMetadata() - .withData(Map.of(DATA_KEY, primary.getSpec().getValue())) - .build(); + return new ConfigMapBuilder().withNewMetadata().withName(getConfigMapName(value)) + .withNamespace(primary.getMetadata().getNamespace()).endMetadata() + .withData(Map.of(DATA_KEY, primary.getSpec().getValue())).build(); } public static String getConfigMapName(String id) { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceCustomResource.java index 7b8fb15466..67d68154d6 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceCustomResource.java @@ -10,6 +10,5 @@ @Version("v1") @ShortNames("mdr") public class MultipleDependentResourceCustomResource - extends CustomResource<MultipleDependentResourceSpec, Void> - implements Namespaced { + extends CustomResource<MultipleDependentResourceSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceIT.java index f8b9259b6a..ccbb911c89 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceIT.java @@ -22,10 +22,8 @@ public class MultipleDependentResourceIT { public static final String INITIAL_VALUE = "initial value"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new MultipleDependentResourceReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new MultipleDependentResourceReconciler()).build(); @Test void handlesCRUDOperations() { @@ -65,9 +63,7 @@ void handlesCRUDOperations() { MultipleDependentResourceCustomResource testResource() { var res = new MultipleDependentResourceCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName("test1") - .build()); + res.setMetadata(new ObjectMetaBuilder().withName("test1").build()); res.setSpec(new MultipleDependentResourceSpec()); res.getSpec().setValue(INITIAL_VALUE); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceReconciler.java index aeac786cda..48d24c5fdf 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresource/MultipleDependentResourceReconciler.java @@ -36,9 +36,10 @@ public UpdateControl<MultipleDependentResourceCustomResource> reconcile( public List<EventSource<?, MultipleDependentResourceCustomResource>> prepareEventSources( EventSourceContext<MultipleDependentResourceCustomResource> context) { InformerEventSource<ConfigMap, MultipleDependentResourceCustomResource> eventSource = - new InformerEventSource<>(InformerEventSourceConfiguration - .from(ConfigMap.class, MultipleDependentResourceCustomResource.class) - .build(), context); + new InformerEventSource<>( + InformerEventSourceConfiguration + .from(ConfigMap.class, MultipleDependentResourceCustomResource.class).build(), + context); firstDependentResourceConfigMap.setEventSource(eventSource); secondDependentResourceConfigMap.setEventSource(eventSource); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceConfigMap.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceConfigMap.java index defef91b75..815674dfe8 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceConfigMap.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceConfigMap.java @@ -8,8 +8,7 @@ import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource; -public class MultipleDependentResourceConfigMap - extends +public class MultipleDependentResourceConfigMap extends CRUDKubernetesDependentResource<ConfigMap, MultipleDependentResourceCustomResourceNoDiscriminator> { public static final String DATA_KEY = "key"; @@ -26,12 +25,7 @@ protected ConfigMap desired(MultipleDependentResourceCustomResourceNoDiscriminat Map<String, String> data = new HashMap<>(); data.put(DATA_KEY, String.valueOf(value)); - return new ConfigMapBuilder() - .withNewMetadata() - .withName(primary.getConfigMapName(value)) - .withNamespace(primary.getMetadata().getNamespace()) - .endMetadata() - .withData(data) - .build(); + return new ConfigMapBuilder().withNewMetadata().withName(primary.getConfigMapName(value)) + .withNamespace(primary.getMetadata().getNamespace()).endMetadata().withData(data).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceCustomResourceNoDiscriminator.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceCustomResourceNoDiscriminator.java index bd91aae234..b8af874b23 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceCustomResourceNoDiscriminator.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceCustomResourceNoDiscriminator.java @@ -10,8 +10,7 @@ @Version("v1") @ShortNames("mdwd") public class MultipleDependentResourceCustomResourceNoDiscriminator - extends CustomResource<Void, Void> - implements Namespaced { + extends CustomResource<Void, Void> implements Namespaced { public String getConfigMapName(int id) { return "configmap" + id; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceWithDiscriminatorReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceWithDiscriminatorReconciler.java index c96033d9bc..67fb4c467d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceWithDiscriminatorReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceWithDiscriminatorReconciler.java @@ -11,9 +11,8 @@ import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider; @ControllerConfiguration -public class MultipleDependentResourceWithDiscriminatorReconciler - implements Reconciler<MultipleDependentResourceCustomResourceNoDiscriminator>, - TestExecutionInfoProvider { +public class MultipleDependentResourceWithDiscriminatorReconciler implements + Reconciler<MultipleDependentResourceCustomResourceNoDiscriminator>, TestExecutionInfoProvider { public static final int FIRST_CONFIG_MAP_ID = 1; public static final int SECOND_CONFIG_MAP_ID = 2; @@ -46,8 +45,8 @@ public int getNumberOfExecutions() { public List<EventSource<?, MultipleDependentResourceCustomResourceNoDiscriminator>> prepareEventSources( EventSourceContext<MultipleDependentResourceCustomResourceNoDiscriminator> context) { InformerEventSource<ConfigMap, MultipleDependentResourceCustomResourceNoDiscriminator> eventSource = - new InformerEventSource<>(InformerEventSourceConfiguration.from(ConfigMap.class, - MultipleDependentResourceCustomResourceNoDiscriminator.class) + new InformerEventSource<>(InformerEventSourceConfiguration + .from(ConfigMap.class, MultipleDependentResourceCustomResourceNoDiscriminator.class) .build(), context); firstDependentResourceConfigMap.setEventSource(eventSource); secondDependentResourceConfigMap.setEventSource(eventSource); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceWithNoDiscriminatorIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceWithNoDiscriminatorIT.java index b653a8b606..658a100fe7 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceWithNoDiscriminatorIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentresourcewithsametype/MultipleDependentResourceWithNoDiscriminatorIT.java @@ -17,11 +17,9 @@ class MultipleDependentResourceWithNoDiscriminatorIT { public static final String TEST_RESOURCE_NAME = "multipledependentresource-testresource"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(MultipleDependentResourceWithDiscriminatorReconciler.class) - .waitForNamespaceDeletion(true) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(MultipleDependentResourceWithDiscriminatorReconciler.class) + .waitForNamespaceDeletion(true).build(); @Test void twoConfigMapsHaveBeenCreated() { @@ -32,11 +30,11 @@ void twoConfigMapsHaveBeenCreated() { var reconciler = operator.getReconcilerOfType(MultipleDependentResourceWithDiscriminatorReconciler.class); - await().pollDelay(Duration.ofMillis(300)) - .until(() -> reconciler.getNumberOfExecutions() <= 1); + await().pollDelay(Duration.ofMillis(300)).until(() -> reconciler.getNumberOfExecutions() <= 1); - IntStream.of(MultipleDependentResourceWithDiscriminatorReconciler.FIRST_CONFIG_MAP_ID, - MultipleDependentResourceWithDiscriminatorReconciler.SECOND_CONFIG_MAP_ID) + IntStream + .of(MultipleDependentResourceWithDiscriminatorReconciler.FIRST_CONFIG_MAP_ID, + MultipleDependentResourceWithDiscriminatorReconciler.SECOND_CONFIG_MAP_ID) .forEach(configMapId -> { ConfigMap configMap = operator.get(ConfigMap.class, customResource.getConfigMapName(configMapId)); @@ -51,11 +49,8 @@ void twoConfigMapsHaveBeenCreated() { public MultipleDependentResourceCustomResourceNoDiscriminator createTestCustomResource() { MultipleDependentResourceCustomResourceNoDiscriminator resource = new MultipleDependentResourceCustomResourceNoDiscriminator(); - resource.setMetadata( - new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .withNamespace(operator.getNamespace()) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME) + .withNamespace(operator.getNamespace()).build()); return resource; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleDependentSameTypeMultiInformerIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleDependentSameTypeMultiInformerIT.java index 6f244f554c..695baeaa5e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleDependentSameTypeMultiInformerIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleDependentSameTypeMultiInformerIT.java @@ -22,10 +22,8 @@ class MultipleDependentSameTypeMultiInformerIT { public static final int SECONDS = 30; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new MultipleManagedDependentResourceMultiInformerReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new MultipleManagedDependentResourceMultiInformerReconciler()).build(); @Test void handlesCrudOperations() { @@ -44,8 +42,8 @@ void handlesCrudOperations() { private void assertConfigMapsPresent(String expectedData) { await().untilAsserted(() -> { - var maps = operator.getKubernetesClient().configMaps() - .inNamespace(operator.getNamespace()).list().getItems().stream() + var maps = operator.getKubernetesClient().configMaps().inNamespace(operator.getNamespace()) + .list().getItems().stream() .filter(cm -> cm.getMetadata().getName().startsWith(TEST_RESOURCE_NAME)) .collect(Collectors.toList()); assertThat(maps).hasSize(2); @@ -55,8 +53,8 @@ private void assertConfigMapsPresent(String expectedData) { private void assertConfigMapsDeleted() { await().atMost(Duration.ofSeconds(GARBAGE_COLLECTION_TIMEOUT_SECONDS)).untilAsserted(() -> { - var maps = operator.getKubernetesClient().configMaps() - .inNamespace(operator.getNamespace()).list().getItems().stream() + var maps = operator.getKubernetesClient().configMaps().inNamespace(operator.getNamespace()) + .list().getItems().stream() .filter(cm -> cm.getMetadata().getName().startsWith(TEST_RESOURCE_NAME)) .collect(Collectors.toList()); assertThat(maps).hasSize(0); @@ -65,9 +63,7 @@ private void assertConfigMapsDeleted() { private MultipleManagedDependentResourceMultiInformerCustomResource testResource() { var res = new MultipleManagedDependentResourceMultiInformerCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); res.setSpec(new MultipleManagedDependentResourceMultiInformerSpec()); res.getSpec().setValue(DEFAULT_SPEC_VALUE); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap1.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap1.java index 47c65f1a95..035a4abe6d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap1.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap1.java @@ -11,8 +11,7 @@ import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent; @KubernetesDependent -public class MultipleManagedDependentResourceMultiInformerConfigMap1 - extends +public class MultipleManagedDependentResourceMultiInformerConfigMap1 extends CRUDKubernetesDependentResource<ConfigMap, MultipleManagedDependentResourceMultiInformerCustomResource> { public static final String NAME_SUFFIX = "-1"; @@ -27,12 +26,8 @@ protected ConfigMap desired(MultipleManagedDependentResourceMultiInformerCustomR Map<String, String> data = new HashMap<>(); data.put(MultipleManagedDependentResourceReconciler.DATA_KEY, primary.getSpec().getValue()); - return new ConfigMapBuilder() - .withNewMetadata() + return new ConfigMapBuilder().withNewMetadata() .withName(primary.getMetadata().getName() + NAME_SUFFIX) - .withNamespace(primary.getMetadata().getNamespace()) - .endMetadata() - .withData(data) - .build(); + .withNamespace(primary.getMetadata().getNamespace()).endMetadata().withData(data).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap2.java index 320768de24..98bab78a64 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap2.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap2.java @@ -12,8 +12,7 @@ import static io.javaoperatorsdk.operator.dependent.multiplemanageddependentsametype.MultipleManagedDependentResourceReconciler.DATA_KEY; @KubernetesDependent -public class MultipleManagedDependentResourceMultiInformerConfigMap2 - extends +public class MultipleManagedDependentResourceMultiInformerConfigMap2 extends CRUDKubernetesDependentResource<ConfigMap, MultipleManagedDependentResourceMultiInformerCustomResource> { public static final String NAME_SUFFIX = "-2"; @@ -28,12 +27,8 @@ protected ConfigMap desired(MultipleManagedDependentResourceMultiInformerCustomR Map<String, String> data = new HashMap<>(); data.put(DATA_KEY, primary.getSpec().getValue()); - return new ConfigMapBuilder() - .withNewMetadata() + return new ConfigMapBuilder().withNewMetadata() .withName(primary.getMetadata().getName() + NAME_SUFFIX) - .withNamespace(primary.getMetadata().getNamespace()) - .endMetadata() - .withData(data) - .build(); + .withNamespace(primary.getMetadata().getNamespace()).endMetadata().withData(data).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerCustomResource.java index 060a8f6b62..b1b916fef0 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerCustomResource.java @@ -9,8 +9,7 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("mmi") -public class MultipleManagedDependentResourceMultiInformerCustomResource - extends CustomResource<MultipleManagedDependentResourceMultiInformerSpec, Void> - implements Namespaced { +public class MultipleManagedDependentResourceMultiInformerCustomResource extends + CustomResource<MultipleManagedDependentResourceMultiInformerSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerReconciler.java index f0fe034c97..d830127110 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerReconciler.java @@ -10,8 +10,7 @@ @Dependent(name = MultipleManagedDependentResourceMultiInformerReconciler.CONFIG_MAP_1_DR, type = MultipleManagedDependentResourceMultiInformerConfigMap1.class), @Dependent(name = MultipleManagedDependentResourceMultiInformerReconciler.CONFIG_MAP_2_DR, - type = MultipleManagedDependentResourceMultiInformerConfigMap2.class) -}) + type = MultipleManagedDependentResourceMultiInformerConfigMap2.class)}) @ControllerConfiguration public class MultipleManagedDependentResourceMultiInformerReconciler implements Reconciler<MultipleManagedDependentResourceMultiInformerCustomResource>, diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorConfigMap1.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorConfigMap1.java index 6b83593173..b4679d11ef 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorConfigMap1.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorConfigMap1.java @@ -11,8 +11,7 @@ import io.javaoperatorsdk.operator.processing.event.ResourceID; @KubernetesDependent -public class MultipleManagedDependentNoDiscriminatorConfigMap1 - extends +public class MultipleManagedDependentNoDiscriminatorConfigMap1 extends CRUDKubernetesDependentResource<ConfigMap, MultipleManagedDependentNoDiscriminatorCustomResource> { public static final String NAME_SUFFIX = "-1"; @@ -41,12 +40,8 @@ protected ConfigMap desired(MultipleManagedDependentNoDiscriminatorCustomResourc data.put(MultipleManagedDependentSameTypeNoDiscriminatorReconciler.DATA_KEY, primary.getSpec().getValue()); - return new ConfigMapBuilder() - .withNewMetadata() + return new ConfigMapBuilder().withNewMetadata() .withName(primary.getMetadata().getName() + NAME_SUFFIX) - .withNamespace(primary.getMetadata().getNamespace()) - .endMetadata() - .withData(data) - .build(); + .withNamespace(primary.getMetadata().getNamespace()).endMetadata().withData(data).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorConfigMap2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorConfigMap2.java index 373a70bcda..afa4ed07e8 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorConfigMap2.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorConfigMap2.java @@ -12,8 +12,7 @@ import static io.javaoperatorsdk.operator.dependent.multiplemanageddependentsametype.MultipleManagedDependentResourceReconciler.DATA_KEY; @KubernetesDependent -public class MultipleManagedDependentNoDiscriminatorConfigMap2 - extends +public class MultipleManagedDependentNoDiscriminatorConfigMap2 extends CRUDKubernetesDependentResource<ConfigMap, MultipleManagedDependentNoDiscriminatorCustomResource> { public static final String NAME_SUFFIX = "-2"; @@ -28,12 +27,8 @@ protected ConfigMap desired(MultipleManagedDependentNoDiscriminatorCustomResourc Map<String, String> data = new HashMap<>(); data.put(DATA_KEY, primary.getSpec().getValue()); - return new ConfigMapBuilder() - .withNewMetadata() + return new ConfigMapBuilder().withNewMetadata() .withName(primary.getMetadata().getName() + NAME_SUFFIX) - .withNamespace(primary.getMetadata().getNamespace()) - .endMetadata() - .withData(data) - .build(); + .withNamespace(primary.getMetadata().getNamespace()).endMetadata().withData(data).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorCustomResource.java index 7681cf7792..fc07e13bac 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorCustomResource.java @@ -9,8 +9,7 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("mnd") -public class MultipleManagedDependentNoDiscriminatorCustomResource - extends CustomResource<MultipleManagedDependentNoDiscriminatorSpec, Void> - implements Namespaced { +public class MultipleManagedDependentNoDiscriminatorCustomResource extends + CustomResource<MultipleManagedDependentNoDiscriminatorSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorIT.java index cc6b79066a..b982bace54 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentNoDiscriminatorIT.java @@ -20,10 +20,8 @@ public class MultipleManagedDependentNoDiscriminatorIT { public static final String CHANGED_VALUE = "changed_value"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new MultipleManagedDependentSameTypeNoDiscriminatorReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new MultipleManagedDependentSameTypeNoDiscriminatorReconciler()).build(); @Test void handlesCRUDOperations() { @@ -69,9 +67,7 @@ void handlesCRUDOperations() { MultipleManagedDependentNoDiscriminatorCustomResource testResource() { var res = new MultipleManagedDependentNoDiscriminatorCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(RESOURCE_NAME).build()); res.setSpec(new MultipleManagedDependentNoDiscriminatorSpec()); res.getSpec().setValue(INITIAL_VALUE); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentSameTypeNoDiscriminatorReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentSameTypeNoDiscriminatorReconciler.java index 09c0b5cc23..5d43e3c8d1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentSameTypeNoDiscriminatorReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipledrsametypenodiscriminator/MultipleManagedDependentSameTypeNoDiscriminatorReconciler.java @@ -17,12 +17,10 @@ @Dependent(type = MultipleManagedDependentNoDiscriminatorConfigMap1.class, useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE), @Dependent(type = MultipleManagedDependentNoDiscriminatorConfigMap2.class, - useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE) -}) + useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE)}) @ControllerConfiguration -public class MultipleManagedDependentSameTypeNoDiscriminatorReconciler - implements Reconciler<MultipleManagedDependentNoDiscriminatorCustomResource>, - TestExecutionInfoProvider { +public class MultipleManagedDependentSameTypeNoDiscriminatorReconciler implements + Reconciler<MultipleManagedDependentNoDiscriminatorCustomResource>, TestExecutionInfoProvider { public static final String CONFIG_MAP_EVENT_SOURCE = "ConfigMapEventSource"; public static final String DATA_KEY = "key"; @@ -49,12 +47,9 @@ public int getNumberOfExecutions() { public List<EventSource<?, MultipleManagedDependentNoDiscriminatorCustomResource>> prepareEventSources( EventSourceContext<MultipleManagedDependentNoDiscriminatorCustomResource> context) { InformerEventSource<ConfigMap, MultipleManagedDependentNoDiscriminatorCustomResource> ies = - new InformerEventSource<>( - InformerEventSourceConfiguration.from(ConfigMap.class, - MultipleManagedDependentNoDiscriminatorCustomResource.class) - .withName(CONFIG_MAP_EVENT_SOURCE) - .build(), - context); + new InformerEventSource<>(InformerEventSourceConfiguration + .from(ConfigMap.class, MultipleManagedDependentNoDiscriminatorCustomResource.class) + .withName(CONFIG_MAP_EVENT_SOURCE).build(), context); return List.of(ies); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap1.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap1.java index 4d69ef25e3..b968eac331 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap1.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap1.java @@ -10,8 +10,7 @@ import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent; @KubernetesDependent -public class MultipleManagedDependentResourceConfigMap1 - extends +public class MultipleManagedDependentResourceConfigMap1 extends CRUDKubernetesDependentResource<ConfigMap, MultipleManagedDependentResourceCustomResource> { public static final String NAME_SUFFIX = "-1"; @@ -26,12 +25,8 @@ protected ConfigMap desired(MultipleManagedDependentResourceCustomResource prima Map<String, String> data = new HashMap<>(); data.put(MultipleManagedDependentResourceReconciler.DATA_KEY, primary.getSpec().getValue()); - return new ConfigMapBuilder() - .withNewMetadata() + return new ConfigMapBuilder().withNewMetadata() .withName(primary.getMetadata().getName() + NAME_SUFFIX) - .withNamespace(primary.getMetadata().getNamespace()) - .endMetadata() - .withData(data) - .build(); + .withNamespace(primary.getMetadata().getNamespace()).endMetadata().withData(data).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap2.java index 11231470e7..95fab82b48 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap2.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap2.java @@ -10,8 +10,7 @@ import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent; @KubernetesDependent -public class MultipleManagedDependentResourceConfigMap2 - extends +public class MultipleManagedDependentResourceConfigMap2 extends CRUDKubernetesDependentResource<ConfigMap, MultipleManagedDependentResourceCustomResource> { public static final String NAME_SUFFIX = "-2"; @@ -26,12 +25,8 @@ protected ConfigMap desired(MultipleManagedDependentResourceCustomResource prima Map<String, String> data = new HashMap<>(); data.put(MultipleManagedDependentResourceReconciler.DATA_KEY, primary.getSpec().getValue()); - return new ConfigMapBuilder() - .withNewMetadata() + return new ConfigMapBuilder().withNewMetadata() .withName(primary.getMetadata().getName() + NAME_SUFFIX) - .withNamespace(primary.getMetadata().getNamespace()) - .endMetadata() - .withData(data) - .build(); + .withNamespace(primary.getMetadata().getNamespace()).endMetadata().withData(data).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceCustomResource.java index 2c131978b6..a28993a9c4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceCustomResource.java @@ -10,7 +10,6 @@ @Version("v1") @ShortNames("mmd") public class MultipleManagedDependentResourceCustomResource - extends CustomResource<MultipleManagedDependentResourceSpec, Void> - implements Namespaced { + extends CustomResource<MultipleManagedDependentResourceSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceReconciler.java index f25587b2ee..682f9cbf14 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentResourceReconciler.java @@ -17,12 +17,10 @@ @Dependent(type = MultipleManagedDependentResourceConfigMap1.class, useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE), @Dependent(type = MultipleManagedDependentResourceConfigMap2.class, - useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE) -}) + useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE)}) @ControllerConfiguration -public class MultipleManagedDependentResourceReconciler - implements Reconciler<MultipleManagedDependentResourceCustomResource>, - TestExecutionInfoProvider { +public class MultipleManagedDependentResourceReconciler implements + Reconciler<MultipleManagedDependentResourceCustomResource>, TestExecutionInfoProvider { public static final String CONFIG_MAP_EVENT_SOURCE = "ConfigMapEventSource"; public static final String DATA_KEY = "key"; @@ -49,12 +47,9 @@ public int getNumberOfExecutions() { public List<EventSource<?, MultipleManagedDependentResourceCustomResource>> prepareEventSources( EventSourceContext<MultipleManagedDependentResourceCustomResource> context) { InformerEventSource<ConfigMap, MultipleManagedDependentResourceCustomResource> ies = - new InformerEventSource<>( - InformerEventSourceConfiguration - .from(ConfigMap.class, MultipleManagedDependentResourceCustomResource.class) - .withName(CONFIG_MAP_EVENT_SOURCE) - .build(), - context); + new InformerEventSource<>(InformerEventSourceConfiguration + .from(ConfigMap.class, MultipleManagedDependentResourceCustomResource.class) + .withName(CONFIG_MAP_EVENT_SOURCE).build(), context); return List.of(ies); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentSameTypeIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentSameTypeIT.java index ed568e75e1..ea983c15fe 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentSameTypeIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanageddependentsametype/MultipleManagedDependentSameTypeIT.java @@ -22,10 +22,8 @@ class MultipleManagedDependentSameTypeIT { public static final int SECONDS = 30; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new MultipleManagedDependentResourceReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new MultipleManagedDependentResourceReconciler()).build(); @Test @@ -44,8 +42,8 @@ void handlesCrudOperations() { private void assertConfigMapsPresent(String expectedData) { await().untilAsserted(() -> { - var maps = operator.getKubernetesClient().configMaps() - .inNamespace(operator.getNamespace()).list().getItems().stream() + var maps = operator.getKubernetesClient().configMaps().inNamespace(operator.getNamespace()) + .list().getItems().stream() .filter(cm -> cm.getMetadata().getName().startsWith(TEST_RESOURCE_NAME)) .collect(Collectors.toList()); assertThat(maps).hasSize(2); @@ -55,8 +53,8 @@ private void assertConfigMapsPresent(String expectedData) { private void assertConfigMapsDeleted() { await().atMost(Duration.ofSeconds(GARBAGE_COLLECTION_TIMEOUT_SECONDS)).untilAsserted(() -> { - var maps = operator.getKubernetesClient().configMaps() - .inNamespace(operator.getNamespace()).list().getItems().stream() + var maps = operator.getKubernetesClient().configMaps().inNamespace(operator.getNamespace()) + .list().getItems().stream() .filter(cm -> cm.getMetadata().getName().startsWith(TEST_RESOURCE_NAME)) .collect(Collectors.toList()); assertThat(maps).hasSize(0); @@ -65,9 +63,7 @@ private void assertConfigMapsDeleted() { private MultipleManagedDependentResourceCustomResource testResource() { var res = new MultipleManagedDependentResourceCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); res.setSpec(new MultipleManagedDependentResourceSpec()); res.getSpec().setValue(DEFAULT_SPEC_VALUE); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/AbstractExternalDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/AbstractExternalDependentResource.java index 9cc3830be8..061fe4aee3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/AbstractExternalDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/AbstractExternalDependentResource.java @@ -38,8 +38,7 @@ public ExternalResource create(ExternalResource desired, } @Override - public ExternalResource update(ExternalResource actual, - ExternalResource desired, + public ExternalResource update(ExternalResource actual, ExternalResource desired, MultipleManagedExternalDependentResourceCustomResource primary, Context<MultipleManagedExternalDependentResourceCustomResource> context) { return externalServiceMock.update(desired); @@ -61,8 +60,7 @@ public void delete(MultipleManagedExternalDependentResourceCustomResource primar protected ExternalResource desired(MultipleManagedExternalDependentResourceCustomResource primary, Context<MultipleManagedExternalDependentResourceCustomResource> context) { - return new ExternalResource(toExternalResourceID(primary), - primary.getSpec().getValue()); + return new ExternalResource(toExternalResourceID(primary), primary.getSpec().getValue()); } protected String toExternalResourceID( diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentResourceCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentResourceCustomResource.java index df443880c9..c95c3945ff 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentResourceCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentResourceCustomResource.java @@ -11,7 +11,6 @@ @Version("v1") @ShortNames("mme") public class MultipleManagedExternalDependentResourceCustomResource - extends CustomResource<MultipleManagedDependentResourceSpec, Void> - implements Namespaced { + extends CustomResource<MultipleManagedDependentResourceSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentResourceReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentResourceReconciler.java index cd17f1706b..c819ad7884 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentResourceReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentResourceReconciler.java @@ -26,15 +26,12 @@ import static io.javaoperatorsdk.operator.dependent.multiplemanagedexternaldependenttype.MultipleManagedExternalDependentResourceReconciler.EVENT_SOURCE_NAME; @Workflow(dependents = { - @Dependent(type = ExternalDependentResource1.class, - useEventSourceWithName = EVENT_SOURCE_NAME), + @Dependent(type = ExternalDependentResource1.class, useEventSourceWithName = EVENT_SOURCE_NAME), @Dependent(type = ExternalDependentResource2.class, - useEventSourceWithName = EVENT_SOURCE_NAME) -}) + useEventSourceWithName = EVENT_SOURCE_NAME)}) @ControllerConfiguration() -public class MultipleManagedExternalDependentResourceReconciler - implements Reconciler<MultipleManagedExternalDependentResourceCustomResource>, - TestExecutionInfoProvider { +public class MultipleManagedExternalDependentResourceReconciler implements + Reconciler<MultipleManagedExternalDependentResourceCustomResource>, TestExecutionInfoProvider { public static final String EVENT_SOURCE_NAME = "ConfigMapEventSource"; protected ExternalServiceMock externalServiceMock = ExternalServiceMock.getInstance(); @@ -73,9 +70,7 @@ public List<EventSource<?, MultipleManagedExternalDependentResourceCustomResourc PollingEventSource<ExternalResource, MultipleManagedExternalDependentResourceCustomResource> pollingEventSource = new PollingEventSource<>(ExternalResource.class, new PollingConfigurationBuilder<>(fetcher, Duration.ofMillis(1000L)) - .withName(EVENT_SOURCE_NAME) - .withCacheKeyMapper(ExternalResource::getId) - .build()); + .withName(EVENT_SOURCE_NAME).withCacheKeyMapper(ExternalResource::getId).build()); return List.of(pollingEventSource); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentSameTypeIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentSameTypeIT.java index 024060202b..b70ea59adb 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentSameTypeIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multiplemanagedexternaldependenttype/MultipleManagedExternalDependentSameTypeIT.java @@ -14,10 +14,8 @@ class MultipleManagedExternalDependentSameTypeIT { @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new MultipleManagedExternalDependentResourceReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new MultipleManagedExternalDependentResourceReconciler()).build(); public static final String TEST_RESOURCE_NAME = "test1"; public static final String DEFAULT_SPEC_VALUE = "val"; @@ -56,9 +54,7 @@ private void assertResourceCreatedWithData(String expectedData) { private MultipleManagedExternalDependentResourceCustomResource testResource() { var res = new MultipleManagedExternalDependentResourceCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); res.setSpec(new MultipleManagedDependentResourceSpec()); res.getSpec().setValue(DEFAULT_SPEC_VALUE); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultiOwnerDependentTriggeringIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultiOwnerDependentTriggeringIT.java index d9c62d9a29..7646f8e95e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultiOwnerDependentTriggeringIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultiOwnerDependentTriggeringIT.java @@ -20,11 +20,9 @@ class MultiOwnerDependentTriggeringIT { public static final String NEW_VALUE_2 = "newValue2"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withConfigurationService(o -> o.withDefaultNonSSAResource(Set.of())) - .withReconciler(MultipleOwnerDependentReconciler.class) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withConfigurationService(o -> o.withDefaultNonSSAResource(Set.of())) + .withReconciler(MultipleOwnerDependentReconciler.class).build(); @Test @@ -36,9 +34,7 @@ void multiOwnerTriggeringAndManagement() { var cm = extension.get(ConfigMap.class, MultipleOwnerDependentConfigMap.RESOURCE_NAME); assertThat(cm).isNotNull(); - assertThat(cm.getData()) - .containsEntry(VALUE_1, VALUE_1) - .containsEntry(VALUE_2, VALUE_2); + assertThat(cm.getData()).containsEntry(VALUE_1, VALUE_1).containsEntry(VALUE_2, VALUE_2); assertThat(cm.getMetadata().getOwnerReferences()).hasSize(2); }); @@ -47,8 +43,7 @@ void multiOwnerTriggeringAndManagement() { await().untilAsserted(() -> { var cm = extension.get(ConfigMap.class, MultipleOwnerDependentConfigMap.RESOURCE_NAME); - assertThat(cm.getData()) - .containsEntry(NEW_VALUE_1, NEW_VALUE_1) + assertThat(cm.getData()).containsEntry(NEW_VALUE_1, NEW_VALUE_1) // note that it will still contain the old value too .containsEntry(VALUE_1, VALUE_1); assertThat(cm.getMetadata().getOwnerReferences()).hasSize(2); @@ -66,9 +61,7 @@ void multiOwnerTriggeringAndManagement() { MultipleOwnerDependentCustomResource testResource(String name, String value) { var res = new MultipleOwnerDependentCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(name) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(name).build()); res.setSpec(new MultipleOwnerDependentSpec()); res.getSpec().setValue(value); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentConfigMap.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentConfigMap.java index b906796708..e70bf329a1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentConfigMap.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentConfigMap.java @@ -15,8 +15,7 @@ @KubernetesDependent(useSSA = BooleanWithUndefined.TRUE) public class MultipleOwnerDependentConfigMap - extends - CRUDKubernetesDependentResource<ConfigMap, MultipleOwnerDependentCustomResource> { + extends CRUDKubernetesDependentResource<ConfigMap, MultipleOwnerDependentCustomResource> { public static final String RESOURCE_NAME = "test1"; @@ -33,14 +32,10 @@ protected ConfigMap desired(MultipleOwnerDependentCustomResource primary, var data = cm.map(ConfigMap::getData).orElse(new HashMap<>()); data.put(primary.getSpec().getValue(), primary.getSpec().getValue()); - return new ConfigMapBuilder() - .withNewMetadata() - .withName(RESOURCE_NAME) + return new ConfigMapBuilder().withNewMetadata().withName(RESOURCE_NAME) .withNamespace(primary.getMetadata().getNamespace()) .withOwnerReferences(cm.map(c -> c.getMetadata().getOwnerReferences()).orElse(List.of())) - .endMetadata() - .withData(data) - .build(); + .endMetadata().withData(data).build(); } // need to change this since owner reference is present only for the creator primary resource. diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentCustomResource.java index d84e1bf5db..706016ad88 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentCustomResource.java @@ -10,7 +10,6 @@ @Version("v1") @ShortNames("mod") public class MultipleOwnerDependentCustomResource - extends CustomResource<MultipleOwnerDependentSpec, Void> - implements Namespaced { + extends CustomResource<MultipleOwnerDependentSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentReconciler.java index b4c01cb6b9..5f03d31274 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/multipleupdateondependent/MultipleOwnerDependentReconciler.java @@ -6,13 +6,10 @@ import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider; -@Workflow(dependents = { - @Dependent(type = MultipleOwnerDependentConfigMap.class) -}) +@Workflow(dependents = {@Dependent(type = MultipleOwnerDependentConfigMap.class)}) @ControllerConfiguration() public class MultipleOwnerDependentReconciler - implements Reconciler<MultipleOwnerDependentCustomResource>, - TestExecutionInfoProvider { + implements Reconciler<MultipleOwnerDependentCustomResource>, TestExecutionInfoProvider { private final AtomicInteger numberOfExecutions = new AtomicInteger(0); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primaryindexer/DependentPrimaryIndexerIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primaryindexer/DependentPrimaryIndexerIT.java index 16bb0d46a7..f423958c78 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primaryindexer/DependentPrimaryIndexerIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primaryindexer/DependentPrimaryIndexerIT.java @@ -7,7 +7,6 @@ public class DependentPrimaryIndexerIT extends PrimaryIndexerIT { protected LocallyRunOperatorExtension buildOperator() { return LocallyRunOperatorExtension.builder() - .withReconciler(new DependentPrimaryIndexerTestReconciler()) - .build(); + .withReconciler(new DependentPrimaryIndexerTestReconciler()).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primaryindexer/DependentPrimaryIndexerTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primaryindexer/DependentPrimaryIndexerTestReconciler.java index bb97a32cf9..7a796da7c9 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primaryindexer/DependentPrimaryIndexerTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primaryindexer/DependentPrimaryIndexerTestReconciler.java @@ -26,8 +26,7 @@ type = DependentPrimaryIndexerTestReconciler.ReadOnlyConfigMapDependent.class)) @ControllerConfiguration public class DependentPrimaryIndexerTestReconciler extends AbstractPrimaryIndexerTestReconciler - implements - Reconciler<PrimaryIndexerTestCustomResource> { + implements Reconciler<PrimaryIndexerTestCustomResource> { public static final String CONFIG_MAP_EVENT_SOURCE = "configMapEventSource"; @@ -39,17 +38,13 @@ public List<EventSource<?, PrimaryIndexerTestCustomResource>> prepareEventSource cache.addIndexer(CONFIG_MAP_RELATION_INDEXER, indexer); InformerEventSource<ConfigMap, PrimaryIndexerTestCustomResource> es = - new InformerEventSource<>( - InformerEventSourceConfiguration - .from(ConfigMap.class, PrimaryIndexerTestCustomResource.class) - .withName(CONFIG_MAP_EVENT_SOURCE) - .withSecondaryToPrimaryMapper(resource -> cache - .byIndex(CONFIG_MAP_RELATION_INDEXER, resource.getMetadata().getName()) - .stream() - .map(ResourceID::fromResource) - .collect(Collectors.toSet())) - .build(), - context); + new InformerEventSource<>(InformerEventSourceConfiguration + .from(ConfigMap.class, PrimaryIndexerTestCustomResource.class) + .withName(CONFIG_MAP_EVENT_SOURCE) + .withSecondaryToPrimaryMapper(resource -> cache + .byIndex(CONFIG_MAP_RELATION_INDEXER, resource.getMetadata().getName()).stream() + .map(ResourceID::fromResource).collect(Collectors.toSet())) + .build(), context); return List.of(es); } @@ -64,12 +59,8 @@ public ReadOnlyConfigMapDependent() { @Override protected ConfigMap desired(PrimaryIndexerTestCustomResource primary, Context<PrimaryIndexerTestCustomResource> context) { - return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(CONFIG_MAP_NAME) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .build(); + return new ConfigMapBuilder().withMetadata(new ObjectMetaBuilder().withName(CONFIG_MAP_NAME) + .withNamespace(primary.getMetadata().getNamespace()).build()).build(); } } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/ConfigMapDependent.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/ConfigMapDependent.java index c9b85acc69..3083d70db9 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/ConfigMapDependent.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/ConfigMapDependent.java @@ -6,8 +6,8 @@ import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource; -public class ConfigMapDependent extends - KubernetesDependentResource<ConfigMap, PrimaryToSecondaryDependentCustomResource> { +public class ConfigMapDependent + extends KubernetesDependentResource<ConfigMap, PrimaryToSecondaryDependentCustomResource> { public static final String TEST_CONFIG_MAP_NAME = "testconfigmap"; @@ -18,11 +18,8 @@ public ConfigMapDependent() { @Override protected ConfigMap desired(PrimaryToSecondaryDependentCustomResource primary, Context<PrimaryToSecondaryDependentCustomResource> context) { - return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(TEST_CONFIG_MAP_NAME) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) + return new ConfigMapBuilder().withMetadata(new ObjectMetaBuilder() + .withName(TEST_CONFIG_MAP_NAME).withNamespace(primary.getMetadata().getNamespace()).build()) .build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/ConfigMapReconcilePrecondition.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/ConfigMapReconcilePrecondition.java index ab4ba62edf..7b543c6061 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/ConfigMapReconcilePrecondition.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/ConfigMapReconcilePrecondition.java @@ -18,7 +18,6 @@ public boolean isMet( return dependentResource.getSecondaryResource(primary, context).map(cm -> { var data = cm.getData().get(PrimaryToSecondaryDependentReconciler.DATA_KEY); return data != null && !data.equals(DO_NOT_RECONCILE); - }) - .orElse(false); + }).orElse(false); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/PrimaryToSecondaryDependentCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/PrimaryToSecondaryDependentCustomResource.java index 8be9ecf5c6..420d421ccc 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/PrimaryToSecondaryDependentCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/PrimaryToSecondaryDependentCustomResource.java @@ -10,6 +10,5 @@ @Version("v1") @ShortNames("ptsd") public class PrimaryToSecondaryDependentCustomResource - extends CustomResource<PrimaryToSecondaryDependentSpec, Void> - implements Namespaced { + extends CustomResource<PrimaryToSecondaryDependentSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/PrimaryToSecondaryDependentIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/PrimaryToSecondaryDependentIT.java index 681c57e0d1..ccaaa76480 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/PrimaryToSecondaryDependentIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/PrimaryToSecondaryDependentIT.java @@ -24,10 +24,8 @@ class PrimaryToSecondaryDependentIT { public static final String TEST_DATA = "testData"; public - @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new PrimaryToSecondaryDependentReconciler()) - .build(); + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new PrimaryToSecondaryDependentReconciler()).build(); @Test void testPrimaryToSecondaryInDependentResources() { @@ -54,9 +52,7 @@ void testPrimaryToSecondaryInDependentResources() { PrimaryToSecondaryDependentCustomResource testCustomResource() { var res = new PrimaryToSecondaryDependentCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_CR_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_CR_NAME).build()); res.setSpec(new PrimaryToSecondaryDependentSpec()); res.getSpec().setConfigMapName(TEST_CONFIG_MAP_NAME); return res; @@ -64,9 +60,7 @@ PrimaryToSecondaryDependentCustomResource testCustomResource() { ConfigMap configMap(String data) { var cm = new ConfigMap(); - cm.setMetadata(new ObjectMetaBuilder() - .withName(TEST_CONFIG_MAP_NAME) - .build()); + cm.setMetadata(new ObjectMetaBuilder().withName(TEST_CONFIG_MAP_NAME).build()); cm.setData(Map.of(DATA_KEY, data)); return cm; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/PrimaryToSecondaryDependentReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/PrimaryToSecondaryDependentReconciler.java index 76e2015be8..1da7a2fcc0 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/PrimaryToSecondaryDependentReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/PrimaryToSecondaryDependentReconciler.java @@ -23,10 +23,10 @@ * Note that this is usually just used with read only resources. So it has limited usage, one reason * to use it is to have nice condition on that resource within a workflow. */ -@Workflow(dependents = {@Dependent(type = ConfigMapDependent.class, - name = CONFIG_MAP, - reconcilePrecondition = ConfigMapReconcilePrecondition.class, - useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE), +@Workflow(dependents = { + @Dependent(type = ConfigMapDependent.class, name = CONFIG_MAP, + reconcilePrecondition = ConfigMapReconcilePrecondition.class, + useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE), @Dependent(type = SecretDependent.class, dependsOn = CONFIG_MAP)}) @ControllerConfiguration() public class PrimaryToSecondaryDependentReconciler @@ -77,11 +77,10 @@ public List<EventSource<?, PrimaryToSecondaryDependentCustomResource>> prepareEv // the index is used to trigger reconciliation of related custom resources if config map // changes .withSecondaryToPrimaryMapper(cm -> context.getPrimaryCache() - .byIndex(CONFIG_MAP_INDEX, indexKey(cm.getMetadata().getName(), - cm.getMetadata().getNamespace())) + .byIndex(CONFIG_MAP_INDEX, + indexKey(cm.getMetadata().getName(), cm.getMetadata().getNamespace())) .stream().map(ResourceID::fromResource).collect(Collectors.toSet())) - .build(), - context); + .build(), context); return List.of(es); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/SecretDependent.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/SecretDependent.java index aa9470676d..caf701ced8 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/SecretDependent.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/primarytosecondaydependent/SecretDependent.java @@ -21,12 +21,10 @@ public SecretDependent() { protected Secret desired(PrimaryToSecondaryDependentCustomResource primary, Context<PrimaryToSecondaryDependentCustomResource> context) { Secret secret = new Secret(); - secret.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); - secret.setData(Map.of(DATA_KEY, context.getSecondaryResource(ConfigMap.class) - .orElseThrow().getData().get(DATA_KEY))); + secret.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); + secret.setData(Map.of(DATA_KEY, + context.getSecondaryResource(ConfigMap.class).orElseThrow().getData().get(DATA_KEY))); return secret; } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/ConfigMapDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/ConfigMapDependentResource.java index b7e69febd1..5e26e412c6 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/ConfigMapDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/ConfigMapDependentResource.java @@ -24,13 +24,10 @@ public ConfigMapDependentResource() { protected ConfigMap desired(RestartTestCustomResource primary, Context<RestartTestCustomResource> context) { return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withLabels(Map.of("app", "restart-test")) + .withMetadata(new ObjectMetaBuilder().withLabels(Map.of("app", "restart-test")) .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .withData(Map.of(DATA_KEY, primary.getMetadata().getName())) - .build(); + .withNamespace(primary.getMetadata().getNamespace()).build()) + .withData(Map.of(DATA_KEY, primary.getMetadata().getName())).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/OperatorRestartIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/OperatorRestartIT.java index db51c81081..1166e16ef2 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/OperatorRestartIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/OperatorRestartIT.java @@ -49,9 +49,7 @@ void reconcile() { RestartTestCustomResource testCustomResource() { RestartTestCustomResource cr = new RestartTestCustomResource(); - cr.setMetadata(new ObjectMetaBuilder() - .withName("test1") - .build()); + cr.setMetadata(new ObjectMetaBuilder().withName("test1").build()); return cr; } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/RestartTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/RestartTestCustomResource.java index 6f9c08251d..fbde61464a 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/RestartTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/RestartTestCustomResource.java @@ -9,7 +9,5 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("rt") -public class RestartTestCustomResource - extends CustomResource<Void, Void> - implements Namespaced { +public class RestartTestCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/RestartTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/RestartTestReconciler.java index 6f59c29dc8..7c8df946fc 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/RestartTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/restart/RestartTestReconciler.java @@ -14,8 +14,7 @@ public class RestartTestReconciler private final AtomicInteger numberOfExecutions = new AtomicInteger(0); @Override - public UpdateControl<RestartTestCustomResource> reconcile( - RestartTestCustomResource resource, + public UpdateControl<RestartTestCustomResource> reconcile(RestartTestCustomResource resource, Context<RestartTestCustomResource> context) { numberOfExecutions.addAndGet(1); return UpdateControl.noUpdate(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceDependentResource.java index a88fa14463..b2cee876fa 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceDependentResource.java @@ -41,14 +41,8 @@ public Matcher.Result<Service> match(Service actualResource, ServiceStrictMatcherTestCustomResource primary, Context<ServiceStrictMatcherTestCustomResource> context) { return GenericKubernetesResourceMatcher.match(this, actualResource, primary, context, false, - false, - "/spec/ports", - "/spec/clusterIP", - "/spec/clusterIPs", - "/spec/externalTrafficPolicy", - "/spec/internalTrafficPolicy", - "/spec/ipFamilies", - "/spec/ipFamilyPolicy", + false, "/spec/ports", "/spec/clusterIP", "/spec/clusterIPs", "/spec/externalTrafficPolicy", + "/spec/internalTrafficPolicy", "/spec/ipFamilies", "/spec/ipFamilyPolicy", "/spec/sessionAffinity"); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceStrictMatcherIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceStrictMatcherIT.java index 7d1b306210..94f194d7ed 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceStrictMatcherIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceStrictMatcherIT.java @@ -14,9 +14,8 @@ public class ServiceStrictMatcherIT { @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new ServiceStrictMatcherTestReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new ServiceStrictMatcherTestReconciler()).build(); @Test @@ -44,9 +43,7 @@ ServiceStrictMatcherTestCustomResource testResource() { var res = new ServiceStrictMatcherTestCustomResource(); res.setSpec(new ServiceStrictMatcherSpec()); res.getSpec().setValue(1); - res.setMetadata(new ObjectMetaBuilder() - .withName("test1") - .build()); + res.setMetadata(new ObjectMetaBuilder().withName("test1").build()); return res; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceStrictMatcherTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceStrictMatcherTestCustomResource.java index 6e05628633..6682852ea1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceStrictMatcherTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/servicestrictmatcher/ServiceStrictMatcherTestCustomResource.java @@ -10,7 +10,6 @@ @Version("v1") @ShortNames("ssm") public class ServiceStrictMatcherTestCustomResource - extends CustomResource<ServiceStrictMatcherSpec, Void> - implements Namespaced { + extends CustomResource<ServiceStrictMatcherSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/specialresourcesdependent/ServiceAccountDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/specialresourcesdependent/ServiceAccountDependentResource.java index b5f8cd3225..3e483b6b34 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/specialresourcesdependent/ServiceAccountDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/specialresourcesdependent/ServiceAccountDependentResource.java @@ -9,8 +9,8 @@ import static io.javaoperatorsdk.operator.dependent.specialresourcesdependent.SpecialResourceSpec.INITIAL_VALUE; @KubernetesDependent -public class ServiceAccountDependentResource extends - CRUDKubernetesDependentResource<ServiceAccount, SpecialResourceCustomResource> { +public class ServiceAccountDependentResource + extends CRUDKubernetesDependentResource<ServiceAccount, SpecialResourceCustomResource> { public ServiceAccountDependentResource() { super(ServiceAccount.class); @@ -20,10 +20,8 @@ public ServiceAccountDependentResource() { protected ServiceAccount desired(SpecialResourceCustomResource primary, Context<SpecialResourceCustomResource> context) { ServiceAccount res = new ServiceAccount(); - res.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); res.setAutomountServiceAccountToken(INITIAL_VALUE.equals(primary.getSpec().getValue())); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/specialresourcesdependent/SpecialResourceTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/specialresourcesdependent/SpecialResourceTestReconciler.java index 7d2720c5c2..41aeefb749 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/specialresourcesdependent/SpecialResourceTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/specialresourcesdependent/SpecialResourceTestReconciler.java @@ -7,21 +7,16 @@ import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider; -@Workflow(dependents = { - @Dependent(type = ServiceAccountDependentResource.class), -}) -@ControllerConfiguration( - informer = @Informer(namespaces = Constants.WATCH_CURRENT_NAMESPACE)) +@Workflow(dependents = {@Dependent(type = ServiceAccountDependentResource.class),}) +@ControllerConfiguration(informer = @Informer(namespaces = Constants.WATCH_CURRENT_NAMESPACE)) public class SpecialResourceTestReconciler - implements Reconciler<SpecialResourceCustomResource>, - TestExecutionInfoProvider { + implements Reconciler<SpecialResourceCustomResource>, TestExecutionInfoProvider { private final AtomicInteger numberOfExecutions = new AtomicInteger(0); @Override public UpdateControl<SpecialResourceCustomResource> reconcile( - SpecialResourceCustomResource resource, - Context<SpecialResourceCustomResource> context) { + SpecialResourceCustomResource resource, Context<SpecialResourceCustomResource> context) { numberOfExecutions.addAndGet(1); return UpdateControl.noUpdate(); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/specialresourcesdependent/SpecialResourcesDependentIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/specialresourcesdependent/SpecialResourcesDependentIT.java index 89cd94e51d..041f07b511 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/specialresourcesdependent/SpecialResourcesDependentIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/specialresourcesdependent/SpecialResourcesDependentIT.java @@ -21,9 +21,8 @@ public class SpecialResourcesDependentIT { public static final String RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder().withReconciler(new SpecialResourceTestReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new SpecialResourceTestReconciler()).build(); @Test void specialCRUDReconciler() { @@ -48,9 +47,7 @@ void specialCRUDReconciler() { SpecialResourceCustomResource testResource() { SpecialResourceCustomResource res = new SpecialResourceCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(RESOURCE_NAME).build()); res.setSpec(new SpecialResourceSpec()); res.getSpec().setValue(INITIAL_VALUE); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/SSALegacyMatcherCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/SSALegacyMatcherCustomResource.java index fe58579035..6b73954f4f 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/SSALegacyMatcherCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/SSALegacyMatcherCustomResource.java @@ -9,8 +9,7 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("slm") -public class SSALegacyMatcherCustomResource - extends CustomResource<SSALegacyMatcherSpec, Void> +public class SSALegacyMatcherCustomResource extends CustomResource<SSALegacyMatcherSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/SSALegacyMatcherReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/SSALegacyMatcherReconciler.java index 179496f1b9..29c97b1400 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/SSALegacyMatcherReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/SSALegacyMatcherReconciler.java @@ -7,15 +7,13 @@ @Workflow(dependents = {@Dependent(type = ServiceDependentResource.class)}) @ControllerConfiguration -public class SSALegacyMatcherReconciler - implements Reconciler<SSALegacyMatcherCustomResource> { +public class SSALegacyMatcherReconciler implements Reconciler<SSALegacyMatcherCustomResource> { private final AtomicInteger numberOfExecutions = new AtomicInteger(0); @Override public UpdateControl<SSALegacyMatcherCustomResource> reconcile( - SSALegacyMatcherCustomResource resource, - Context<SSALegacyMatcherCustomResource> context) { + SSALegacyMatcherCustomResource resource, Context<SSALegacyMatcherCustomResource> context) { numberOfExecutions.addAndGet(1); return UpdateControl.noUpdate(); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/SSAWithLegacyMatcherIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/SSAWithLegacyMatcherIT.java index 090f60c7d5..f7036a0c6d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/SSAWithLegacyMatcherIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/SSAWithLegacyMatcherIT.java @@ -15,9 +15,8 @@ public class SSAWithLegacyMatcherIT { public static final String TEST_RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder().withReconciler(new SSALegacyMatcherReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new SSALegacyMatcherReconciler()).build(); @Test void matchesDependentWithLegacyMatcher() { @@ -38,9 +37,7 @@ void matchesDependentWithLegacyMatcher() { SSALegacyMatcherCustomResource testResource() { SSALegacyMatcherCustomResource res = new SSALegacyMatcherCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); res.setSpec(new SSALegacyMatcherSpec()); res.getSpec().setValue("initial-value"); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/ServiceDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/ServiceDependentResource.java index 98036036cc..496287d179 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/ServiceDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/ssalegacymatcher/ServiceDependentResource.java @@ -41,8 +41,8 @@ public Result<Service> match(Service actualResource, SSALegacyMatcherCustomResou Context<SSALegacyMatcherCustomResource> context) { var desired = desired(primary, context); - return GenericKubernetesResourceMatcher.match(this, actualResource, primary, context, - false, false); + return GenericKubernetesResourceMatcher.match(this, actualResource, primary, context, false, + false); } // override just to check the exec count diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentResourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentResourceIT.java index 19853842e7..7617be921a 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentResourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentResourceIT.java @@ -21,9 +21,8 @@ public class StandaloneDependentResourceIT { public static final String DEPENDENT_TEST_NAME = "dependent-test1"; @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new StandaloneDependentTestReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new StandaloneDependentTestReconciler()).build(); @Test void dependentResourceManagesDeployment() { @@ -63,23 +62,13 @@ void executeUpdateForTestingCacheUpdateForGetResource() { } void awaitForDeploymentReadyReplicas(int expectedReplicaCount) { - await() - .pollInterval(Duration.ofMillis(300)) - .atMost(Duration.ofSeconds(50)) - .until( - () -> { - var deployment = - operator - .getKubernetesClient() - .resources(Deployment.class) - .inNamespace(operator.getNamespace()) - .withName(DEPENDENT_TEST_NAME) - .get(); - return deployment != null - && deployment.getStatus() != null - && deployment.getStatus().getReadyReplicas() != null - && deployment.getStatus().getReadyReplicas() == expectedReplicaCount; - }); + await().pollInterval(Duration.ofMillis(300)).atMost(Duration.ofSeconds(50)).until(() -> { + var deployment = operator.getKubernetesClient().resources(Deployment.class) + .inNamespace(operator.getNamespace()).withName(DEPENDENT_TEST_NAME).get(); + return deployment != null && deployment.getStatus() != null + && deployment.getStatus().getReadyReplicas() != null + && deployment.getStatus().getReadyReplicas() == expectedReplicaCount; + }); } Cloner cloner() { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentTestCustomResource.java index 3f2d2c9c2e..f6413449e2 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentTestCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentTestCustomResource.java @@ -10,7 +10,5 @@ @Version("v1") @ShortNames("sdt") public class StandaloneDependentTestCustomResource - extends - CustomResource<StandaloneDependentTestCustomResourceSpec, Void> - implements Namespaced { + extends CustomResource<StandaloneDependentTestCustomResourceSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentTestReconciler.java index e10a20a93c..5f5b314fa4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/standalonedependent/StandaloneDependentTestReconciler.java @@ -30,8 +30,7 @@ public StandaloneDependentTestReconciler() { @Override public List<EventSource<?, StandaloneDependentTestCustomResource>> prepareEventSources( EventSourceContext<StandaloneDependentTestCustomResource> context) { - return EventSourceUtils.dependentEventSources(context, - deploymentDependent); + return EventSourceUtils.dependentEventSources(context, deploymentDependent); } @Override @@ -67,8 +66,8 @@ public boolean isErrorOccurred() { return errorOccurred; } - private static class DeploymentDependentResource extends - CRUDKubernetesDependentResource<Deployment, StandaloneDependentTestCustomResource> { + private static class DeploymentDependentResource + extends CRUDKubernetesDependentResource<Deployment, StandaloneDependentTestCustomResource> { public DeploymentDependentResource() { super(Deployment.class); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerCustomResource.java index e500206207..f537a5fcb4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerCustomResource.java @@ -8,7 +8,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") public class StatefulSetDesiredSanitizerCustomResource - extends CustomResource<StatefulSetDesiredSanitizerSpec, Void> - implements Namespaced { + extends CustomResource<StatefulSetDesiredSanitizerSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerDependentResource.java index 98ac4897d7..0f27106d10 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerDependentResource.java @@ -6,8 +6,7 @@ import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource; -public class StatefulSetDesiredSanitizerDependentResource - extends +public class StatefulSetDesiredSanitizerDependentResource extends CRUDKubernetesDependentResource<StatefulSet, StatefulSetDesiredSanitizerCustomResource> { public static volatile Boolean nonMatchedAtLeastOnce; @@ -19,13 +18,10 @@ public StatefulSetDesiredSanitizerDependentResource() { @Override protected StatefulSet desired(StatefulSetDesiredSanitizerCustomResource primary, Context<StatefulSetDesiredSanitizerCustomResource> context) { - var template = - ReconcilerUtils.loadYaml(StatefulSet.class, getClass(), - "/io/javaoperatorsdk/operator/statefulset.yaml"); - template.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + var template = ReconcilerUtils.loadYaml(StatefulSet.class, getClass(), + "/io/javaoperatorsdk/operator/statefulset.yaml"); + template.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); return template; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerIT.java index 49c08f7a8b..587d3ef857 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/dependent/statefulsetdesiredsanitizer/StatefulSetDesiredSanitizerIT.java @@ -17,10 +17,8 @@ public class StatefulSetDesiredSanitizerIT { public static final String TEST_1 = "test1"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new StatefulSetDesiredSanitizerReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new StatefulSetDesiredSanitizerReconciler()).build(); @Test void testSSAMatcher() { @@ -41,9 +39,7 @@ void testSSAMatcher() { StatefulSetDesiredSanitizerCustomResource testResource() { var res = new StatefulSetDesiredSanitizerCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_1) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_1).build()); res.setSpec(new StatefulSetDesiredSanitizerSpec()); res.getSpec().setValue("initial value"); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/support/ExternalResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/support/ExternalResource.java index dd3e5ab113..a4630b28e8 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/support/ExternalResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/support/ExternalResource.java @@ -55,13 +55,12 @@ public ResourceID toResourceID() { } public static String toExternalResourceId(HasMetadata primary, int i) { - return primary.getMetadata().getName() + EXTERNAL_RESOURCE_NAME_DELIMITER + - primary.getMetadata().getNamespace() + - EXTERNAL_RESOURCE_NAME_DELIMITER + i; + return primary.getMetadata().getName() + EXTERNAL_RESOURCE_NAME_DELIMITER + + primary.getMetadata().getNamespace() + EXTERNAL_RESOURCE_NAME_DELIMITER + i; } public static String toExternalResourceId(HasMetadata primary) { - return primary.getMetadata().getName() + EXTERNAL_RESOURCE_NAME_DELIMITER + - primary.getMetadata().getNamespace(); + return primary.getMetadata().getName() + EXTERNAL_RESOURCE_NAME_DELIMITER + + primary.getMetadata().getNamespace(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/support/TestUtils.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/support/TestUtils.java index 952ad75b19..0dc716ca16 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/support/TestUtils.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/support/TestUtils.java @@ -19,12 +19,8 @@ public static TestCustomResource testCustomResource() { public static TestCustomResource testCustomResource(String uid) { TestCustomResource resource = new TestCustomResource(); - resource.setMetadata( - new ObjectMetaBuilder() - .withName(TEST_CUSTOM_RESOURCE_NAME) - .withUid(uid) - .withGeneration(1L) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(TEST_CUSTOM_RESOURCE_NAME).withUid(uid) + .withGeneration(1L).build()); resource.getMetadata().setAnnotations(new HashMap<>()); resource.setKind("CustomService"); resource.setSpec(new TestCustomResourceSpec()); @@ -36,10 +32,8 @@ public static TestCustomResource testCustomResource(String uid) { public static TestCustomResource testCustomResourceWithPrefix(String id) { TestCustomResource resource = new TestCustomResource(); - resource.setMetadata( - new ObjectMetaBuilder() - .withName(TEST_CUSTOM_RESOURCE_PREFIX + id) - .build()); + resource + .setMetadata(new ObjectMetaBuilder().withName(TEST_CUSTOM_RESOURCE_PREFIX + id).build()); resource.setKind("CustomService"); resource.setSpec(new TestCustomResourceSpec()); resource.getSpec().setConfigMapName("test-config-map-" + id); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/ComplexWorkflowIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/ComplexWorkflowIT.java index cf7cdac004..687797660e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/ComplexWorkflowIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/ComplexWorkflowIT.java @@ -24,30 +24,27 @@ class ComplexWorkflowIT { @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new ComplexWorkflowReconciler()) - .build(); + LocallyRunOperatorExtension.builder().withReconciler(new ComplexWorkflowReconciler()).build(); @Test void successfullyReconciles() { operator.create(testResource()); - await().atMost(Duration.ofSeconds(90)) - .untilAsserted(() -> { - var res = operator.get(ComplexWorkflowCustomResource.class, TEST_RESOURCE_NAME); - assertThat(res.getStatus()).isNotNull(); - assertThat(res.getStatus().getStatus()) - .isEqualTo(ComplexWorkflowReconciler.RECONCILE_STATUS.READY); - }); + await().atMost(Duration.ofSeconds(90)).untilAsserted(() -> { + var res = operator.get(ComplexWorkflowCustomResource.class, TEST_RESOURCE_NAME); + assertThat(res.getStatus()).isNotNull(); + assertThat(res.getStatus().getStatus()) + .isEqualTo(ComplexWorkflowReconciler.RECONCILE_STATUS.READY); + }); - var firstStatefulSet = operator.get(StatefulSet.class, String.format("%s-%s", - FirstStatefulSet.DISCRIMINATOR_PREFIX, TEST_RESOURCE_NAME)); - var secondStatefulSet = operator.get(StatefulSet.class, String.format("%s-%s", - SecondStatefulSet.DISCRIMINATOR_PREFIX, TEST_RESOURCE_NAME)); - var firstService = operator.get(Service.class, String.format("%s-%s", - FirstService.DISCRIMINATOR_PREFIX, TEST_RESOURCE_NAME)); - var secondService = operator.get(Service.class, String.format("%s-%s", - SecondService.DISCRIMINATOR_PREFIX, TEST_RESOURCE_NAME)); + var firstStatefulSet = operator.get(StatefulSet.class, + String.format("%s-%s", FirstStatefulSet.DISCRIMINATOR_PREFIX, TEST_RESOURCE_NAME)); + var secondStatefulSet = operator.get(StatefulSet.class, + String.format("%s-%s", SecondStatefulSet.DISCRIMINATOR_PREFIX, TEST_RESOURCE_NAME)); + var firstService = operator.get(Service.class, + String.format("%s-%s", FirstService.DISCRIMINATOR_PREFIX, TEST_RESOURCE_NAME)); + var secondService = operator.get(Service.class, + String.format("%s-%s", SecondService.DISCRIMINATOR_PREFIX, TEST_RESOURCE_NAME)); assertThat(firstService).isNotNull(); assertThat(secondService).isNotNull(); assertThat(firstStatefulSet).isNotNull(); @@ -58,9 +55,7 @@ void successfullyReconciles() { ComplexWorkflowCustomResource testResource() { var resource = new ComplexWorkflowCustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); resource.setSpec(new ComplexWorkflowSpec()); resource.getSpec().setProjectId(TEST_RESOURCE_NAME); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/ComplexWorkflowReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/ComplexWorkflowReconciler.java index d7e3fc56aa..10c35aae27 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/ComplexWorkflowReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/ComplexWorkflowReconciler.java @@ -25,15 +25,12 @@ @Dependent(name = "second-svc", type = SecondService.class, useEventSourceWithName = SERVICE_EVENT_SOURCE_NAME), @Dependent(name = "first", type = FirstStatefulSet.class, - useEventSourceWithName = STATEFUL_SET_EVENT_SOURCE_NAME, - dependsOn = {"first-svc"}, + useEventSourceWithName = STATEFUL_SET_EVENT_SOURCE_NAME, dependsOn = {"first-svc"}, readyPostcondition = StatefulSetReadyCondition.class), - @Dependent(name = "second", - type = SecondStatefulSet.class, + @Dependent(name = "second", type = SecondStatefulSet.class, useEventSourceWithName = STATEFUL_SET_EVENT_SOURCE_NAME, dependsOn = {"second-svc", "first"}, - readyPostcondition = StatefulSetReadyCondition.class), -}) + readyPostcondition = StatefulSetReadyCondition.class),}) @ControllerConfiguration(name = "project-operator") public class ComplexWorkflowReconciler implements Reconciler<ComplexWorkflowCustomResource> { @@ -42,11 +39,10 @@ public class ComplexWorkflowReconciler implements Reconciler<ComplexWorkflowCust @Override public UpdateControl<ComplexWorkflowCustomResource> reconcile( - ComplexWorkflowCustomResource resource, - Context<ComplexWorkflowCustomResource> context) throws Exception { + ComplexWorkflowCustomResource resource, Context<ComplexWorkflowCustomResource> context) + throws Exception { var ready = context.managedWorkflowAndDependentResourceContext().getWorkflowReconcileResult() - .orElseThrow() - .allDependentResourcesReady(); + .orElseThrow().allDependentResourcesReady(); var status = Objects.requireNonNullElseGet(resource.getStatus(), ComplexWorkflowStatus::new); status.setStatus(ready ? RECONCILE_STATUS.READY : RECONCILE_STATUS.NOT_READY); @@ -59,19 +55,13 @@ public UpdateControl<ComplexWorkflowCustomResource> reconcile( public List<EventSource<?, ComplexWorkflowCustomResource>> prepareEventSources( EventSourceContext<ComplexWorkflowCustomResource> context) { InformerEventSource<Service, ComplexWorkflowCustomResource> serviceEventSource = - new InformerEventSource<>( - InformerEventSourceConfiguration - .from(Service.class, ComplexWorkflowCustomResource.class) - .withName(SERVICE_EVENT_SOURCE_NAME) - .build(), - context); + new InformerEventSource<>(InformerEventSourceConfiguration + .from(Service.class, ComplexWorkflowCustomResource.class) + .withName(SERVICE_EVENT_SOURCE_NAME).build(), context); InformerEventSource<StatefulSet, ComplexWorkflowCustomResource> statefulSetEventSource = - new InformerEventSource<>( - InformerEventSourceConfiguration - .from(StatefulSet.class, ComplexWorkflowCustomResource.class) - .withName(STATEFUL_SET_EVENT_SOURCE_NAME) - .build(), - context); + new InformerEventSource<>(InformerEventSourceConfiguration + .from(StatefulSet.class, ComplexWorkflowCustomResource.class) + .withName(STATEFUL_SET_EVENT_SOURCE_NAME).build(), context); return List.of(serviceEventSource, statefulSetEventSource); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/BaseDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/BaseDependentResource.java index e6bd8462cb..8d6bdddbfe 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/BaseDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/BaseDependentResource.java @@ -22,9 +22,7 @@ protected String name(ComplexWorkflowCustomResource primary) { protected ObjectMetaBuilder createMeta(ComplexWorkflowCustomResource primary) { String name = name(primary); - return new ObjectMetaBuilder() - .withName(name) - .withNamespace(primary.getMetadata().getNamespace()) - .addToLabels(K8S_NAME, name); + return new ObjectMetaBuilder().withName(name) + .withNamespace(primary.getMetadata().getNamespace()).addToLabels(K8S_NAME, name); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/BaseService.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/BaseService.java index 75a4d7ee03..d5e97f257b 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/BaseService.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/BaseService.java @@ -20,11 +20,7 @@ protected Service desired(ComplexWorkflowCustomResource primary, var template = ReconcilerUtils.loadYaml(Service.class, getClass(), "/io/javaoperatorsdk/operator/workflow/complexdependent/service.yaml"); - return new ServiceBuilder(template) - .withMetadata(createMeta(primary).build()) - .editOrNewSpec() - .withSelector(Map.of(K8S_NAME, name(primary))) - .endSpec() - .build(); + return new ServiceBuilder(template).withMetadata(createMeta(primary).build()).editOrNewSpec() + .withSelector(Map.of(K8S_NAME, name(primary))).endSpec().build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/BaseStatefulSet.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/BaseStatefulSet.java index fe05db1c1b..b22ed170b3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/BaseStatefulSet.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/BaseStatefulSet.java @@ -21,22 +21,10 @@ protected StatefulSet desired(ComplexWorkflowCustomResource primary, var name = name(primary); var metadata = createMeta(primary).build(); - return new StatefulSetBuilder(template) - .withMetadata(metadata) - .editSpec() - .withServiceName(name) - .editOrNewSelector() - .withMatchLabels(Map.of(K8S_NAME, name)) - .endSelector() - .editTemplate() - .withMetadata(metadata) - .endTemplate() - .editFirstVolumeClaimTemplate() - .editMetadata() - .withLabels(Map.of(K8S_NAME, name)) - .endMetadata() - .endVolumeClaimTemplate() - .endSpec() + return new StatefulSetBuilder(template).withMetadata(metadata).editSpec().withServiceName(name) + .editOrNewSelector().withMatchLabels(Map.of(K8S_NAME, name)).endSelector().editTemplate() + .withMetadata(metadata).endTemplate().editFirstVolumeClaimTemplate().editMetadata() + .withLabels(Map.of(K8S_NAME, name)).endMetadata().endVolumeClaimTemplate().endSpec() .build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/StatefulSetReadyCondition.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/StatefulSetReadyCondition.java index 1116bd7f1d..d8dcade93b 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/StatefulSetReadyCondition.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/complexdependent/dependent/StatefulSetReadyCondition.java @@ -12,13 +12,11 @@ public class StatefulSetReadyCondition @Override public boolean isMet( DependentResource<StatefulSet, ComplexWorkflowCustomResource> dependentResource, - ComplexWorkflowCustomResource primary, - Context<ComplexWorkflowCustomResource> context) { + ComplexWorkflowCustomResource primary, Context<ComplexWorkflowCustomResource> context) { return dependentResource.getSecondaryResource(primary, context).map(secondary -> { var readyReplicas = secondary.getStatus().getReadyReplicas(); return readyReplicas != null && readyReplicas > 0; - }) - .orElse(false); + }).orElse(false); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationConditionIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationConditionIT.java index 85cb3aa6c5..fe3036588a 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationConditionIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationConditionIT.java @@ -20,17 +20,15 @@ public class CRDPresentActivationConditionIT { "crdpresentactivationdependentcustomresources.sample.javaoperatorsdk"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new CRDPresentActivationReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new CRDPresentActivationReconciler()).build(); @Test void resourceCreatedOnlyIfCRDPresent() { // deleted so test can be repeated - extension.getKubernetesClient().resources(CustomResourceDefinition.class) - .withName(CRD_NAME).delete(); + extension.getKubernetesClient().resources(CustomResourceDefinition.class).withName(CRD_NAME) + .delete(); var resource = extension.create(testResource()); @@ -58,9 +56,7 @@ void resourceCreatedOnlyIfCRDPresent() { CRDPresentActivationCustomResource testResource() { var res = new CRDPresentActivationCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_1) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_1).build()); return res; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationCustomResource.java index 5b8dc2f704..8a3f28c2c4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationCustomResource.java @@ -9,8 +9,7 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("crdp") -public class CRDPresentActivationCustomResource - extends CustomResource<Void, Void> +public class CRDPresentActivationCustomResource extends CustomResource<Void, Void> implements Namespaced { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationDependent.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationDependent.java index fdfcda1700..d0eae6e866 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationDependent.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationDependent.java @@ -4,8 +4,7 @@ import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDNoGCKubernetesDependentResource; -public class CRDPresentActivationDependent - extends +public class CRDPresentActivationDependent extends CRUDNoGCKubernetesDependentResource<CRDPresentActivationDependentCustomResource, CRDPresentActivationCustomResource> { public CRDPresentActivationDependent() { @@ -17,10 +16,8 @@ protected CRDPresentActivationDependentCustomResource desired( CRDPresentActivationCustomResource primary, Context<CRDPresentActivationCustomResource> context) { var res = new CRDPresentActivationDependentCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); return res; } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationReconciler.java index 9cc05eaddc..588b4a023b 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/crdpresentactivation/CRDPresentActivationReconciler.java @@ -4,15 +4,12 @@ import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; import io.javaoperatorsdk.operator.processing.dependent.workflow.CRDPresentActivationCondition; -@Workflow(dependents = { - @Dependent(type = CRDPresentActivationDependent.class, - activationCondition = CRDPresentActivationCondition.class), -}) +@Workflow(dependents = {@Dependent(type = CRDPresentActivationDependent.class, + activationCondition = CRDPresentActivationCondition.class),}) // to trigger reconciliation with metadata change @ControllerConfiguration(generationAwareEventProcessing = false) -public class CRDPresentActivationReconciler - implements Reconciler<CRDPresentActivationCustomResource>, - Cleaner<CRDPresentActivationCustomResource> { +public class CRDPresentActivationReconciler implements + Reconciler<CRDPresentActivationCustomResource>, Cleaner<CRDPresentActivationCustomResource> { @Override public UpdateControl<CRDPresentActivationCustomResource> reconcile( diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/ConfigMapDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/ConfigMapDependentResource.java index 0c1bdd5900..2b8121c576 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/ConfigMapDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/ConfigMapDependentResource.java @@ -19,10 +19,8 @@ public ConfigMapDependentResource() { protected ConfigMap desired(GetNonActiveSecondaryCustomResource primary, Context<GetNonActiveSecondaryCustomResource> context) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); return configMap; } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/GetNonActiveSecondaryCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/GetNonActiveSecondaryCustomResource.java index fddcd9fe75..28c5125dc0 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/GetNonActiveSecondaryCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/GetNonActiveSecondaryCustomResource.java @@ -9,8 +9,7 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("gnas") -public class GetNonActiveSecondaryCustomResource - extends CustomResource<Void, Void> +public class GetNonActiveSecondaryCustomResource extends CustomResource<Void, Void> implements Namespaced { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/RouteDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/RouteDependentResource.java index c7d1b9a1b1..84da560770 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/RouteDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/RouteDependentResource.java @@ -17,10 +17,8 @@ protected Route desired(GetNonActiveSecondaryCustomResource primary, Context<GetNonActiveSecondaryCustomResource> context) { // basically does not matter since this should not be called Route route = new Route(); - route.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + route.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); return route; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/WorkflowActivationConditionIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/WorkflowActivationConditionIT.java index c2c073df88..030baedc1b 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/WorkflowActivationConditionIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/WorkflowActivationConditionIT.java @@ -14,10 +14,8 @@ public class WorkflowActivationConditionIT { public static final String TEST_RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(WorkflowActivationConditionReconciler.class) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(WorkflowActivationConditionReconciler.class).build(); @Test void reconciledOnVanillaKubernetesDespiteRouteInWorkflow() { @@ -31,9 +29,7 @@ void reconciledOnVanillaKubernetesDespiteRouteInWorkflow() { private GetNonActiveSecondaryCustomResource testResource() { var res = new GetNonActiveSecondaryCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); return res; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/WorkflowActivationConditionReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/WorkflowActivationConditionReconciler.java index 2d2d39274d..20447c5d3e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/WorkflowActivationConditionReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/getnonactivesecondary/WorkflowActivationConditionReconciler.java @@ -10,11 +10,9 @@ import io.javaoperatorsdk.operator.api.reconciler.Workflow; import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; -@Workflow(dependents = { - @Dependent(type = ConfigMapDependentResource.class), +@Workflow(dependents = {@Dependent(type = ConfigMapDependentResource.class), @Dependent(type = RouteDependentResource.class, - activationCondition = FalseActivationCondition.class) -}) + activationCondition = FalseActivationCondition.class)}) @ControllerConfiguration public class WorkflowActivationConditionReconciler implements Reconciler<GetNonActiveSecondaryCustomResource> { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ConfigMapDependent.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ConfigMapDependent.java index af70b6842a..d34350f608 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ConfigMapDependent.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ConfigMapDependent.java @@ -18,12 +18,8 @@ public ConfigMapDependent() { protected ConfigMap desired(ManagedDependentDefaultDeleteConditionCustomResource primary, Context<ManagedDependentDefaultDeleteConditionCustomResource> context) { - return new ConfigMapBuilder() - .withNewMetadata() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .endMetadata() - .withData(Map.of("key", "val")) - .build(); + return new ConfigMapBuilder().withNewMetadata().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).endMetadata() + .withData(Map.of("key", "val")).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ManagedDependentDefaultDeleteConditionCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ManagedDependentDefaultDeleteConditionCustomResource.java index 01b995c061..f2122a3f57 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ManagedDependentDefaultDeleteConditionCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ManagedDependentDefaultDeleteConditionCustomResource.java @@ -9,7 +9,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("mdcc") -public class ManagedDependentDefaultDeleteConditionCustomResource - extends CustomResource<Void, Void> +public class ManagedDependentDefaultDeleteConditionCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ManagedDependentDefaultDeleteConditionReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ManagedDependentDefaultDeleteConditionReconciler.java index 530f9b8146..642330fd86 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ManagedDependentDefaultDeleteConditionReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ManagedDependentDefaultDeleteConditionReconciler.java @@ -7,11 +7,9 @@ import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; import io.javaoperatorsdk.operator.processing.dependent.workflow.KubernetesResourceDeletedCondition; -@Workflow(dependents = { - @Dependent(name = "ConfigMap", type = ConfigMapDependent.class), +@Workflow(dependents = {@Dependent(name = "ConfigMap", type = ConfigMapDependent.class), @Dependent(type = SecretDependent.class, dependsOn = "ConfigMap", - deletePostcondition = KubernetesResourceDeletedCondition.class) -}) + deletePostcondition = KubernetesResourceDeletedCondition.class)}) @ControllerConfiguration public class ManagedDependentDefaultDeleteConditionReconciler implements Reconciler<ManagedDependentDefaultDeleteConditionCustomResource> { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ManagedDependentDeleteConditionIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ManagedDependentDeleteConditionIT.java index 4d688bf606..bee7c0587c 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ManagedDependentDeleteConditionIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/ManagedDependentDeleteConditionIT.java @@ -20,18 +20,15 @@ public class ManagedDependentDeleteConditionIT { public static final String CUSTOM_FINALIZER = "test/customfinalizer"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withConfigurationService(o -> o.withDefaultNonSSAResource(Set.of())) - .withReconciler(new ManagedDependentDefaultDeleteConditionReconciler()).build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withConfigurationService(o -> o.withDefaultNonSSAResource(Set.of())) + .withReconciler(new ManagedDependentDefaultDeleteConditionReconciler()).build(); @Test void resourceNotDeletedUntilDependentDeleted() { var resource = new ManagedDependentDefaultDeleteConditionCustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withName(RESOURCE_NAME) - .build()); + resource.setMetadata(new ObjectMetaBuilder().withName(RESOURCE_NAME).build()); resource = extension.create(resource); await().timeout(Duration.ofSeconds(300)).untilAsserted(() -> { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/SecretDependent.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/SecretDependent.java index 6add6bf93b..5c4048415b 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/SecretDependent.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/manageddependentdeletecondition/SecretDependent.java @@ -9,8 +9,7 @@ import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDNoGCKubernetesDependentResource; -public class SecretDependent - extends +public class SecretDependent extends CRUDNoGCKubernetesDependentResource<Secret, ManagedDependentDefaultDeleteConditionCustomResource> { public SecretDependent() { @@ -21,11 +20,8 @@ public SecretDependent() { protected Secret desired(ManagedDependentDefaultDeleteConditionCustomResource primary, Context<ManagedDependentDefaultDeleteConditionCustomResource> context) { - return new SecretBuilder() - .withNewMetadata() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .endMetadata() + return new SecretBuilder().withNewMetadata().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).endMetadata() .withData(Map.of("key", new String(Base64.getEncoder().encode("val".getBytes(StandardCharsets.UTF_16))))) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/ConfigMapDependentResource1.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/ConfigMapDependentResource1.java index a3198a3ca3..7eacbc25f1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/ConfigMapDependentResource1.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/ConfigMapDependentResource1.java @@ -10,8 +10,7 @@ import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent; @KubernetesDependent(informer = @Informer(name = "configMapInformer")) -public class ConfigMapDependentResource1 - extends +public class ConfigMapDependentResource1 extends CRUDNoGCKubernetesDependentResource<ConfigMap, MultipleDependentActivationCustomResource> { public static final String DATA_KEY = "data"; @@ -25,10 +24,8 @@ public ConfigMapDependentResource1() { protected ConfigMap desired(MultipleDependentActivationCustomResource primary, Context<MultipleDependentActivationCustomResource> context) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName() + SUFFIX) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName() + SUFFIX) + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap.setData(Map.of(DATA_KEY, primary.getSpec().getValue() + SUFFIX)); return configMap; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/ConfigMapDependentResource2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/ConfigMapDependentResource2.java index 5fcead39a2..ab43e58f17 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/ConfigMapDependentResource2.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/ConfigMapDependentResource2.java @@ -10,8 +10,7 @@ import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent; @KubernetesDependent(informer = @Informer(name = "configMapInformer")) -public class ConfigMapDependentResource2 - extends +public class ConfigMapDependentResource2 extends CRUDNoGCKubernetesDependentResource<ConfigMap, MultipleDependentActivationCustomResource> { public static final String DATA_KEY = "data"; @@ -25,10 +24,8 @@ public ConfigMapDependentResource2() { protected ConfigMap desired(MultipleDependentActivationCustomResource primary, Context<MultipleDependentActivationCustomResource> context) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName() + SUFFIX) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName() + SUFFIX) + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap.setData(Map.of(DATA_KEY, primary.getSpec().getValue() + SUFFIX)); return configMap; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/MultipleDependentActivationCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/MultipleDependentActivationCustomResource.java index 1e99c1c4b1..21b96f3cad 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/MultipleDependentActivationCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/MultipleDependentActivationCustomResource.java @@ -10,8 +10,7 @@ @Version("v1") @ShortNames("mdar") public class MultipleDependentActivationCustomResource - extends CustomResource<MultipleDependentActivationSpec, Void> - implements Namespaced { + extends CustomResource<MultipleDependentActivationSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/MultipleDependentActivationReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/MultipleDependentActivationReconciler.java index 14e3ed9811..5717cb4321 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/MultipleDependentActivationReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/MultipleDependentActivationReconciler.java @@ -10,8 +10,7 @@ activationCondition = ActivationCondition.class), @Dependent(type = ConfigMapDependentResource2.class, activationCondition = ActivationCondition.class), - @Dependent(type = SecretDependentResource.class) -}) + @Dependent(type = SecretDependentResource.class)}) @ControllerConfiguration public class MultipleDependentActivationReconciler implements Reconciler<MultipleDependentActivationCustomResource> { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/MultipleDependentWithActivationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/MultipleDependentWithActivationIT.java index b82fc369f9..0232f620c0 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/MultipleDependentWithActivationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/MultipleDependentWithActivationIT.java @@ -18,10 +18,8 @@ public class MultipleDependentWithActivationIT { public static final String TEST_RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(new MultipleDependentActivationReconciler()) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(new MultipleDependentActivationReconciler()).build(); @Test void bothDependentsWithActivationAreHandled() { @@ -62,9 +60,7 @@ void bothDependentsWithActivationAreHandled() { MultipleDependentActivationCustomResource testResource() { var res = new MultipleDependentActivationCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); res.setSpec(new MultipleDependentActivationSpec()); res.getSpec().setValue(INITIAL_VALUE); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/SecretDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/SecretDependentResource.java index 6340d07b58..fd8e5a10d1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/SecretDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/multipledependentwithactivation/SecretDependentResource.java @@ -20,10 +20,8 @@ protected Secret desired(MultipleDependentActivationCustomResource primary, Context<MultipleDependentActivationCustomResource> context) { // basically does not matter since this should not be called Secret secret = new Secret(); - secret.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + secret.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); secret.setData(Map.of("data", Base64.getEncoder().encodeToString(primary.getSpec().getValue().getBytes()))); return secret; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/ConfigMapDependentResource1.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/ConfigMapDependentResource1.java index 0478fe4248..f0004c8ca3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/ConfigMapDependentResource1.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/ConfigMapDependentResource1.java @@ -12,8 +12,8 @@ import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent; @KubernetesDependent(informer = @Informer(labelSelector = "dependent = cm1")) -public class ConfigMapDependentResource1 extends - CRUDKubernetesDependentResource<ConfigMap, OrderedManagedDependentCustomResource> { +public class ConfigMapDependentResource1 + extends CRUDKubernetesDependentResource<ConfigMap, OrderedManagedDependentCustomResource> { public ConfigMapDependentResource1() { super(ConfigMap.class); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/ConfigMapDependentResource2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/ConfigMapDependentResource2.java index efbd6ec450..f81d393f05 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/ConfigMapDependentResource2.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/ConfigMapDependentResource2.java @@ -12,8 +12,8 @@ import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent; @KubernetesDependent(informer = @Informer(labelSelector = "dependent = cm2")) -public class ConfigMapDependentResource2 extends - CRUDKubernetesDependentResource<ConfigMap, OrderedManagedDependentCustomResource> { +public class ConfigMapDependentResource2 + extends CRUDKubernetesDependentResource<ConfigMap, OrderedManagedDependentCustomResource> { public ConfigMapDependentResource2() { super(ConfigMap.class); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/OrderedManagedDependentCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/OrderedManagedDependentCustomResource.java index b73f92565d..f2ee3e3b7a 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/OrderedManagedDependentCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/OrderedManagedDependentCustomResource.java @@ -11,7 +11,6 @@ @Version("v1") @Kind("OrderedManagedDependentCustomResource") @ShortNames("omd") -public class OrderedManagedDependentCustomResource - extends CustomResource<Void, String> +public class OrderedManagedDependentCustomResource extends CustomResource<Void, String> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/OrderedManagedDependentIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/OrderedManagedDependentIT.java index 73ab6e65f6..ef4a96ecbc 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/OrderedManagedDependentIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/OrderedManagedDependentIT.java @@ -14,10 +14,8 @@ class OrderedManagedDependentIT { @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder() - .withReconciler(new OrderedManagedDependentTestReconciler()) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(new OrderedManagedDependentTestReconciler()).build(); @Test void managedDependentsAreReconciledInOrder() { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/OrderedManagedDependentTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/OrderedManagedDependentTestReconciler.java index 4336d940b0..7b7de7bc40 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/OrderedManagedDependentTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/orderedmanageddependent/OrderedManagedDependentTestReconciler.java @@ -10,15 +10,11 @@ import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider; -@Workflow(dependents = { - @Dependent(type = ConfigMapDependentResource1.class, name = "cm1"), - @Dependent(type = ConfigMapDependentResource2.class, dependsOn = "cm1") -}) -@ControllerConfiguration( - informer = @Informer(namespaces = Constants.WATCH_CURRENT_NAMESPACE)) +@Workflow(dependents = {@Dependent(type = ConfigMapDependentResource1.class, name = "cm1"), + @Dependent(type = ConfigMapDependentResource2.class, dependsOn = "cm1")}) +@ControllerConfiguration(informer = @Informer(namespaces = Constants.WATCH_CURRENT_NAMESPACE)) public class OrderedManagedDependentTestReconciler - implements Reconciler<OrderedManagedDependentCustomResource>, - TestExecutionInfoProvider { + implements Reconciler<OrderedManagedDependentCustomResource>, TestExecutionInfoProvider { private final AtomicInteger numberOfExecutions = new AtomicInteger(0); public static final List<Class<?>> dependentExecution = diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/ConfigMapDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/ConfigMapDependentResource.java index a909a3a706..a6c5a0528a 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/ConfigMapDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/ConfigMapDependentResource.java @@ -7,8 +7,7 @@ import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDNoGCKubernetesDependentResource; -public class ConfigMapDependentResource - extends +public class ConfigMapDependentResource extends CRUDNoGCKubernetesDependentResource<ConfigMap, WorkflowActivationCleanupCustomResource> { public static final String DATA_KEY = "data"; @@ -21,10 +20,8 @@ public ConfigMapDependentResource() { protected ConfigMap desired(WorkflowActivationCleanupCustomResource primary, Context<WorkflowActivationCleanupCustomResource> context) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap.setData(Map.of(DATA_KEY, primary.getSpec().getValue())); return configMap; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/WorkflowActivationCleanupCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/WorkflowActivationCleanupCustomResource.java index d98c9cd166..1dbe7d63e0 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/WorkflowActivationCleanupCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/WorkflowActivationCleanupCustomResource.java @@ -10,8 +10,7 @@ @Version("v1") @ShortNames("wacc") public class WorkflowActivationCleanupCustomResource - extends CustomResource<WorkflowActivationCleanupSpec, Void> - implements Namespaced { + extends CustomResource<WorkflowActivationCleanupSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/WorkflowActivationCleanupIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/WorkflowActivationCleanupIT.java index f41d15ae27..b2cc89dc96 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/WorkflowActivationCleanupIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/WorkflowActivationCleanupIT.java @@ -23,8 +23,7 @@ public class WorkflowActivationCleanupIT { @BeforeEach void beforeEach(TestInfo testInfo) { - LocallyRunOperatorExtension.applyCrd(WorkflowActivationCleanupCustomResource.class, - client); + LocallyRunOperatorExtension.applyCrd(WorkflowActivationCleanupCustomResource.class, client); testInfo.getTestMethod() .ifPresent(method -> testNamespace = KubernetesResourceUtil.sanitizeName(method.getName())); @@ -58,20 +57,17 @@ void testCleanupOnMarkedResourceOnOperatorStartup() { private WorkflowActivationCleanupCustomResource testResourceWithFinalizer() { var resource = new WorkflowActivationCleanupCustomResource(); - resource.setMetadata(new ObjectMetaBuilder() - .withName("test1") + resource.setMetadata(new ObjectMetaBuilder().withName("test1") .withFinalizers("workflowactivationcleanupcustomresources.sample.javaoperatorsdk/finalizer") - .withNamespace(testNamespace) - .build()); + .withNamespace(testNamespace).build()); resource.setSpec(new WorkflowActivationCleanupSpec()); resource.getSpec().setValue("val1"); return resource; } private Namespace testNamespace(String name) { - return new NamespaceBuilder().withMetadata(new ObjectMetaBuilder() - .withName(name) - .build()).build(); + return new NamespaceBuilder().withMetadata(new ObjectMetaBuilder().withName(name).build()) + .build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/WorkflowActivationCleanupReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/WorkflowActivationCleanupReconciler.java index 64a7a28a5c..97bf8c1b61 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/WorkflowActivationCleanupReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcleanup/WorkflowActivationCleanupReconciler.java @@ -3,10 +3,8 @@ import io.javaoperatorsdk.operator.api.reconciler.*; import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; -@Workflow(dependents = { - @Dependent(type = ConfigMapDependentResource.class, - activationCondition = TestActivcationCondition.class), -}) +@Workflow(dependents = {@Dependent(type = ConfigMapDependentResource.class, + activationCondition = TestActivcationCondition.class),}) @ControllerConfiguration public class WorkflowActivationCleanupReconciler implements Reconciler<WorkflowActivationCleanupCustomResource>, diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/ConfigMapDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/ConfigMapDependentResource.java index a5b255b10f..cd6bdc6a82 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/ConfigMapDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/ConfigMapDependentResource.java @@ -20,10 +20,8 @@ public ConfigMapDependentResource() { protected ConfigMap desired(WorkflowActivationConditionCustomResource primary, Context<WorkflowActivationConditionCustomResource> context) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap.setData(Map.of(DATA_KEY, primary.getSpec().getValue())); return configMap; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/RouteDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/RouteDependentResource.java index 92fe86d5db..b0581ce9b7 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/RouteDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/RouteDependentResource.java @@ -17,10 +17,8 @@ protected Route desired(WorkflowActivationConditionCustomResource primary, Context<WorkflowActivationConditionCustomResource> context) { // basically does not matter since this should not be called Route route = new Route(); - route.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + route.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); return route; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/WorkflowActivationConditionCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/WorkflowActivationConditionCustomResource.java index d04b3c08e0..2a9ba19393 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/WorkflowActivationConditionCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/WorkflowActivationConditionCustomResource.java @@ -10,8 +10,7 @@ @Version("v1") @ShortNames("wac") public class WorkflowActivationConditionCustomResource - extends CustomResource<WorkflowActivationConditionSpec, Void> - implements Namespaced { + extends CustomResource<WorkflowActivationConditionSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/WorkflowActivationConditionIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/WorkflowActivationConditionIT.java index 355855e6c6..0871607176 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/WorkflowActivationConditionIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/WorkflowActivationConditionIT.java @@ -17,10 +17,8 @@ public class WorkflowActivationConditionIT { public static final String TEST_DATA = "test data"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(WorkflowActivationConditionReconciler.class) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(WorkflowActivationConditionReconciler.class).build(); // Without activation condition this would fail / there would be errors. @Test @@ -36,9 +34,7 @@ void reconciledOnVanillaKubernetesDespiteRouteInWorkflow() { private WorkflowActivationConditionCustomResource testResource() { var res = new WorkflowActivationConditionCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).build()); res.setSpec(new WorkflowActivationConditionSpec()); res.getSpec().setValue(TEST_DATA); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/WorkflowActivationConditionReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/WorkflowActivationConditionReconciler.java index 2ac931bcdb..19f8808f9e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/WorkflowActivationConditionReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowactivationcondition/WorkflowActivationConditionReconciler.java @@ -3,11 +3,9 @@ import io.javaoperatorsdk.operator.api.reconciler.*; import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; -@Workflow(dependents = { - @Dependent(type = ConfigMapDependentResource.class), +@Workflow(dependents = {@Dependent(type = ConfigMapDependentResource.class), @Dependent(type = RouteDependentResource.class, - activationCondition = IsOpenShiftCondition.class) -}) + activationCondition = IsOpenShiftCondition.class)}) @ControllerConfiguration public class WorkflowActivationConditionReconciler implements Reconciler<WorkflowActivationConditionCustomResource> { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/ConfigMapDeletePostCondition.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/ConfigMapDeletePostCondition.java index c9d9393ce1..bb0badc6fe 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/ConfigMapDeletePostCondition.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/ConfigMapDeletePostCondition.java @@ -16,8 +16,7 @@ public class ConfigMapDeletePostCondition @Override public boolean isMet( DependentResource<ConfigMap, WorkflowAllFeatureCustomResource> dependentResource, - WorkflowAllFeatureCustomResource primary, - Context<WorkflowAllFeatureCustomResource> context) { + WorkflowAllFeatureCustomResource primary, Context<WorkflowAllFeatureCustomResource> context) { var configMapDeleted = dependentResource.getSecondaryResource(primary, context).isEmpty(); log.debug("Config Map Deleted: {}", configMapDeleted); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/ConfigMapDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/ConfigMapDependentResource.java index 9bee03d474..30bc96a9d1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/ConfigMapDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/ConfigMapDependentResource.java @@ -33,10 +33,8 @@ public ConfigMapDependentResource() { protected ConfigMap desired(WorkflowAllFeatureCustomResource primary, Context<WorkflowAllFeatureCustomResource> context) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap.setData(Map.of("key", "data")); return configMap; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/DeploymentDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/DeploymentDependentResource.java index 5abcf4c28c..26d1f27fc9 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/DeploymentDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/DeploymentDependentResource.java @@ -5,8 +5,8 @@ import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDNoGCKubernetesDependentResource; -public class DeploymentDependentResource extends - CRUDNoGCKubernetesDependentResource<Deployment, WorkflowAllFeatureCustomResource> { +public class DeploymentDependentResource + extends CRUDNoGCKubernetesDependentResource<Deployment, WorkflowAllFeatureCustomResource> { public DeploymentDependentResource() { super(Deployment.class); @@ -15,9 +15,8 @@ public DeploymentDependentResource() { @Override protected Deployment desired(WorkflowAllFeatureCustomResource primary, Context<WorkflowAllFeatureCustomResource> context) { - Deployment deployment = - ReconcilerUtils.loadYaml(Deployment.class, WorkflowAllFeatureIT.class, - "/io/javaoperatorsdk/operator/nginx-deployment.yaml"); + Deployment deployment = ReconcilerUtils.loadYaml(Deployment.class, WorkflowAllFeatureIT.class, + "/io/javaoperatorsdk/operator/nginx-deployment.yaml"); deployment.getMetadata().setName(primary.getMetadata().getName()); deployment.getSpec().setReplicas(2); deployment.getMetadata().setNamespace(primary.getMetadata().getNamespace()); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/DeploymentReadyCondition.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/DeploymentReadyCondition.java index 5e023a3d9d..6642d6e9f9 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/DeploymentReadyCondition.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/DeploymentReadyCondition.java @@ -10,13 +10,10 @@ public class DeploymentReadyCondition @Override public boolean isMet( DependentResource<Deployment, WorkflowAllFeatureCustomResource> dependentResource, - WorkflowAllFeatureCustomResource primary, - Context<WorkflowAllFeatureCustomResource> context) { - return dependentResource.getSecondaryResource(primary, context) - .map(deployment -> { - var readyReplicas = deployment.getStatus().getReadyReplicas(); - return readyReplicas != null && deployment.getSpec().getReplicas().equals(readyReplicas); - }) - .orElse(false); + WorkflowAllFeatureCustomResource primary, Context<WorkflowAllFeatureCustomResource> context) { + return dependentResource.getSecondaryResource(primary, context).map(deployment -> { + var readyReplicas = deployment.getStatus().getReadyReplicas(); + return readyReplicas != null && deployment.getSpec().getReplicas().equals(readyReplicas); + }).orElse(false); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/WorkflowAllFeatureCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/WorkflowAllFeatureCustomResource.java index cc3987710b..25d7c615c3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/WorkflowAllFeatureCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/WorkflowAllFeatureCustomResource.java @@ -10,8 +10,7 @@ @Version("v1") @ShortNames("waf") public class WorkflowAllFeatureCustomResource - extends CustomResource<WorkflowAllFeatureSpec, WorkflowAllFeatureStatus> - implements Namespaced { + extends CustomResource<WorkflowAllFeatureSpec, WorkflowAllFeatureStatus> implements Namespaced { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/WorkflowAllFeatureIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/WorkflowAllFeatureIT.java index 20e5ea5ae3..e32462ea2d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/WorkflowAllFeatureIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/WorkflowAllFeatureIT.java @@ -21,30 +21,24 @@ public class WorkflowAllFeatureIT { private static final Duration ONE_MINUTE = Duration.ofMinutes(1); @RegisterExtension - LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(WorkflowAllFeatureReconciler.class) - .build(); + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withReconciler(WorkflowAllFeatureReconciler.class).build(); @Test void configMapNotReconciledUntilDeploymentReady() { operator.create(customResource(true)); - await().untilAsserted( - () -> { - assertThat(operator - .getReconcilerOfType(WorkflowAllFeatureReconciler.class) - .getNumberOfReconciliationExecution()) - .isPositive(); - assertThat(operator.get(Deployment.class, RESOURCE_NAME)).isNotNull(); - assertThat(operator.get(ConfigMap.class, RESOURCE_NAME)).isNull(); - assertThat(getPrimaryStatus().getMsgFromCondition()) - .isEqualTo(ConfigMapReconcileCondition.NOT_RECONCILED_YET); - }); + await().untilAsserted(() -> { + assertThat(operator.getReconcilerOfType(WorkflowAllFeatureReconciler.class) + .getNumberOfReconciliationExecution()).isPositive(); + assertThat(operator.get(Deployment.class, RESOURCE_NAME)).isNotNull(); + assertThat(operator.get(ConfigMap.class, RESOURCE_NAME)).isNull(); + assertThat(getPrimaryStatus().getMsgFromCondition()) + .isEqualTo(ConfigMapReconcileCondition.NOT_RECONCILED_YET); + }); await().atMost(ONE_MINUTE).untilAsserted(() -> { - assertThat(operator - .getReconcilerOfType(WorkflowAllFeatureReconciler.class) - .getNumberOfReconciliationExecution()) - .isGreaterThan(1); + assertThat(operator.getReconcilerOfType(WorkflowAllFeatureReconciler.class) + .getNumberOfReconciliationExecution()).isGreaterThan(1); assertThat(operator.get(ConfigMap.class, RESOURCE_NAME)).isNotNull(); final var primaryStatus = getPrimaryStatus(); assertThat(primaryStatus.getReady()).isTrue(); @@ -56,8 +50,7 @@ void configMapNotReconciledUntilDeploymentReady() { } private WorkflowAllFeatureStatus getPrimaryStatus() { - return operator.get(WorkflowAllFeatureCustomResource.class, RESOURCE_NAME) - .getStatus(); + return operator.get(WorkflowAllFeatureCustomResource.class, RESOURCE_NAME).getStatus(); } @@ -85,8 +78,7 @@ void configMapNotDeletedUntilNotMarked() { var resource = operator.create(customResource(true)); await().atMost(ONE_MINUTE).untilAsserted(() -> { - assertThat(getPrimaryStatus()) - .isNotNull(); + assertThat(getPrimaryStatus()).isNotNull(); assertThat(getPrimaryStatus().getReady()).isTrue(); assertThat(operator.get(ConfigMap.class, RESOURCE_NAME)).isNotNull(); }); @@ -117,9 +109,7 @@ private void markConfigMapForDelete() { private WorkflowAllFeatureCustomResource customResource(boolean createConfigMap) { var res = new WorkflowAllFeatureCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(RESOURCE_NAME).build()); res.setSpec(new WorkflowAllFeatureSpec()); res.getSpec().setCreateConfigMap(createConfigMap); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/WorkflowAllFeatureReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/WorkflowAllFeatureReconciler.java index fb8b0b4a3d..e635ed156e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/WorkflowAllFeatureReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowallfeature/WorkflowAllFeatureReconciler.java @@ -20,12 +20,9 @@ readyPostcondition = DeploymentReadyCondition.class), @Dependent(type = ConfigMapDependentResource.class, reconcilePrecondition = ConfigMapReconcileCondition.class, - deletePostcondition = ConfigMapDeletePostCondition.class, - dependsOn = DEPLOYMENT_NAME) -}) + deletePostcondition = ConfigMapDeletePostCondition.class, dependsOn = DEPLOYMENT_NAME)}) @ControllerConfiguration -public class WorkflowAllFeatureReconciler - implements Reconciler<WorkflowAllFeatureCustomResource>, +public class WorkflowAllFeatureReconciler implements Reconciler<WorkflowAllFeatureCustomResource>, Cleaner<WorkflowAllFeatureCustomResource> { public static final String DEPLOYMENT_NAME = "deployment"; @@ -41,14 +38,14 @@ public UpdateControl<WorkflowAllFeatureCustomResource> reconcile( if (resource.getStatus() == null) { resource.setStatus(new WorkflowAllFeatureStatus()); } - final var reconcileResult = context.managedWorkflowAndDependentResourceContext() - .getWorkflowReconcileResult(); - final var msgFromCondition = reconcileResult.orElseThrow().getDependentConditionResult( - DependentResource.defaultNameFor(ConfigMapDependentResource.class), - Condition.Type.RECONCILE, String.class) + final var reconcileResult = + context.managedWorkflowAndDependentResourceContext().getWorkflowReconcileResult(); + final var msgFromCondition = reconcileResult.orElseThrow() + .getDependentConditionResult( + DependentResource.defaultNameFor(ConfigMapDependentResource.class), + Condition.Type.RECONCILE, String.class) .orElse(ConfigMapReconcileCondition.NOT_RECONCILED_YET); - resource.getStatus() - .withReady(reconcileResult.orElseThrow().allDependentResourcesReady()) + resource.getStatus().withReady(reconcileResult.orElseThrow().allDependentResourcesReady()) .withMsgFromCondition(msgFromCondition); return UpdateControl.patchStatus(resource); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/ConfigMapDependent.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/ConfigMapDependent.java index 228ed39564..c662ef5acd 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/ConfigMapDependent.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/ConfigMapDependent.java @@ -8,8 +8,8 @@ import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDNoGCKubernetesDependentResource; -public class ConfigMapDependent extends - CRUDNoGCKubernetesDependentResource<ConfigMap, WorkflowExplicitCleanupCustomResource> { +public class ConfigMapDependent + extends CRUDNoGCKubernetesDependentResource<ConfigMap, WorkflowExplicitCleanupCustomResource> { public ConfigMapDependent() { super(ConfigMap.class); @@ -19,11 +19,8 @@ public ConfigMapDependent() { protected ConfigMap desired(WorkflowExplicitCleanupCustomResource primary, Context<WorkflowExplicitCleanupCustomResource> context) { return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .withData(Map.of("key", "val")) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()) + .withData(Map.of("key", "val")).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/WorkflowExplicitCleanupCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/WorkflowExplicitCleanupCustomResource.java index 14ae6011a9..45487457ee 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/WorkflowExplicitCleanupCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/WorkflowExplicitCleanupCustomResource.java @@ -9,7 +9,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("wec") -public class WorkflowExplicitCleanupCustomResource - extends CustomResource<Void, Void> +public class WorkflowExplicitCleanupCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/WorkflowExplicitCleanupIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/WorkflowExplicitCleanupIT.java index e6a5b7a3cc..27c8c5dd6e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/WorkflowExplicitCleanupIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/WorkflowExplicitCleanupIT.java @@ -15,10 +15,8 @@ public class WorkflowExplicitCleanupIT { public static final String RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(WorkflowExplicitCleanupReconciler.class) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(WorkflowExplicitCleanupReconciler.class).build(); @Test void workflowInvokedExplicitly() { @@ -39,9 +37,7 @@ void workflowInvokedExplicitly() { WorkflowExplicitCleanupCustomResource testResource() { var res = new WorkflowExplicitCleanupCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(RESOURCE_NAME).build()); return res; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/WorkflowExplicitCleanupReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/WorkflowExplicitCleanupReconciler.java index 4361b5ac47..80ef601842 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/WorkflowExplicitCleanupReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitcleanup/WorkflowExplicitCleanupReconciler.java @@ -3,8 +3,7 @@ import io.javaoperatorsdk.operator.api.reconciler.*; import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; -@Workflow(explicitInvocation = true, - dependents = @Dependent(type = ConfigMapDependent.class)) +@Workflow(explicitInvocation = true, dependents = @Dependent(type = ConfigMapDependent.class)) @ControllerConfiguration public class WorkflowExplicitCleanupReconciler implements Reconciler<WorkflowExplicitCleanupCustomResource>, diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/ConfigMapDependent.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/ConfigMapDependent.java index 1632de5bbd..661ec7cea4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/ConfigMapDependent.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/ConfigMapDependent.java @@ -19,11 +19,8 @@ public ConfigMapDependent() { protected ConfigMap desired(WorkflowExplicitInvocationCustomResource primary, Context<WorkflowExplicitInvocationCustomResource> context) { return new ConfigMapBuilder() - .withMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()) - .withData(Map.of("key", primary.getSpec().getValue())) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()) + .withData(Map.of("key", primary.getSpec().getValue())).build(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/WorkflowExplicitInvocationCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/WorkflowExplicitInvocationCustomResource.java index c64964b02b..2b9a945344 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/WorkflowExplicitInvocationCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/WorkflowExplicitInvocationCustomResource.java @@ -10,6 +10,5 @@ @Version("v1") @ShortNames("wei") public class WorkflowExplicitInvocationCustomResource - extends CustomResource<WorkflowExplicitInvocationSpec, Void> - implements Namespaced { + extends CustomResource<WorkflowExplicitInvocationSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/WorkflowExplicitInvocationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/WorkflowExplicitInvocationIT.java index ba77057acc..4fa3b159d4 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/WorkflowExplicitInvocationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/WorkflowExplicitInvocationIT.java @@ -17,10 +17,8 @@ public class WorkflowExplicitInvocationIT { public static final String RESOURCE_NAME = "test1"; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(WorkflowExplicitInvocationReconciler.class) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(WorkflowExplicitInvocationReconciler.class).build(); @Test void workflowInvokedExplicitly() { @@ -54,9 +52,7 @@ void workflowInvokedExplicitly() { WorkflowExplicitInvocationCustomResource testResource() { var res = new WorkflowExplicitInvocationCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(RESOURCE_NAME) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(RESOURCE_NAME).build()); res.setSpec(new WorkflowExplicitInvocationSpec()); res.getSpec().setValue("initial value"); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/WorkflowExplicitInvocationReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/WorkflowExplicitInvocationReconciler.java index 4ac64b4cf8..cff36dd654 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/WorkflowExplicitInvocationReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowexplicitinvocation/WorkflowExplicitInvocationReconciler.java @@ -5,8 +5,7 @@ import io.javaoperatorsdk.operator.api.reconciler.*; import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; -@Workflow(explicitInvocation = true, - dependents = @Dependent(type = ConfigMapDependent.class)) +@Workflow(explicitInvocation = true, dependents = @Dependent(type = ConfigMapDependent.class)) @ControllerConfiguration public class WorkflowExplicitInvocationReconciler implements Reconciler<WorkflowExplicitInvocationCustomResource> { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/ConfigMapDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/ConfigMapDependentResource.java index 82d8d9c236..9b3a7a3519 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/ConfigMapDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/ConfigMapDependentResource.java @@ -7,8 +7,7 @@ import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDNoGCKubernetesDependentResource; -public class ConfigMapDependentResource - extends +public class ConfigMapDependentResource extends CRUDNoGCKubernetesDependentResource<ConfigMap, WorkflowMultipleActivationCustomResource> { public static final String DATA_KEY = "data"; @@ -21,10 +20,8 @@ public ConfigMapDependentResource() { protected ConfigMap desired(WorkflowMultipleActivationCustomResource primary, Context<WorkflowMultipleActivationCustomResource> context) { ConfigMap configMap = new ConfigMap(); - configMap.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + configMap.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); configMap.setData(Map.of(DATA_KEY, primary.getSpec().getValue())); return configMap; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/SecretDependentResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/SecretDependentResource.java index 872a5b5770..69e26ac55d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/SecretDependentResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/SecretDependentResource.java @@ -20,10 +20,8 @@ protected Secret desired(WorkflowMultipleActivationCustomResource primary, Context<WorkflowMultipleActivationCustomResource> context) { // basically does not matter since this should not be called Secret secret = new Secret(); - secret.setMetadata(new ObjectMetaBuilder() - .withName(primary.getMetadata().getName()) - .withNamespace(primary.getMetadata().getNamespace()) - .build()); + secret.setMetadata(new ObjectMetaBuilder().withName(primary.getMetadata().getName()) + .withNamespace(primary.getMetadata().getNamespace()).build()); secret.setData(Map.of("data", Base64.getEncoder().encodeToString(primary.getSpec().getValue().getBytes()))); return secret; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/WorkflowMultipleActivationCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/WorkflowMultipleActivationCustomResource.java index faf442b849..4f2c80c8de 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/WorkflowMultipleActivationCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/WorkflowMultipleActivationCustomResource.java @@ -10,8 +10,7 @@ @Version("v1") @ShortNames("mwac") public class WorkflowMultipleActivationCustomResource - extends CustomResource<WorkflowMultipleActivationSpec, Void> - implements Namespaced { + extends CustomResource<WorkflowMultipleActivationSpec, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/WorkflowMultipleActivationIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/WorkflowMultipleActivationIT.java index e793e9cb19..d36ab0f207 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/WorkflowMultipleActivationIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/WorkflowMultipleActivationIT.java @@ -23,10 +23,8 @@ public class WorkflowMultipleActivationIT { public static final int POLL_DELAY = 300; @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(WorkflowMultipleActivationReconciler.class) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(WorkflowMultipleActivationReconciler.class).build(); @Test void deactivatingAndReactivatingDependent() { @@ -101,9 +99,7 @@ void deactivatingAndReactivatingDependent() { WorkflowMultipleActivationCustomResource testResource(String name) { var res = new WorkflowMultipleActivationCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(name) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(name).build()); res.setSpec(new WorkflowMultipleActivationSpec()); res.getSpec().setValue(INITIAL_DATA); return res; diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/WorkflowMultipleActivationReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/WorkflowMultipleActivationReconciler.java index 6018fb7112..aef8329b40 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/WorkflowMultipleActivationReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowmultipleactivation/WorkflowMultipleActivationReconciler.java @@ -8,8 +8,7 @@ @Workflow(dependents = { @Dependent(type = ConfigMapDependentResource.class, activationCondition = ActivationCondition.class), - @Dependent(type = SecretDependentResource.class) -}) + @Dependent(type = SecretDependentResource.class)}) @ControllerConfiguration public class WorkflowMultipleActivationReconciler implements Reconciler<WorkflowMultipleActivationCustomResource> { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowsilentexceptionhandling/HandleWorkflowExceptionsInReconcilerCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowsilentexceptionhandling/HandleWorkflowExceptionsInReconcilerCustomResource.java index db5e94e40b..5b1645d8a0 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowsilentexceptionhandling/HandleWorkflowExceptionsInReconcilerCustomResource.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowsilentexceptionhandling/HandleWorkflowExceptionsInReconcilerCustomResource.java @@ -9,7 +9,6 @@ @Group("sample.javaoperatorsdk") @Version("v1") @ShortNames("hweir") -public class HandleWorkflowExceptionsInReconcilerCustomResource - extends CustomResource<Void, Void> +public class HandleWorkflowExceptionsInReconcilerCustomResource extends CustomResource<Void, Void> implements Namespaced { } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowsilentexceptionhandling/WorkflowSilentExceptionHandlingIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowsilentexceptionhandling/WorkflowSilentExceptionHandlingIT.java index b23fee2d20..12fb8824e7 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowsilentexceptionhandling/WorkflowSilentExceptionHandlingIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/workflow/workflowsilentexceptionhandling/WorkflowSilentExceptionHandlingIT.java @@ -12,10 +12,8 @@ public class WorkflowSilentExceptionHandlingIT { @RegisterExtension - LocallyRunOperatorExtension extension = - LocallyRunOperatorExtension.builder() - .withReconciler(HandleWorkflowExceptionsInReconcilerReconciler.class) - .build(); + LocallyRunOperatorExtension extension = LocallyRunOperatorExtension.builder() + .withReconciler(HandleWorkflowExceptionsInReconcilerReconciler.class).build(); @Test void handleExceptionsInReconciler() { @@ -36,9 +34,7 @@ void handleExceptionsInReconciler() { HandleWorkflowExceptionsInReconcilerCustomResource testResource() { var res = new HandleWorkflowExceptionsInReconcilerCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName("test1") - .build()); + res.setMetadata(new ObjectMetaBuilder().withName("test1").build()); return res; } diff --git a/pom.xml b/pom.xml index 7cd433671b..23ed79994f 100644 --- a/pom.xml +++ b/pom.xml @@ -327,53 +327,58 @@ <excludedGroups>WatchPermissionAwareTest</excludedGroups> </configuration> </plugin> + <plugin> + <groupId>org.commonjava.maven.plugins</groupId> + <artifactId>directory-maven-plugin</artifactId> + <version>0.1</version> + <executions> + <execution> + <id>directories</id> + <goals> + <goal>highest-basedir</goal> + </goals> + <phase>initialize</phase> + <configuration> + <property>highest-basedir</property> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>com.diffplug.spotless</groupId> + <artifactId>spotless-maven-plugin</artifactId> + <configuration> + <pom> + <includes> + <include>pom.xml</include> + <include>./**/pom.xml</include> + </includes> + <sortPom> + <expandEmptyElements>false</expandEmptyElements> + </sortPom> + </pom> + <java> + <eclipse> + <file>${highest-basedir}/contributing/eclipse-google-style.xml</file> + </eclipse> + <importOrder> + <order>java,javax,org,io,com,,\#</order> + </importOrder> + <removeUnusedImports/> + </java> + </configuration> + <executions> + <execution> + <goals> + <goal>apply</goal> + </goals> + <phase>compile</phase> + </execution> + </executions> + </plugin> </plugins> </build> <profiles> - <profile> - <id>spotless</id> - <activation> - <file> - <exists>contributing</exists> - </file> - </activation> - <build> - <plugins> - <plugin> - <groupId>com.diffplug.spotless</groupId> - <artifactId>spotless-maven-plugin</artifactId> - <configuration> - <pom> - <includes> - <include>pom.xml</include> - <include>./**/pom.xml</include> - </includes> - <sortPom> - <expandEmptyElements>false</expandEmptyElements> - </sortPom> - </pom> - <java> - <eclipse> - <file>contributing/eclipse-google-style.xml</file> - </eclipse> - <importOrder> - <file>contributing/eclipse.importorder</file> - </importOrder> - <removeUnusedImports/> - </java> - </configuration> - <executions> - <execution> - <goals> - <goal>apply</goal> - </goals> - <phase>compile</phase> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> <profile> <id>integration-tests</id> <build> diff --git a/sample-operators/controller-namespace-deletion/src/main/java/io/javaoperatorsdk/operator/sample/ControllerNamespaceDeletionOperator.java b/sample-operators/controller-namespace-deletion/src/main/java/io/javaoperatorsdk/operator/sample/ControllerNamespaceDeletionOperator.java index 5364852467..1a8647d6fc 100644 --- a/sample-operators/controller-namespace-deletion/src/main/java/io/javaoperatorsdk/operator/sample/ControllerNamespaceDeletionOperator.java +++ b/sample-operators/controller-namespace-deletion/src/main/java/io/javaoperatorsdk/operator/sample/ControllerNamespaceDeletionOperator.java @@ -34,10 +34,8 @@ private static boolean waitUntilResourcesDeleted() { try (var client = new KubernetesClientBuilder().build()) { var startTime = LocalTime.now(); while (startTime.until(LocalTime.now(), SECONDS) < 20) { - var items = - client.resources(ControllerNamespaceDeletionCustomResource.class) - .inNamespace(client.getConfiguration().getNamespace()) - .list().getItems(); + var items = client.resources(ControllerNamespaceDeletionCustomResource.class) + .inNamespace(client.getConfiguration().getNamespace()).list().getItems(); log.info("Custom resource in namespace: {}", items); if (items.isEmpty()) { return true; diff --git a/sample-operators/controller-namespace-deletion/src/main/java/io/javaoperatorsdk/operator/sample/ControllerNamespaceDeletionReconciler.java b/sample-operators/controller-namespace-deletion/src/main/java/io/javaoperatorsdk/operator/sample/ControllerNamespaceDeletionReconciler.java index 7261f269b4..7d03a291a3 100644 --- a/sample-operators/controller-namespace-deletion/src/main/java/io/javaoperatorsdk/operator/sample/ControllerNamespaceDeletionReconciler.java +++ b/sample-operators/controller-namespace-deletion/src/main/java/io/javaoperatorsdk/operator/sample/ControllerNamespaceDeletionReconciler.java @@ -37,10 +37,8 @@ public UpdateControl<ControllerNamespaceDeletionCustomResource> reconcile( private ControllerNamespaceDeletionCustomResource createResponseResource( ControllerNamespaceDeletionCustomResource resource) { var res = new ControllerNamespaceDeletionCustomResource(); - res.setMetadata(new ObjectMetaBuilder() - .withName(resource.getMetadata().getName()) - .withNamespace(resource.getMetadata().getNamespace()) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(resource.getMetadata().getName()) + .withNamespace(resource.getMetadata().getNamespace()).build()); res.setStatus(new ControllerNamespaceDeletionStatus()); return res; } diff --git a/sample-operators/controller-namespace-deletion/src/test/java/io/javaoperatorsdk/operator/sample/ControllerNamespaceDeletionE2E.java b/sample-operators/controller-namespace-deletion/src/test/java/io/javaoperatorsdk/operator/sample/ControllerNamespaceDeletionE2E.java index 36c7f132ab..52865d931f 100644 --- a/sample-operators/controller-namespace-deletion/src/test/java/io/javaoperatorsdk/operator/sample/ControllerNamespaceDeletionE2E.java +++ b/sample-operators/controller-namespace-deletion/src/test/java/io/javaoperatorsdk/operator/sample/ControllerNamespaceDeletionE2E.java @@ -87,10 +87,8 @@ private void removeRoleAndRoleBindingFinalizers() { ControllerNamespaceDeletionCustomResource testResource() { var cr = new ControllerNamespaceDeletionCustomResource(); - cr.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .withNamespace(namespace) - .build()); + cr.setMetadata( + new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).withNamespace(namespace).build()); cr.setSpec(new ControllerNamespaceDeletionSpec()); cr.getSpec().setValue(INITIAL_VALUE); return cr; @@ -100,12 +98,13 @@ ControllerNamespaceDeletionCustomResource testResource() { @BeforeEach void setup() { namespace = "controller-namespace-" + UUID.randomUUID(); - client = new KubernetesClientBuilder().withConfig(new ConfigBuilder() - .withNamespace(namespace) - .build()).build(); + client = new KubernetesClientBuilder() + .withConfig(new ConfigBuilder().withNamespace(namespace).build()).build(); applyCRD(); - client.namespaces().resource(new NamespaceBuilder().withNewMetadata().withName(namespace) - .endMetadata().build()).create(); + client.namespaces() + .resource( + new NamespaceBuilder().withNewMetadata().withName(namespace).endMetadata().build()) + .create(); } void deployController() { @@ -120,9 +119,7 @@ void deployController() { } } }); - client.resourceList(resources) - .inNamespace(namespace) - .createOrReplace(); + client.resourceList(resources).inNamespace(namespace).createOrReplace(); } catch (FileNotFoundException e) { throw new RuntimeException(e); diff --git a/sample-operators/leader-election/src/main/java/io/javaoperatorsdk/operator/sample/LeaderElectionTestOperator.java b/sample-operators/leader-election/src/main/java/io/javaoperatorsdk/operator/sample/LeaderElectionTestOperator.java index 359272e0ef..1561d34d54 100644 --- a/sample-operators/leader-election/src/main/java/io/javaoperatorsdk/operator/sample/LeaderElectionTestOperator.java +++ b/sample-operators/leader-election/src/main/java/io/javaoperatorsdk/operator/sample/LeaderElectionTestOperator.java @@ -17,8 +17,7 @@ public static void main(String[] args) { log.info("Starting operator with identity: {}", identity); LeaderElectionConfiguration leaderElectionConfiguration = - namespace == null - ? new LeaderElectionConfiguration("leader-election-test") + namespace == null ? new LeaderElectionConfiguration("leader-election-test") : new LeaderElectionConfiguration("leader-election-test", namespace, identity); Operator operator = diff --git a/sample-operators/leader-election/src/main/java/io/javaoperatorsdk/operator/sample/LeaderElectionTestReconciler.java b/sample-operators/leader-election/src/main/java/io/javaoperatorsdk/operator/sample/LeaderElectionTestReconciler.java index 1e54ddd915..74fb445cc2 100644 --- a/sample-operators/leader-election/src/main/java/io/javaoperatorsdk/operator/sample/LeaderElectionTestReconciler.java +++ b/sample-operators/leader-election/src/main/java/io/javaoperatorsdk/operator/sample/LeaderElectionTestReconciler.java @@ -11,8 +11,7 @@ import io.javaoperatorsdk.operator.sample.v1.LeaderElectionStatus; @ControllerConfiguration() -public class LeaderElectionTestReconciler - implements Reconciler<LeaderElection> { +public class LeaderElectionTestReconciler implements Reconciler<LeaderElection> { private final String reconcilerName; @@ -21,8 +20,7 @@ public LeaderElectionTestReconciler(String reconcilerName) { } @Override - public UpdateControl<LeaderElection> reconcile( - LeaderElection resource, + public UpdateControl<LeaderElection> reconcile(LeaderElection resource, Context<LeaderElection> context) { if (resource.getStatus() == null) { diff --git a/sample-operators/leader-election/src/test/java/io/javaoperatorsdk/operator/sample/LeaderElectionE2E.java b/sample-operators/leader-election/src/test/java/io/javaoperatorsdk/operator/sample/LeaderElectionE2E.java index dd6f4bc244..2be2047b4e 100644 --- a/sample-operators/leader-election/src/test/java/io/javaoperatorsdk/operator/sample/LeaderElectionE2E.java +++ b/sample-operators/leader-election/src/test/java/io/javaoperatorsdk/operator/sample/LeaderElectionE2E.java @@ -60,10 +60,9 @@ void otherInstancesTakesOverWhenSteppingDown(String yamlFilePrefix) { log.info("Awaiting custom resource reconciliations"); await().pollDelay(Duration.ofSeconds(MINIMAL_SECONDS_FOR_RENEWAL)) - .atMost(Duration.ofSeconds(MAX_WAIT_SECONDS)) - .untilAsserted(() -> { - var actualStatus = client.resources(LeaderElection.class) - .inNamespace(namespace).withName(TEST_RESOURCE_NAME).get().getStatus(); + .atMost(Duration.ofSeconds(MAX_WAIT_SECONDS)).untilAsserted(() -> { + var actualStatus = client.resources(LeaderElection.class).inNamespace(namespace) + .withName(TEST_RESOURCE_NAME).get().getStatus(); assertThat(actualStatus).isNotNull(); assertThat(actualStatus.getReconciledBy()) @@ -72,31 +71,27 @@ void otherInstancesTakesOverWhenSteppingDown(String yamlFilePrefix) { client.pods().inNamespace(namespace).withName(OPERATOR_1_POD_NAME).delete(); - var actualListSize = client.resources(LeaderElection.class) - .inNamespace(namespace).withName(TEST_RESOURCE_NAME).get().getStatus().getReconciledBy() - .size(); + var actualListSize = client.resources(LeaderElection.class).inNamespace(namespace) + .withName(TEST_RESOURCE_NAME).get().getStatus().getReconciledBy().size(); await().pollDelay(Duration.ofSeconds(MINIMAL_SECONDS_FOR_RENEWAL)) - .atMost(Duration.ofSeconds(240)) - .untilAsserted(() -> { - var actualStatus = client.resources(LeaderElection.class) - .inNamespace(namespace).withName(TEST_RESOURCE_NAME).get().getStatus(); + .atMost(Duration.ofSeconds(240)).untilAsserted(() -> { + var actualStatus = client.resources(LeaderElection.class).inNamespace(namespace) + .withName(TEST_RESOURCE_NAME).get().getStatus(); assertThat(actualStatus).isNotNull(); assertThat(actualStatus.getReconciledBy()) .hasSizeGreaterThan(actualListSize + MINIMAL_EXPECTED_RECONCILIATION); }); - assertReconciliations( - client.resources(LeaderElection.class).inNamespace(namespace) - .withName(TEST_RESOURCE_NAME).get().getStatus().getReconciledBy()); + assertReconciliations(client.resources(LeaderElection.class).inNamespace(namespace) + .withName(TEST_RESOURCE_NAME).get().getStatus().getReconciledBy()); } private void assertReconciliations(List<String> reconciledBy) { log.info("Reconciled by content: {}", reconciledBy); OptionalInt firstO2StatusIndex = IntStream.range(0, reconciledBy.size()) - .filter(i -> reconciledBy.get(i).equals(OPERATOR_2_POD_NAME)) - .findFirst(); + .filter(i -> reconciledBy.get(i).equals(OPERATOR_2_POD_NAME)).findFirst(); assertThat(firstO2StatusIndex).isPresent(); assertThat(reconciledBy.subList(0, firstO2StatusIndex.getAsInt() - 1)) .allMatch(s -> s.equals(OPERATOR_1_POD_NAME)); @@ -106,30 +101,30 @@ private void assertReconciliations(List<String> reconciledBy) { private void applyCustomResource() { var res = new LeaderElection(); - res.setMetadata(new ObjectMetaBuilder() - .withName(TEST_RESOURCE_NAME) - .withNamespace(namespace) - .build()); + res.setMetadata( + new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).withNamespace(namespace).build()); client.resource(res).create(); } @BeforeEach void setup() { namespace = "leader-election-it-" + UUID.randomUUID(); - client = new KubernetesClientBuilder().withConfig(new ConfigBuilder() - .withNamespace(namespace) - .build()).build(); + client = new KubernetesClientBuilder() + .withConfig(new ConfigBuilder().withNamespace(namespace).build()).build(); applyCRD(); - client.namespaces().resource(new NamespaceBuilder().withNewMetadata().withName(namespace) - .endMetadata().build()).create(); + client.namespaces() + .resource( + new NamespaceBuilder().withNewMetadata().withName(namespace).endMetadata().build()) + .create(); } @AfterEach void tearDown() { - client.namespaces().resource(new NamespaceBuilder().withNewMetadata().withName(namespace) - .endMetadata().build()).delete(); - await() - .atMost(Duration.ofSeconds(60)) + client.namespaces() + .resource( + new NamespaceBuilder().withNewMetadata().withName(namespace).endMetadata().build()) + .delete(); + await().atMost(Duration.ofSeconds(60)) .untilAsserted(() -> assertThat(client.namespaces().withName(namespace).get()).isNull()); } @@ -152,8 +147,7 @@ private void deployOperatorsInOrder(String yamlFilePrefix) { } void applyCRD() { - String path = - "./src/main/resources/kubernetes/leaderelections.sample.javaoperatorsdk-v1.yml"; + String path = "./src/main/resources/kubernetes/leaderelections.sample.javaoperatorsdk-v1.yml"; try (InputStream is = new FileInputStream(path)) { final var crd = client.load(is); crd.createOrReplace(); @@ -176,9 +170,7 @@ void applyResources(String path) { } } }); - client.resourceList(resources) - .inNamespace(namespace) - .createOrReplace(); + client.resourceList(resources).inNamespace(namespace).createOrReplace(); } catch (FileNotFoundException e) { throw new RuntimeException(e); diff --git a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLDbConfig.java b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLDbConfig.java index 0f63cc846a..3299aea56d 100644 --- a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLDbConfig.java +++ b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLDbConfig.java @@ -17,14 +17,12 @@ public MySQLDbConfig(String host, String port, String user, String password) { } public static MySQLDbConfig loadFromEnvironmentVars() { - if (ObjectUtils.anyNull(System.getenv("MYSQL_HOST"), - System.getenv("MYSQL_USER"), System.getenv("MYSQL_PASSWORD"))) { + if (ObjectUtils.anyNull(System.getenv("MYSQL_HOST"), System.getenv("MYSQL_USER"), + System.getenv("MYSQL_PASSWORD"))) { throw new IllegalStateException("Mysql server parameters not defined"); } - return new MySQLDbConfig(System.getenv("MYSQL_HOST"), - System.getenv("MYSQL_PORT"), - System.getenv("MYSQL_USER"), - System.getenv("MYSQL_PASSWORD")); + return new MySQLDbConfig(System.getenv("MYSQL_HOST"), System.getenv("MYSQL_PORT"), + System.getenv("MYSQL_USER"), System.getenv("MYSQL_PASSWORD")); } public String getHost() { diff --git a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperator.java b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperator.java index ce3595f0c3..2b91cc84a9 100644 --- a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperator.java +++ b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperator.java @@ -31,8 +31,7 @@ public static void main(String[] args) throws IOException { // override the default configuration operator.register(schemaReconciler, configOverrider -> configOverrider.replacingNamedDependentResourceConfig( - SchemaDependentResource.NAME, - new ResourcePollerConfig(Duration.ofMillis(300), + SchemaDependentResource.NAME, new ResourcePollerConfig(Duration.ofMillis(300), MySQLDbConfig.loadFromEnvironmentVars()))); operator.start(); diff --git a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaReconciler.java b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaReconciler.java index 7e229ca4bd..1f6b070e21 100644 --- a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaReconciler.java +++ b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/MySQLSchemaReconciler.java @@ -18,11 +18,9 @@ @Workflow(dependents = { @Dependent(type = SecretDependentResource.class, name = SecretDependentResource.NAME), @Dependent(type = SchemaDependentResource.class, name = SchemaDependentResource.NAME, - dependsOn = SecretDependentResource.NAME) -}) + dependsOn = SecretDependentResource.NAME)}) @ControllerConfiguration -public class MySQLSchemaReconciler - implements Reconciler<MySQLSchema> { +public class MySQLSchemaReconciler implements Reconciler<MySQLSchema> { static final Logger log = LoggerFactory.getLogger(MySQLSchemaReconciler.class); @@ -43,8 +41,7 @@ public UpdateControl<MySQLSchema> reconcile(MySQLSchema schema, Context<MySQLSch @Override public ErrorStatusUpdateControl<MySQLSchema> updateErrorStatus(MySQLSchema schema, - Context<MySQLSchema> context, - Exception e) { + Context<MySQLSchema> context, Exception e) { SchemaStatus status = new SchemaStatus(); status.setUrl(null); status.setUserName(null); @@ -56,18 +53,12 @@ public ErrorStatusUpdateControl<MySQLSchema> updateErrorStatus(MySQLSchema schem private MySQLSchema createForStatusUpdate(MySQLSchema mySQLSchema, Schema schema, - String secretName, - String userName) { + String secretName, String userName) { MySQLSchema res = new MySQLSchema(); - res.setMetadata(new ObjectMetaBuilder() - .withName(mySQLSchema.getMetadata().getName()) - .withNamespace(mySQLSchema.getMetadata().getNamespace()) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(mySQLSchema.getMetadata().getName()) + .withNamespace(mySQLSchema.getMetadata().getNamespace()).build()); SchemaStatus status = new SchemaStatus(); - status.setUrl( - format( - "jdbc:mysql://%1$s/%2$s", - System.getenv("MYSQL_HOST"), schema.getName())); + status.setUrl(format("jdbc:mysql://%1$s/%2$s", System.getenv("MYSQL_HOST"), schema.getName())); status.setUserName(userName); status.setSecretName(secretName); status.setStatus("CREATED"); diff --git a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SchemaDependentResource.java b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SchemaDependentResource.java index 60875e6ae3..b31228e187 100644 --- a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SchemaDependentResource.java +++ b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SchemaDependentResource.java @@ -32,15 +32,14 @@ import static io.javaoperatorsdk.operator.sample.dependent.SecretDependentResource.MYSQL_SECRET_USERNAME; import static java.lang.String.format; -@SchemaConfig(pollPeriod = 400, host = "127.0.0.1", - port = SchemaDependentResource.LOCAL_PORT, +@SchemaConfig(pollPeriod = 400, host = "127.0.0.1", port = SchemaDependentResource.LOCAL_PORT, user = "root", password = "password") // NOSONAR: password is only used locally, example only @Configured(by = SchemaConfig.class, with = ResourcePollerConfig.class, converter = ResourcePollerConfigConverter.class) public class SchemaDependentResource extends PerResourcePollingDependentResource<Schema, MySQLSchema> - implements ConfiguredDependentResource<ResourcePollerConfig>, - Creator<Schema, MySQLSchema>, Deleter<MySQLSchema> { + implements ConfiguredDependentResource<ResourcePollerConfig>, Creator<Schema, MySQLSchema>, + Deleter<MySQLSchema> { public static final String NAME = "schema"; public static final int LOCAL_PORT = 3307; @@ -77,9 +76,7 @@ public Schema create(Schema target, MySQLSchema mySQLSchema, Context<MySQLSchema var username = decode(secret.getData().get(MYSQL_SECRET_USERNAME)); var password = decode(secret.getData().get(MYSQL_SECRET_PASSWORD)); log.debug("Creating schema: {}", target); - return SchemaService.createSchemaAndRelatedUser( - connection, - target.getName(), + return SchemaService.createSchemaAndRelatedUser(connection, target.getName(), target.getCharacterSet(), username, password); } catch (SQLException e) { log.error("Error while creating Schema", e); @@ -89,8 +86,7 @@ public Schema create(Schema target, MySQLSchema mySQLSchema, Context<MySQLSchema private Connection getConnection() throws SQLException { String connectURL = format("jdbc:mysql://%1$s:%2$s", dbConfig.getHost(), dbConfig.getPort()); - log.debug("Connecting to '{}' with user '{}'", connectURL, - dbConfig.getUser()); + log.debug("Connecting to '{}' with user '{}'", connectURL, dbConfig.getUser()); return DriverManager.getConnection(connectURL, dbConfig.getUser(), dbConfig.getPassword()); } @@ -121,8 +117,8 @@ public Set<Schema> fetchResources(MySQLSchema primaryResource) { } } - static class ResourcePollerConfigConverter implements - ConfigurationConverter<SchemaConfig, ResourcePollerConfig> { + static class ResourcePollerConfigConverter + implements ConfigurationConverter<SchemaConfig, ResourcePollerConfig> { @Override public ResourcePollerConfig configFrom(SchemaConfig configAnnotation, diff --git a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SecretDependentResource.java b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SecretDependentResource.java index e6cf2a45e7..8cb86b398a 100644 --- a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SecretDependentResource.java +++ b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/dependent/SecretDependentResource.java @@ -37,20 +37,17 @@ private static String encode(String value) { @Override protected Secret desired(MySQLSchema schema, Context<MySQLSchema> context) { - final var password = RandomStringUtils - .randomAlphanumeric(16); // NOSONAR: we don't need cryptographically-strong randomness here + final var password = RandomStringUtils.randomAlphanumeric(16); // NOSONAR: we don't need + // cryptographically-strong + // randomness here final var name = schema.getMetadata().getName(); final var secretName = getSecretName(name); final var userName = String.format(USERNAME_FORMAT, name); - return new SecretBuilder() - .withNewMetadata() - .withName(secretName) - .withNamespace(schema.getMetadata().getNamespace()) - .endMetadata() + return new SecretBuilder().withNewMetadata().withName(secretName) + .withNamespace(schema.getMetadata().getNamespace()).endMetadata() .addToData(MYSQL_SECRET_USERNAME, encode(userName)) - .addToData(MYSQL_SECRET_PASSWORD, encode(password)) - .build(); + .addToData(MYSQL_SECRET_PASSWORD, encode(password)).build(); } private String getSecretName(String schemaName) { diff --git a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/schema/Schema.java b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/schema/Schema.java index 87fb88e9a4..8f235ef5b1 100644 --- a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/schema/Schema.java +++ b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/schema/Schema.java @@ -38,9 +38,6 @@ public int hashCode() { @Override public String toString() { - return "Schema{" + - "name='" + name + '\'' + - ", characterSet='" + characterSet + '\'' + - '}'; + return "Schema{" + "name='" + name + '\'' + ", characterSet='" + characterSet + '\'' + '}'; } } diff --git a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/schema/SchemaService.java b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/schema/SchemaService.java index 84504a5fec..c0e6bad49c 100644 --- a/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/schema/SchemaService.java +++ b/sample-operators/mysql-schema/src/main/java/io/javaoperatorsdk/operator/sample/schema/SchemaService.java @@ -30,15 +30,11 @@ public Optional<Schema> getSchema(String name) { } public static Schema createSchemaAndRelatedUser(Connection connection, String schemaName, - String encoding, - String userName, - String password) { + String encoding, String userName, String password) { try { try (Statement statement = connection.createStatement()) { statement.execute( - format( - "CREATE SCHEMA `%1$s` DEFAULT CHARACTER SET %2$s", - schemaName, encoding)); + format("CREATE SCHEMA `%1$s` DEFAULT CHARACTER SET %2$s", schemaName, encoding)); } if (!userExists(connection, userName)) { try (Statement statement = connection.createStatement()) { @@ -46,8 +42,7 @@ public static Schema createSchemaAndRelatedUser(Connection connection, String sc } } try (Statement statement = connection.createStatement()) { - statement.execute( - format("GRANT ALL ON `%1$s`.* TO '%2$s'", schemaName, userName)); + statement.execute(format("GRANT ALL ON `%1$s`.* TO '%2$s'", schemaName, userName)); } return new Schema(schemaName, encoding); @@ -80,8 +75,7 @@ public static void deleteSchemaAndRelatedUser(Connection connection, String sche private static boolean userExists(Connection connection, String username) { try (PreparedStatement ps = - connection.prepareStatement( - "SELECT 1 FROM mysql.user WHERE user = ?")) { + connection.prepareStatement("SELECT 1 FROM mysql.user WHERE user = ?")) { ps.setString(1, username); try (ResultSet resultSet = ps.executeQuery()) { return resultSet.next(); @@ -96,9 +90,8 @@ public static boolean schemaExists(Connection connection, String schemaName) { } public static Optional<Schema> getSchema(Connection connection, String schemaName) { - try (PreparedStatement ps = - connection.prepareStatement( - "SELECT * FROM information_schema.schemata WHERE schema_name = ?")) { + try (PreparedStatement ps = connection + .prepareStatement("SELECT * FROM information_schema.schemata WHERE schema_name = ?")) { ps.setString(1, schemaName); try (ResultSet resultSet = ps.executeQuery()) { // CATALOG_NAME, SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME, SQL_PATH diff --git a/sample-operators/mysql-schema/src/test/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperatorE2E.java b/sample-operators/mysql-schema/src/test/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperatorE2E.java index 346ebcb9ef..99a7246537 100644 --- a/sample-operators/mysql-schema/src/test/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperatorE2E.java +++ b/sample-operators/mysql-schema/src/test/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperatorE2E.java @@ -40,8 +40,8 @@ class MySQLSchemaOperatorE2E { public static final String TEST_RESOURCE_NAME = "mydb1"; static { - infrastructure.add( - new NamespaceBuilder().withNewMetadata().withName(MY_SQL_NS).endMetadata().build()); + infrastructure + .add(new NamespaceBuilder().withNewMetadata().withName(MY_SQL_NS).endMetadata().build()); try { infrastructure.addAll(client.load(new FileInputStream("k8s/mysql-db.yaml")).items()); } catch (FileNotFoundException e) { @@ -57,18 +57,20 @@ boolean isLocal() { } @RegisterExtension - AbstractOperatorExtension operator = - isLocal() - ? LocallyRunOperatorExtension.builder() - .withReconciler(new MySQLSchemaReconciler()) // configuration for schema comes from - // SchemaDependentResource annotation - .withInfrastructure(infrastructure) - .withPortForward(MY_SQL_NS, "app", "mysql", 3306, SchemaDependentResource.LOCAL_PORT) - .build() - : ClusterDeployedOperatorExtension.builder() - .withOperatorDeployment(client.load(new FileInputStream("k8s/operator.yaml")).items()) - .withInfrastructure(infrastructure) - .build(); + AbstractOperatorExtension operator = isLocal() + ? LocallyRunOperatorExtension.builder().withReconciler(new MySQLSchemaReconciler()) // configuration + // for + // schema + // comes + // from + // SchemaDependentResource + // annotation + .withInfrastructure(infrastructure) + .withPortForward(MY_SQL_NS, "app", "mysql", 3306, SchemaDependentResource.LOCAL_PORT) + .build() + : ClusterDeployedOperatorExtension.builder() + .withOperatorDeployment(client.load(new FileInputStream("k8s/operator.yaml")).items()) + .withInfrastructure(infrastructure).build(); public MySQLSchemaOperatorE2E() throws FileNotFoundException {} @@ -76,9 +78,8 @@ public MySQLSchemaOperatorE2E() throws FileNotFoundException {} void test() { MySQLSchema testSchema = new MySQLSchema(); - testSchema.setMetadata( - new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME).withNamespace(operator.getNamespace()) - .build()); + testSchema.setMetadata(new ObjectMetaBuilder().withName(TEST_RESOURCE_NAME) + .withNamespace(operator.getNamespace()).build()); testSchema.setSpec(new SchemaSpec()); testSchema.getSpec().setEncoding("utf8"); @@ -86,38 +87,22 @@ void test() { client.resource(testSchema).createOrReplace(); log.info("Waiting 2 minutes for expected resources to be created and updated"); - await() - .atMost(2, MINUTES) - .ignoreExceptions() - .untilAsserted( - () -> { - MySQLSchema updatedSchema = - client - .resources(MySQLSchema.class) - .inNamespace(operator.getNamespace()) - .withName(testSchema.getMetadata().getName()) - .get(); - assertThat(updatedSchema.getStatus(), is(notNullValue())); - assertThat(updatedSchema.getStatus().getStatus(), equalTo("CREATED")); - assertThat(updatedSchema.getStatus().getSecretName(), is(notNullValue())); - assertThat(updatedSchema.getStatus().getUserName(), is(notNullValue())); - }); + await().atMost(2, MINUTES).ignoreExceptions().untilAsserted(() -> { + MySQLSchema updatedSchema = client.resources(MySQLSchema.class) + .inNamespace(operator.getNamespace()).withName(testSchema.getMetadata().getName()).get(); + assertThat(updatedSchema.getStatus(), is(notNullValue())); + assertThat(updatedSchema.getStatus().getStatus(), equalTo("CREATED")); + assertThat(updatedSchema.getStatus().getSecretName(), is(notNullValue())); + assertThat(updatedSchema.getStatus().getUserName(), is(notNullValue())); + }); client.resources(MySQLSchema.class).inNamespace(operator.getNamespace()) .withName(testSchema.getMetadata().getName()).delete(); - await() - .atMost(2, MINUTES) - .ignoreExceptions() - .untilAsserted( - () -> { - MySQLSchema updatedSchema = - client - .resources(MySQLSchema.class) - .inNamespace(operator.getNamespace()) - .withName(testSchema.getMetadata().getName()) - .get(); - assertThat(updatedSchema, is(nullValue())); - }); + await().atMost(2, MINUTES).ignoreExceptions().untilAsserted(() -> { + MySQLSchema updatedSchema = client.resources(MySQLSchema.class) + .inNamespace(operator.getNamespace()).withName(testSchema.getMetadata().getName()).get(); + assertThat(updatedSchema, is(nullValue())); + }); } } diff --git a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/DeploymentDependentResource.java b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/DeploymentDependentResource.java index d6eaad24bb..078d20dcaa 100644 --- a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/DeploymentDependentResource.java +++ b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/DeploymentDependentResource.java @@ -9,8 +9,8 @@ import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent; -@KubernetesDependent(informer = @Informer( - labelSelector = "app.kubernetes.io/managed-by=tomcat-operator")) +@KubernetesDependent( + informer = @Informer(labelSelector = "app.kubernetes.io/managed-by=tomcat-operator")) public class DeploymentDependentResource extends CRUDKubernetesDependentResource<Deployment, Tomcat> { @@ -28,28 +28,18 @@ protected Deployment desired(Tomcat tomcat, Context<Tomcat> context) { ReconcilerUtils.loadYaml(Deployment.class, getClass(), "deployment.yaml"); final ObjectMeta tomcatMetadata = tomcat.getMetadata(); final String tomcatName = tomcatMetadata.getName(); - deployment = new DeploymentBuilder(deployment) - .editMetadata() - .withName(tomcatName) - .withNamespace(tomcatMetadata.getNamespace()) - .addToLabels("app", tomcatName) + deployment = new DeploymentBuilder(deployment).editMetadata().withName(tomcatName) + .withNamespace(tomcatMetadata.getNamespace()).addToLabels("app", tomcatName) .addToLabels("app.kubernetes.io/part-of", tomcatName) - .addToLabels("app.kubernetes.io/managed-by", "tomcat-operator") - .endMetadata() - .editSpec() + .addToLabels("app.kubernetes.io/managed-by", "tomcat-operator").endMetadata().editSpec() .editSelector().addToMatchLabels("app", tomcatName).endSelector() .withReplicas(tomcat.getSpec().getReplicas()) // set tomcat version .editTemplate() // make sure label selector matches label (which has to be matched by service selector // too) - .editMetadata().addToLabels("app", tomcatName).endMetadata() - .editSpec() - .editFirstContainer().withImage(tomcatImage(tomcat)).endContainer() - .endSpec() - .endTemplate() - .endSpec() - .build(); + .editMetadata().addToLabels("app", tomcatName).endMetadata().editSpec().editFirstContainer() + .withImage(tomcatImage(tomcat)).endContainer().endSpec().endTemplate().endSpec().build(); return deployment; } } diff --git a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/ServiceDependentResource.java b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/ServiceDependentResource.java index 8a93b48804..065049d3fa 100644 --- a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/ServiceDependentResource.java +++ b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/ServiceDependentResource.java @@ -9,8 +9,8 @@ import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent; -@KubernetesDependent(informer = @Informer( - labelSelector = "app.kubernetes.io/managed-by=tomcat-operator")) +@KubernetesDependent( + informer = @Informer(labelSelector = "app.kubernetes.io/managed-by=tomcat-operator")) public class ServiceDependentResource extends CRUDKubernetesDependentResource<Service, Tomcat> { public ServiceDependentResource() { @@ -21,15 +21,10 @@ public ServiceDependentResource() { protected Service desired(Tomcat tomcat, Context<Tomcat> context) { final ObjectMeta tomcatMetadata = tomcat.getMetadata(); return new ServiceBuilder(ReconcilerUtils.loadYaml(Service.class, getClass(), "service.yaml")) - .editMetadata() - .withName(tomcatMetadata.getName()) + .editMetadata().withName(tomcatMetadata.getName()) .withNamespace(tomcatMetadata.getNamespace()) - .addToLabels("app.kubernetes.io/managed-by", "tomcat-operator") - .endMetadata() - .editSpec() - .addToSelector("app", tomcatMetadata.getName()) - .endSpec() - .build(); + .addToLabels("app.kubernetes.io/managed-by", "tomcat-operator").endMetadata().editSpec() + .addToSelector("app", tomcatMetadata.getName()).endSpec().build(); } } diff --git a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java index f89a5f22e0..36a8e982fa 100644 --- a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java +++ b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/TomcatReconciler.java @@ -15,10 +15,8 @@ * Runs a specified number of Tomcat app server Pods. It uses a Deployment to create the Pods. Also * creates a Service over which the Pods can be accessed. */ -@Workflow(dependents = { - @Dependent(type = DeploymentDependentResource.class), - @Dependent(type = ServiceDependentResource.class) -}) +@Workflow(dependents = {@Dependent(type = DeploymentDependentResource.class), + @Dependent(type = ServiceDependentResource.class)}) @ControllerConfiguration public class TomcatReconciler implements Reconciler<Tomcat> { @@ -28,10 +26,8 @@ public class TomcatReconciler implements Reconciler<Tomcat> { public UpdateControl<Tomcat> reconcile(Tomcat tomcat, Context<Tomcat> context) { return context.getSecondaryResource(Deployment.class).map(deployment -> { Tomcat updatedTomcat = createTomcatForStatusUpdate(tomcat, deployment); - log.info( - "Updating status of Tomcat {} in namespace {} to {} ready replicas", - tomcat.getMetadata().getName(), - tomcat.getMetadata().getNamespace(), + log.info("Updating status of Tomcat {} in namespace {} to {} ready replicas", + tomcat.getMetadata().getName(), tomcat.getMetadata().getNamespace(), tomcat.getStatus() == null ? 0 : tomcat.getStatus().getReadyReplicas()); return UpdateControl.patchStatus(updatedTomcat); }).orElseGet(UpdateControl::noUpdate); @@ -39,10 +35,8 @@ public UpdateControl<Tomcat> reconcile(Tomcat tomcat, Context<Tomcat> context) { private Tomcat createTomcatForStatusUpdate(Tomcat tomcat, Deployment deployment) { Tomcat res = new Tomcat(); - res.setMetadata(new ObjectMetaBuilder() - .withName(tomcat.getMetadata().getName()) - .withNamespace(tomcat.getMetadata().getNamespace()) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(tomcat.getMetadata().getName()) + .withNamespace(tomcat.getMetadata().getNamespace()).build()); DeploymentStatus deploymentStatus = Objects.requireNonNullElse(deployment.getStatus(), new DeploymentStatus()); int readyReplicas = Objects.requireNonNullElse(deploymentStatus.getReadyReplicas(), 0); diff --git a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/WebappReconciler.java b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/WebappReconciler.java index 82d0152b3c..92af02a680 100644 --- a/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/WebappReconciler.java +++ b/sample-operators/tomcat-operator/src/main/java/io/javaoperatorsdk/operator/sample/WebappReconciler.java @@ -33,8 +33,7 @@ import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource; @ControllerConfiguration -public class WebappReconciler - implements Reconciler<Webapp>, Cleaner<Webapp> { +public class WebappReconciler implements Reconciler<Webapp>, Cleaner<Webapp> { private static final Logger log = LoggerFactory.getLogger(WebappReconciler.class); @@ -55,16 +54,13 @@ public List<EventSource<?, Webapp>> prepareEventSources(EventSourceContext<Webap final SecondaryToPrimaryMapper<Tomcat> webappsMatchingTomcatName = (Tomcat t) -> context.getPrimaryCache() .list(webApp -> webApp.getSpec().getTomcat().equals(t.getMetadata().getName())) - .map(ResourceID::fromResource) - .collect(Collectors.toSet()); - - InformerEventSourceConfiguration<Tomcat> configuration = - InformerEventSourceConfiguration.from(Tomcat.class, Webapp.class) - .withSecondaryToPrimaryMapper(webappsMatchingTomcatName) - .withPrimaryToSecondaryMapper( - (Webapp primary) -> Set.of(new ResourceID(primary.getSpec().getTomcat(), - primary.getMetadata().getNamespace()))) - .build(); + .map(ResourceID::fromResource).collect(Collectors.toSet()); + + InformerEventSourceConfiguration<Tomcat> configuration = InformerEventSourceConfiguration + .from(Tomcat.class, Webapp.class).withSecondaryToPrimaryMapper(webappsMatchingTomcatName) + .withPrimaryToSecondaryMapper((Webapp primary) -> Set.of( + new ResourceID(primary.getSpec().getTomcat(), primary.getMetadata().getNamespace()))) + .build(); return List.of(new InformerEventSource<>(configuration, context)); } @@ -80,10 +76,9 @@ public UpdateControl<Webapp> reconcile(Webapp webapp, Context<Webapp> context) { } Tomcat tomcat = context.getSecondaryResource(Tomcat.class) - .orElseThrow( - () -> new IllegalStateException("Cannot find Tomcat " + webapp.getSpec().getTomcat() - + " for Webapp " + webapp.getMetadata().getName() + " in namespace " - + webapp.getMetadata().getNamespace())); + .orElseThrow(() -> new IllegalStateException("Cannot find Tomcat " + + webapp.getSpec().getTomcat() + " for Webapp " + webapp.getMetadata().getName() + + " in namespace " + webapp.getMetadata().getNamespace())); if (tomcat.getStatus() != null && Objects.equals(tomcat.getSpec().getReplicas(), tomcat.getStatus().getReadyReplicas())) { @@ -110,10 +105,8 @@ public UpdateControl<Webapp> reconcile(Webapp webapp, Context<Webapp> context) { private Webapp createWebAppForStatusUpdate(Webapp actual, String[] commandStatusInAllPods) { var webapp = new Webapp(); - webapp.setMetadata(new ObjectMetaBuilder() - .withName(actual.getMetadata().getName()) - .withNamespace(actual.getMetadata().getNamespace()) - .build()); + webapp.setMetadata(new ObjectMetaBuilder().withName(actual.getMetadata().getName()) + .withNamespace(actual.getMetadata().getNamespace()).build()); webapp.setStatus(new WebappStatus()); webapp.getStatus().setDeployedArtifact(actual.getSpec().getUrl()); webapp.getStatus().setDeploymentStatus(commandStatusInAllPods); @@ -132,32 +125,21 @@ public DeleteControl cleanup(Webapp webapp, Context<Webapp> context) { return DeleteControl.defaultDelete(); } - private String[] executeCommandInAllPods( - KubernetesClient kubernetesClient, Webapp webapp, String[] command) { + private String[] executeCommandInAllPods(KubernetesClient kubernetesClient, Webapp webapp, + String[] command) { String[] status = new String[0]; Deployment deployment = - kubernetesClient - .apps() - .deployments() - .inNamespace(webapp.getMetadata().getNamespace()) - .withName(webapp.getSpec().getTomcat()) - .get(); + kubernetesClient.apps().deployments().inNamespace(webapp.getMetadata().getNamespace()) + .withName(webapp.getSpec().getTomcat()).get(); if (deployment != null) { - List<Pod> pods = - kubernetesClient - .pods() - .inNamespace(webapp.getMetadata().getNamespace()) - .withLabels(deployment.getSpec().getSelector().getMatchLabels()) - .list() - .getItems(); + List<Pod> pods = kubernetesClient.pods().inNamespace(webapp.getMetadata().getNamespace()) + .withLabels(deployment.getSpec().getSelector().getMatchLabels()).list().getItems(); status = new String[pods.size()]; for (int i = 0; i < pods.size(); i++) { Pod pod = pods.get(i); - log.info( - "Executing command {} in Pod {}", - String.join(" ", command), + log.info("Executing command {} in Pod {}", String.join(" ", command), pod.getMetadata().getName()); CompletableFuture<String> data = new CompletableFuture<>(); @@ -166,8 +148,7 @@ private String[] executeCommandInAllPods( } catch (ExecutionException e) { status[i] = pod.getMetadata().getName() + ": ExecutionException - " + e.getMessage(); } catch (InterruptedException e) { - status[i] = - pod.getMetadata().getName() + ": InterruptedException - " + e.getMessage(); + status[i] = pod.getMetadata().getName() + ": InterruptedException - " + e.getMessage(); } catch (TimeoutException e) { status[i] = pod.getMetadata().getName() + ": TimeoutException - " + e.getMessage(); } @@ -178,14 +159,9 @@ private String[] executeCommandInAllPods( private ExecWatch execCmd(Pod pod, CompletableFuture<String> data, String... command) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); - return kubernetesClient.pods() - .inNamespace(pod.getMetadata().getNamespace()) - .withName(pod.getMetadata().getName()) - .inContainer("war-downloader") - .writingOutput(baos) - .writingError(baos) - .usingListener(new SimpleListener(data, baos)) - .exec(command); + return kubernetesClient.pods().inNamespace(pod.getMetadata().getNamespace()) + .withName(pod.getMetadata().getName()).inContainer("war-downloader").writingOutput(baos) + .writingError(baos).usingListener(new SimpleListener(data, baos)).exec(command); } static class SimpleListener implements ExecListener { diff --git a/sample-operators/tomcat-operator/src/test/java/io/javaoperatorsdk/operator/sample/TomcatOperatorE2E.java b/sample-operators/tomcat-operator/src/test/java/io/javaoperatorsdk/operator/sample/TomcatOperatorE2E.java index 3095e7db8c..f84af7ebcb 100644 --- a/sample-operators/tomcat-operator/src/test/java/io/javaoperatorsdk/operator/sample/TomcatOperatorE2E.java +++ b/sample-operators/tomcat-operator/src/test/java/io/javaoperatorsdk/operator/sample/TomcatOperatorE2E.java @@ -42,23 +42,18 @@ boolean isLocal() { } @RegisterExtension - AbstractOperatorExtension operator = isLocal() ? LocallyRunOperatorExtension.builder() - .waitForNamespaceDeletion(false) - .withReconciler(new TomcatReconciler()) - .withReconciler(new WebappReconciler(client)) - .build() - : ClusterDeployedOperatorExtension.builder() - .waitForNamespaceDeletion(false) - .withOperatorDeployment( - client.load(new FileInputStream("k8s/operator.yaml")).items()) + AbstractOperatorExtension operator = isLocal() + ? LocallyRunOperatorExtension.builder().waitForNamespaceDeletion(false) + .withReconciler(new TomcatReconciler()).withReconciler(new WebappReconciler(client)) + .build() + : ClusterDeployedOperatorExtension.builder().waitForNamespaceDeletion(false) + .withOperatorDeployment(client.load(new FileInputStream("k8s/operator.yaml")).items()) .build(); Tomcat getTomcat() { Tomcat tomcat = new Tomcat(); - tomcat.setMetadata(new ObjectMetaBuilder() - .withName("test-tomcat1") - .withNamespace(operator.getNamespace()) - .build()); + tomcat.setMetadata(new ObjectMetaBuilder().withName("test-tomcat1") + .withNamespace(operator.getNamespace()).build()); tomcat.setSpec(new TomcatSpec()); tomcat.getSpec().setReplicas(tomcatReplicas); tomcat.getSpec().setVersion(9); @@ -67,10 +62,8 @@ Tomcat getTomcat() { Webapp getWebapp() { Webapp webapp1 = new Webapp(); - webapp1.setMetadata(new ObjectMetaBuilder() - .withName("test-webapp1") - .withNamespace(operator.getNamespace()) - .build()); + webapp1.setMetadata(new ObjectMetaBuilder().withName("test-webapp1") + .withNamespace(operator.getNamespace()).build()); webapp1.setSpec(new WebappSpec()); webapp1.getSpec().setContextPath("webapp1"); webapp1.getSpec().setTomcat(getTomcat().getMetadata().getName()); @@ -92,12 +85,10 @@ void test() { log.info("Waiting 5 minutes for Tomcat and Webapp CR statuses to be updated"); await().atMost(5, MINUTES).untilAsserted(() -> { - Tomcat updatedTomcat = - tomcatClient.inNamespace(operator.getNamespace()).withName(tomcat.getMetadata().getName()) - .get(); - Webapp updatedWebapp = - webappClient.inNamespace(operator.getNamespace()) - .withName(webapp1.getMetadata().getName()).get(); + Tomcat updatedTomcat = tomcatClient.inNamespace(operator.getNamespace()) + .withName(tomcat.getMetadata().getName()).get(); + Webapp updatedWebapp = webappClient.inNamespace(operator.getNamespace()) + .withName(webapp1.getMetadata().getName()).get(); assertThat(updatedTomcat.getStatus(), is(notNullValue())); assertThat(updatedTomcat.getStatus().getReadyReplicas(), equalTo(tomcatReplicas)); assertThat(updatedWebapp.getStatus(), is(notNullValue())); diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/Utils.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/Utils.java index 72d04b42ed..60c42bbd45 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/Utils.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/Utils.java @@ -14,10 +14,8 @@ private Utils() {} public static WebPage createWebPageForStatusUpdate(WebPage webPage, String configMapName) { WebPage res = new WebPage(); - res.setMetadata(new ObjectMetaBuilder() - .withName(webPage.getMetadata().getName()) - .withNamespace(webPage.getMetadata().getNamespace()) - .build()); + res.setMetadata(new ObjectMetaBuilder().withName(webPage.getMetadata().getName()) + .withNamespace(webPage.getMetadata().getNamespace()).build()); res.setStatus(createStatus(configMapName)); return res; } @@ -72,8 +70,8 @@ public static Ingress makeDesiredIngress(WebPage webPage) { Ingress ingress = loadYaml(Ingress.class, Utils.class, "ingress.yaml"); ingress.getMetadata().setName(webPage.getMetadata().getName()); ingress.getMetadata().setNamespace(webPage.getMetadata().getNamespace()); - ingress.getSpec().getRules().get(0).getHttp().getPaths().get(0) - .getBackend().getService().setName(serviceName(webPage)); + ingress.getSpec().getRules().get(0).getHttp().getPaths().get(0).getBackend().getService() + .setName(serviceName(webPage)); return ingress; } } diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageDependentsWorkflowReconciler.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageDependentsWorkflowReconciler.java index 6adbeb03b5..cdc49e39cf 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageDependentsWorkflowReconciler.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageDependentsWorkflowReconciler.java @@ -24,12 +24,10 @@ /** * Shows how to implement reconciler using standalone dependent resources. */ -@ControllerConfiguration( - informer = @Informer( - labelSelector = WebPageDependentsWorkflowReconciler.DEPENDENT_RESOURCE_LABEL_SELECTOR)) +@ControllerConfiguration(informer = @Informer( + labelSelector = WebPageDependentsWorkflowReconciler.DEPENDENT_RESOURCE_LABEL_SELECTOR)) @SuppressWarnings("unused") -public class WebPageDependentsWorkflowReconciler - implements Reconciler<WebPage> { +public class WebPageDependentsWorkflowReconciler implements Reconciler<WebPage> { public static final String DEPENDENT_RESOURCE_LABEL_SELECTOR = "!low-level"; @@ -42,19 +40,15 @@ public class WebPageDependentsWorkflowReconciler public WebPageDependentsWorkflowReconciler(KubernetesClient kubernetesClient) { initDependentResources(kubernetesClient); - workflow = new WorkflowBuilder<WebPage>() - .addDependentResource(configMapDR) - .addDependentResource(deploymentDR) - .addDependentResource(serviceDR) + workflow = new WorkflowBuilder<WebPage>().addDependentResource(configMapDR) + .addDependentResource(deploymentDR).addDependentResource(serviceDR) .addDependentResourceAndConfigure(ingressDR) - .withReconcilePrecondition(new ExposedIngressCondition()) - .build(); + .withReconcilePrecondition(new ExposedIngressCondition()).build(); } @Override public List<EventSource<?, WebPage>> prepareEventSources(EventSourceContext<WebPage> context) { - return EventSourceUtils.dependentEventSources(context, configMapDR, - deploymentDR, serviceDR, + return EventSourceUtils.dependentEventSources(context, configMapDR, deploymentDR, serviceDR, ingressDR); } @@ -65,15 +59,13 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex workflow.reconcile(webPage, context); - return UpdateControl - .patchStatus( - createWebPageForStatusUpdate(webPage, context.getSecondaryResource(ConfigMap.class) - .orElseThrow().getMetadata().getName())); + return UpdateControl.patchStatus(createWebPageForStatusUpdate(webPage, + context.getSecondaryResource(ConfigMap.class).orElseThrow().getMetadata().getName())); } @Override - public ErrorStatusUpdateControl<WebPage> updateErrorStatus( - WebPage resource, Context<WebPage> retryInfo, Exception e) { + public ErrorStatusUpdateControl<WebPage> updateErrorStatus(WebPage resource, + Context<WebPage> retryInfo, Exception e) { return handleError(resource, e); } @@ -84,12 +76,16 @@ private void initDependentResources(KubernetesClient client) { this.serviceDR = new ServiceDependentResource(); this.ingressDR = new IngressDependentResource(); - Arrays.asList(configMapDR, deploymentDR, serviceDR, ingressDR) - .forEach(dr -> dr.configureWith(new KubernetesDependentResourceConfigBuilder() - .withKubernetesDependentInformerConfig(InformerConfiguration.builder(dr.resourceType()) - .withLabelSelector(DEPENDENT_RESOURCE_LABEL_SELECTOR) - .build()) - .build())); + Arrays + .asList(configMapDR, deploymentDR, serviceDR, + ingressDR) + .forEach( + dr -> dr + .configureWith(new KubernetesDependentResourceConfigBuilder() + .withKubernetesDependentInformerConfig( + InformerConfiguration.builder(dr.resourceType()) + .withLabelSelector(DEPENDENT_RESOURCE_LABEL_SELECTOR).build()) + .build())); } } diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageManagedDependentsReconciler.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageManagedDependentsReconciler.java index e59f7fe0fc..3118f8af15 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageManagedDependentsReconciler.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageManagedDependentsReconciler.java @@ -11,15 +11,12 @@ /** * Shows how to implement a reconciler with managed dependent resources. */ -@Workflow(dependents = { - @Dependent(type = ConfigMapDependentResource.class), +@Workflow(dependents = {@Dependent(type = ConfigMapDependentResource.class), @Dependent(type = DeploymentDependentResource.class), @Dependent(type = ServiceDependentResource.class), @Dependent(type = IngressDependentResource.class, - reconcilePrecondition = ExposedIngressCondition.class) -}) -public class WebPageManagedDependentsReconciler - implements Reconciler<WebPage>, Cleaner<WebPage> { + reconcilePrecondition = ExposedIngressCondition.class)}) +public class WebPageManagedDependentsReconciler implements Reconciler<WebPage>, Cleaner<WebPage> { public static final String SELECTOR = "managed"; @@ -34,8 +31,8 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex throws Exception { simulateErrorIfRequested(webPage); - final var name = context.getSecondaryResource(ConfigMap.class).orElseThrow() - .getMetadata().getName(); + final var name = + context.getSecondaryResource(ConfigMap.class).orElseThrow().getMetadata().getName(); return UpdateControl.patchStatus(createWebPageForStatusUpdate(webPage, name)); } diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java index ff80cc5901..dd3e61aa23 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java @@ -30,8 +30,7 @@ public static void main(String[] args) throws IOException { String reconcilerEnvVar = System.getenv(WEBPAGE_RECONCILER_ENV); if (WEBPAGE_CLASSIC_RECONCILER_ENV_VALUE.equals(reconcilerEnvVar)) { operator.register(new WebPageReconciler()); - } else if (WEBPAGE_MANAGED_DEPENDENT_RESOURCE_ENV_VALUE - .equals(reconcilerEnvVar)) { + } else if (WEBPAGE_MANAGED_DEPENDENT_RESOURCE_ENV_VALUE.equals(reconcilerEnvVar)) { operator.register(new WebPageManagedDependentsReconciler()); } else { operator.register(new WebPageStandaloneDependentsReconciler()); diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconciler.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconciler.java index a687929b22..da91f42fc4 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconciler.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageReconciler.java @@ -27,8 +27,7 @@ /** Shows how to implement reconciler using the low level api directly. */ @RateLimited(maxReconciliations = 2, within = 3) @ControllerConfiguration -public class WebPageReconciler - implements Reconciler<WebPage> { +public class WebPageReconciler implements Reconciler<WebPage> { public static final String INDEX_HTML = "index.html"; @@ -40,32 +39,16 @@ public WebPageReconciler() { @Override public List<EventSource<?, WebPage>> prepareEventSources(EventSourceContext<WebPage> context) { - var configMapEventSource = - new InformerEventSource<>( - InformerEventSourceConfiguration.from(ConfigMap.class, WebPage.class) - .withLabelSelector(SELECTOR) - .build(), - context); - var deploymentEventSource = - new InformerEventSource<>( - InformerEventSourceConfiguration.from(Deployment.class, WebPage.class) - .withLabelSelector(SELECTOR) - .build(), - context); - var serviceEventSource = - new InformerEventSource<>( - InformerEventSourceConfiguration.from(Service.class, WebPage.class) - .withLabelSelector(SELECTOR) - .build(), - context); - var ingressEventSource = - new InformerEventSource<>( - InformerEventSourceConfiguration.from(Ingress.class, WebPage.class) - .withLabelSelector(SELECTOR) - .build(), - context); - return List.of(configMapEventSource, deploymentEventSource, - serviceEventSource, ingressEventSource); + var configMapEventSource = new InformerEventSource<>(InformerEventSourceConfiguration + .from(ConfigMap.class, WebPage.class).withLabelSelector(SELECTOR).build(), context); + var deploymentEventSource = new InformerEventSource<>(InformerEventSourceConfiguration + .from(Deployment.class, WebPage.class).withLabelSelector(SELECTOR).build(), context); + var serviceEventSource = new InformerEventSource<>(InformerEventSourceConfiguration + .from(Service.class, WebPage.class).withLabelSelector(SELECTOR).build(), context); + var ingressEventSource = new InformerEventSource<>(InformerEventSourceConfiguration + .from(Ingress.class, WebPage.class).withLabelSelector(SELECTOR).build(), context); + return List.of(configMapEventSource, deploymentEventSource, serviceEventSource, + ingressEventSource); } @Override @@ -90,32 +73,25 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex var previousConfigMap = context.getSecondaryResource(ConfigMap.class).orElse(null); if (!match(desiredHtmlConfigMap, previousConfigMap)) { - log.info( - "Creating or updating ConfigMap {} in {}", - desiredHtmlConfigMap.getMetadata().getName(), - ns); + log.info("Creating or updating ConfigMap {} in {}", + desiredHtmlConfigMap.getMetadata().getName(), ns); context.getClient().configMaps().inNamespace(ns).resource(desiredHtmlConfigMap) .serverSideApply(); } var existingDeployment = context.getSecondaryResource(Deployment.class).orElse(null); if (!match(desiredDeployment, existingDeployment)) { - log.info( - "Creating or updating Deployment {} in {}", - desiredDeployment.getMetadata().getName(), - ns); + log.info("Creating or updating Deployment {} in {}", + desiredDeployment.getMetadata().getName(), ns); context.getClient().apps().deployments().inNamespace(ns).resource(desiredDeployment) .serverSideApply(); } var existingService = context.getSecondaryResource(Service.class).orElse(null); if (!match(desiredService, existingService)) { - log.info( - "Creating or updating Deployment {} in {}", - desiredDeployment.getMetadata().getName(), - ns); - context.getClient().services().inNamespace(ns).resource(desiredService) - .serverSideApply(); + log.info("Creating or updating Deployment {} in {}", + desiredDeployment.getMetadata().getName(), ns); + context.getClient().services().inNamespace(ns).resource(desiredService).serverSideApply(); } var existingIngress = context.getSecondaryResource(Ingress.class); @@ -125,15 +101,14 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex context.getClient().resource(desiredIngress).inNamespace(ns).serverSideApply(); } } else - existingIngress.ifPresent( - ingress -> context.getClient().resource(ingress).delete()); + existingIngress.ifPresent(ingress -> context.getClient().resource(ingress).delete()); // not that this is not necessary, eventually mounted config map would be updated, just this way // is much faster; what is handy for demo purposes. // https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#mounted-configmaps-are-updated-automatically - if (previousConfigMap != null && !StringUtils.equals( - previousConfigMap.getData().get(INDEX_HTML), - desiredHtmlConfigMap.getData().get(INDEX_HTML))) { + if (previousConfigMap != null + && !StringUtils.equals(previousConfigMap.getData().get(INDEX_HTML), + desiredHtmlConfigMap.getData().get(INDEX_HTML))) { log.info("Restarting pods because HTML has changed in {}", ns); context.getClient().pods().inNamespace(ns).withLabel("app", deploymentName(webPage)).delete(); } @@ -143,12 +118,10 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex } private boolean match(Ingress desiredIngress, Ingress existingIngress) { - String desiredServiceName = - desiredIngress.getSpec().getRules().get(0).getHttp().getPaths().get(0) - .getBackend().getService().getName(); - String existingServiceName = - existingIngress.getSpec().getRules().get(0).getHttp().getPaths().get(0) - .getBackend().getService().getName(); + String desiredServiceName = desiredIngress.getSpec().getRules().get(0).getHttp().getPaths() + .get(0).getBackend().getService().getName(); + String existingServiceName = existingIngress.getSpec().getRules().get(0).getHttp().getPaths() + .get(0).getBackend().getService().getName(); return Objects.equals(desiredServiceName, existingServiceName); } @@ -156,8 +129,8 @@ private boolean match(Deployment desiredDeployment, Deployment deployment) { if (deployment == null) { return false; } else { - return desiredDeployment.getSpec().getReplicas().equals(deployment.getSpec().getReplicas()) && - desiredDeployment.getSpec().getTemplate().getSpec().getContainers().get(0).getImage() + return desiredDeployment.getSpec().getReplicas().equals(deployment.getSpec().getReplicas()) + && desiredDeployment.getSpec().getTemplate().getSpec().getContainers().get(0).getImage() .equals( deployment.getSpec().getTemplate().getSpec().getContainers().get(0).getImage()); } @@ -183,8 +156,7 @@ private Service makeDesiredService(WebPage webPage, String ns, Deployment desire desiredService.getMetadata().setName(serviceName(webPage)); desiredService.getMetadata().setNamespace(ns); desiredService.getMetadata().setLabels(lowLevelLabel()); - desiredService - .getSpec() + desiredService.getSpec() .setSelector(desiredDeployment.getSpec().getTemplate().getMetadata().getLabels()); desiredService.addOwnerReference(webPage); return desiredService; @@ -199,12 +171,7 @@ private Deployment makeDesiredDeployment(WebPage webPage, String deploymentName, desiredDeployment.getMetadata().setLabels(lowLevelLabel()); desiredDeployment.getSpec().getSelector().getMatchLabels().put("app", deploymentName); desiredDeployment.getSpec().getTemplate().getMetadata().getLabels().put("app", deploymentName); - desiredDeployment - .getSpec() - .getTemplate() - .getSpec() - .getVolumes() - .get(0) + desiredDeployment.getSpec().getTemplate().getSpec().getVolumes().get(0) .setConfigMap(new ConfigMapVolumeSourceBuilder().withName(configMapName).build()); desiredDeployment.addOwnerReference(webPage); return desiredDeployment; @@ -214,15 +181,8 @@ private ConfigMap makeDesiredHtmlConfigMap(String ns, String configMapName, WebP Map<String, String> data = new HashMap<>(); data.put(INDEX_HTML, webPage.getSpec().getHtml()); ConfigMap configMap = - new ConfigMapBuilder() - .withMetadata( - new ObjectMetaBuilder() - .withName(configMapName) - .withNamespace(ns) - .withLabels(lowLevelLabel()) - .build()) - .withData(data) - .build(); + new ConfigMapBuilder().withMetadata(new ObjectMetaBuilder().withName(configMapName) + .withNamespace(ns).withLabels(lowLevelLabel()).build()).withData(data).build(); configMap.addOwnerReference(webPage); return configMap; } @@ -234,8 +194,8 @@ public static Map<String, String> lowLevelLabel() { } @Override - public ErrorStatusUpdateControl<WebPage> updateErrorStatus( - WebPage resource, Context<WebPage> context, Exception e) { + public ErrorStatusUpdateControl<WebPage> updateErrorStatus(WebPage resource, + Context<WebPage> context, Exception e) { return handleError(resource, e); } } diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageStandaloneDependentsReconciler.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageStandaloneDependentsReconciler.java index b413e9ba53..11c1947054 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageStandaloneDependentsReconciler.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageStandaloneDependentsReconciler.java @@ -30,8 +30,7 @@ * Shows how to implement reconciler using standalone dependent resources and workflows. */ @ControllerConfiguration -public class WebPageStandaloneDependentsReconciler - implements Reconciler<WebPage> { +public class WebPageStandaloneDependentsReconciler implements Reconciler<WebPage> { private final Workflow<WebPage> workflow; @@ -67,15 +66,14 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex // retrieve the name of the ConfigMap secondary resource to update the status if everything went // well - webPage.setStatus( - createStatus( - context.getSecondaryResource(ConfigMap.class).orElseThrow().getMetadata().getName())); + webPage.setStatus(createStatus( + context.getSecondaryResource(ConfigMap.class).orElseThrow().getMetadata().getName())); return UpdateControl.patchStatus(webPage); } @Override - public ErrorStatusUpdateControl<WebPage> updateErrorStatus( - WebPage resource, Context<WebPage> retryInfo, Exception e) { + public ErrorStatusUpdateControl<WebPage> updateErrorStatus(WebPage resource, + Context<WebPage> retryInfo, Exception e) { return handleError(resource, e); } @@ -95,25 +93,22 @@ private Workflow<WebPage> createDependentResourcesAndWorkflow() { // configure them with our label selector Arrays.asList(configMapDR, deploymentDR, serviceDR, ingressDR) - .forEach(dr -> dr.configureWith(new KubernetesDependentResourceConfigBuilder() - .withKubernetesDependentInformerConfig(InformerConfiguration.builder(dr.resourceType()) - .withLabelSelector(SELECTOR + "=true") - .build()) - .build())); + .forEach( + dr -> dr.configureWith(new KubernetesDependentResourceConfigBuilder() + .withKubernetesDependentInformerConfig(InformerConfiguration + .builder(dr.resourceType()).withLabelSelector(SELECTOR + "=true").build()) + .build())); // connect the dependent resources into a workflow, configuring them as we go // Note the method call order is significant and configuration applies to the dependent being // configured as defined by the method call order (in this example, the reconcile pre-condition // that is added applies to the Ingress dependent) - return new WorkflowBuilder<WebPage>() - .addDependentResource(configMapDR) - .addDependentResource(deploymentDR) - .addDependentResource(serviceDR) + return new WorkflowBuilder<WebPage>().addDependentResource(configMapDR) + .addDependentResource(deploymentDR).addDependentResource(serviceDR) .addDependentResourceAndConfigure(ingressDR) // prevent the Ingress from being created based on the linked condition (here: only if the // `exposed` flag is set in the primary resource), delete the Ingress if it already exists // and the condition becomes false - .withReconcilePrecondition(new ExposedIngressCondition()) - .build(); + .withReconcilePrecondition(new ExposedIngressCondition()).build(); } } diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPage.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPage.java index c468fa212a..08a6efbd29 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPage.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPage.java @@ -7,14 +7,10 @@ @Group("sample.javaoperatorsdk") @Version("v1") -public class WebPage extends CustomResource<WebPageSpec, WebPageStatus> - implements Namespaced { +public class WebPage extends CustomResource<WebPageSpec, WebPageStatus> implements Namespaced { @Override public String toString() { - return "WebPage{" + - "spec=" + spec + - ", status=" + status + - '}'; + return "WebPage{" + "spec=" + spec + ", status=" + status + '}'; } } diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPageSpec.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPageSpec.java index 56fd7dda40..12d2ca8d4b 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPageSpec.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPageSpec.java @@ -24,8 +24,6 @@ public WebPageSpec setExposed(Boolean exposed) { @Override public String toString() { - return "WebPageSpec{" + - "html='" + html + '\'' + - '}'; + return "WebPageSpec{" + "html='" + html + '\'' + '}'; } } diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPageStatus.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPageStatus.java index 36409ac7f9..61fb4400fb 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPageStatus.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/customresource/WebPageStatus.java @@ -35,10 +35,7 @@ public WebPageStatus setErrorMessage(String errorMessage) { @Override public String toString() { - return "WebPageStatus{" + - "htmlConfigMap='" + htmlConfigMap + '\'' + - ", areWeGood='" + areWeGood + '\'' + - ", errorMessage='" + errorMessage + '\'' + - '}'; + return "WebPageStatus{" + "htmlConfigMap='" + htmlConfigMap + '\'' + ", areWeGood='" + areWeGood + + '\'' + ", errorMessage='" + errorMessage + '\'' + '}'; } } diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ConfigMapDependentResource.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ConfigMapDependentResource.java index 816db3688e..57ceec15f9 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ConfigMapDependentResource.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ConfigMapDependentResource.java @@ -31,13 +31,8 @@ protected ConfigMap desired(WebPage webPage, Context<WebPage> context) { Map<String, String> labels = new HashMap<>(); labels.put(SELECTOR, "true"); return new ConfigMapBuilder() - .withMetadata( - new ObjectMetaBuilder() - .withName(configMapName(webPage)) - .withNamespace(webPage.getMetadata().getNamespace()) - .withLabels(labels) - .build()) - .withData(data) - .build(); + .withMetadata(new ObjectMetaBuilder().withName(configMapName(webPage)) + .withNamespace(webPage.getMetadata().getNamespace()).withLabels(labels).build()) + .withData(data).build(); } } diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/DeploymentDependentResource.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/DeploymentDependentResource.java index b427e42d33..dd541eed26 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/DeploymentDependentResource.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/DeploymentDependentResource.java @@ -37,20 +37,9 @@ protected Deployment desired(WebPage webPage, Context<WebPage> context) { deployment.getMetadata().setLabels(labels); deployment.getSpec().getSelector().getMatchLabels().put("app", deploymentName); - deployment - .getSpec() - .getTemplate() - .getMetadata() - .getLabels() - .put("app", deploymentName); - deployment - .getSpec() - .getTemplate() - .getSpec() - .getVolumes() - .get(0) - .setConfigMap( - new ConfigMapVolumeSourceBuilder().withName(configMapName(webPage)).build()); + deployment.getSpec().getTemplate().getMetadata().getLabels().put("app", deploymentName); + deployment.getSpec().getTemplate().getSpec().getVolumes().get(0) + .setConfigMap(new ConfigMapVolumeSourceBuilder().withName(configMapName(webPage)).build()); return deployment; } diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ExposedIngressCondition.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ExposedIngressCondition.java index 80691de96e..217caf0ba2 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ExposedIngressCondition.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/dependentresource/ExposedIngressCondition.java @@ -9,8 +9,8 @@ public class ExposedIngressCondition implements Condition<Ingress, WebPage> { @Override - public boolean isMet(DependentResource<Ingress, WebPage> dependentResource, - WebPage primary, Context<WebPage> context) { + public boolean isMet(DependentResource<Ingress, WebPage> dependentResource, WebPage primary, + Context<WebPage> context) { return primary.getSpec().getExposed(); } } diff --git a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorAbstractTest.java b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorAbstractTest.java index 6c9a5512bb..9cb95d3a7c 100644 --- a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorAbstractTest.java +++ b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorAbstractTest.java @@ -54,25 +54,21 @@ void testAddingWebPage() { var webPage = createWebPage(TITLE1); operator().create(webPage); - await() - .atMost(Duration.ofSeconds(WAIT_SECONDS)) - .pollInterval(POLL_INTERVAL) - .untilAsserted( - () -> { - var actual = operator().get(WebPage.class, TEST_PAGE); - var deployment = operator().get(Deployment.class, deploymentName(webPage)); - assertThat(actual.getStatus()).isNotNull(); - assertThat(actual.getStatus().getAreWeGood()).isTrue(); - assertThat(deployment.getSpec().getReplicas()) - .isEqualTo(deployment.getStatus().getReadyReplicas()); - }); + await().atMost(Duration.ofSeconds(WAIT_SECONDS)).pollInterval(POLL_INTERVAL) + .untilAsserted(() -> { + var actual = operator().get(WebPage.class, TEST_PAGE); + var deployment = operator().get(Deployment.class, deploymentName(webPage)); + assertThat(actual.getStatus()).isNotNull(); + assertThat(actual.getStatus().getAreWeGood()).isTrue(); + assertThat(deployment.getSpec().getReplicas()) + .isEqualTo(deployment.getStatus().getReadyReplicas()); + }); assertThat(httpGetForWebPage(webPage)).contains(TITLE1); // update part: changing title operator().replace(createWebPage(TITLE2)); - await().atMost(Duration.ofSeconds(LONG_WAIT_SECONDS)) - .pollInterval(POLL_INTERVAL) + await().atMost(Duration.ofSeconds(LONG_WAIT_SECONDS)).pollInterval(POLL_INTERVAL) .untilAsserted(() -> { String page = operator().get(ConfigMap.class, Utils.configMapName(webPage)).getData() .get(INDEX_HTML); @@ -84,8 +80,7 @@ void testAddingWebPage() { // delete part: deleting webpage operator().delete(createWebPage(TITLE2)); - await().atMost(Duration.ofSeconds(WAIT_SECONDS)) - .pollInterval(POLL_INTERVAL) + await().atMost(Duration.ofSeconds(WAIT_SECONDS)).pollInterval(POLL_INTERVAL) .untilAsserted(() -> { Deployment deployment = operator().get(Deployment.class, deploymentName(webPage)); assertThat(deployment).isNull(); @@ -95,14 +90,12 @@ void testAddingWebPage() { String httpGetForWebPage(WebPage webPage) { LocalPortForward portForward = null; try { - portForward = - client.services().inNamespace(webPage.getMetadata().getNamespace()) - .withName(serviceName(webPage)).portForward(80); + portForward = client.services().inNamespace(webPage.getMetadata().getNamespace()) + .withName(serviceName(webPage)).portForward(80); HttpClient httpClient = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(10)).build(); - HttpRequest request = - HttpRequest.newBuilder().GET() - .uri(new URI("http://localhost:" + portForward.getLocalPort())).build(); + HttpRequest request = HttpRequest.newBuilder().GET() + .uri(new URI("http://localhost:" + portForward.getLocalPort())).build(); return httpClient.send(request, HttpResponse.BodyHandlers.ofString()).body(); } catch (URISyntaxException | IOException | InterruptedException e) { return null; @@ -123,17 +116,10 @@ WebPage createWebPage(String title) { webPage.getMetadata().setName(TEST_PAGE); webPage.getMetadata().setNamespace(operator().getNamespace()); webPage.setSpec(new WebPageSpec()); - webPage - .getSpec() - .setHtml( - "<html>\n" - + " <head>\n" - + " <title>" + title + "</title>\n" - + " </head>\n" - + " <body>\n" - + " Hello World! \n" - + " </body>\n" - + " </html>"); + webPage.getSpec() + .setHtml("<html>\n" + " <head>\n" + " <title>" + title + "</title>\n" + + " </head>\n" + " <body>\n" + " Hello World! \n" + " </body>\n" + + " </html>"); return webPage; } diff --git a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorE2E.java b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorE2E.java index 45fc4cd5ba..0738f400e2 100644 --- a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorE2E.java +++ b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorE2E.java @@ -23,28 +23,23 @@ class WebPageOperatorE2E extends WebPageOperatorAbstractTest { public WebPageOperatorE2E() throws FileNotFoundException {} @RegisterExtension - AbstractOperatorExtension operator = - isLocal() - ? LocallyRunOperatorExtension.builder() - .waitForNamespaceDeletion(false) - .withReconciler(new WebPageReconciler()) - .build() - : ClusterDeployedOperatorExtension.builder() - .waitForNamespaceDeletion(false) - .withOperatorDeployment(client.load(new FileInputStream("k8s/operator.yaml")).items(), - resources -> { - Deployment deployment = (Deployment) resources.stream() - .filter(r -> r instanceof Deployment).findFirst().orElseThrow(); - Container container = - deployment.getSpec().getTemplate().getSpec().getContainers().get(0); - if (container.getEnv() == null) { - container.setEnv(new ArrayList<>()); - } - container.getEnv().add( - new EnvVar(WEBPAGE_RECONCILER_ENV, WEBPAGE_CLASSIC_RECONCILER_ENV_VALUE, - null)); - }) - .build(); + AbstractOperatorExtension operator = isLocal() + ? LocallyRunOperatorExtension.builder().waitForNamespaceDeletion(false) + .withReconciler(new WebPageReconciler()).build() + : ClusterDeployedOperatorExtension.builder().waitForNamespaceDeletion(false) + .withOperatorDeployment(client.load(new FileInputStream("k8s/operator.yaml")).items(), + resources -> { + Deployment deployment = (Deployment) resources.stream() + .filter(r -> r instanceof Deployment).findFirst().orElseThrow(); + Container container = + deployment.getSpec().getTemplate().getSpec().getContainers().get(0); + if (container.getEnv() == null) { + container.setEnv(new ArrayList<>()); + } + container.getEnv().add( + new EnvVar(WEBPAGE_RECONCILER_ENV, WEBPAGE_CLASSIC_RECONCILER_ENV_VALUE, null)); + }) + .build(); @Override diff --git a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorManagedDependentResourcesE2E.java b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorManagedDependentResourcesE2E.java index 92b0ce0a41..c01edf5fd2 100644 --- a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorManagedDependentResourcesE2E.java +++ b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorManagedDependentResourcesE2E.java @@ -21,28 +21,23 @@ class WebPageOperatorManagedDependentResourcesE2E extends WebPageOperatorAbstrac public WebPageOperatorManagedDependentResourcesE2E() throws FileNotFoundException {} @RegisterExtension - AbstractOperatorExtension operator = - isLocal() - ? LocallyRunOperatorExtension.builder() - .waitForNamespaceDeletion(false) - .withReconciler(new WebPageManagedDependentsReconciler()) - .build() - : ClusterDeployedOperatorExtension.builder() - .waitForNamespaceDeletion(false) - .withOperatorDeployment(client.load(new FileInputStream("k8s/operator.yaml")).items(), - resources -> { - Deployment deployment = (Deployment) resources.stream() - .filter(r -> r instanceof Deployment).findFirst().orElseThrow(); - Container container = - deployment.getSpec().getTemplate().getSpec().getContainers().get(0); - if (container.getEnv() == null) { - container.setEnv(new ArrayList<>()); - } - container.getEnv().add( - new EnvVar(WEBPAGE_RECONCILER_ENV, - WEBPAGE_MANAGED_DEPENDENT_RESOURCE_ENV_VALUE, null)); - }) - .build(); + AbstractOperatorExtension operator = isLocal() + ? LocallyRunOperatorExtension.builder().waitForNamespaceDeletion(false) + .withReconciler(new WebPageManagedDependentsReconciler()).build() + : ClusterDeployedOperatorExtension.builder().waitForNamespaceDeletion(false) + .withOperatorDeployment(client.load(new FileInputStream("k8s/operator.yaml")).items(), + resources -> { + Deployment deployment = (Deployment) resources.stream() + .filter(r -> r instanceof Deployment).findFirst().orElseThrow(); + Container container = + deployment.getSpec().getTemplate().getSpec().getContainers().get(0); + if (container.getEnv() == null) { + container.setEnv(new ArrayList<>()); + } + container.getEnv().add(new EnvVar(WEBPAGE_RECONCILER_ENV, + WEBPAGE_MANAGED_DEPENDENT_RESOURCE_ENV_VALUE, null)); + }) + .build(); @Override AbstractOperatorExtension operator() { diff --git a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorStandaloneDependentResourcesE2E.java b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorStandaloneDependentResourcesE2E.java index 7786473257..d70c564750 100644 --- a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorStandaloneDependentResourcesE2E.java +++ b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorStandaloneDependentResourcesE2E.java @@ -14,16 +14,12 @@ class WebPageOperatorStandaloneDependentResourcesE2E extends WebPageOperatorAbst public WebPageOperatorStandaloneDependentResourcesE2E() throws FileNotFoundException {} @RegisterExtension - AbstractOperatorExtension operator = - isLocal() - ? LocallyRunOperatorExtension.builder() - .waitForNamespaceDeletion(false) - .withReconciler(new WebPageStandaloneDependentsReconciler()) - .build() - : ClusterDeployedOperatorExtension.builder() - .waitForNamespaceDeletion(false) - .withOperatorDeployment(client.load(new FileInputStream("k8s/operator.yaml")).items()) - .build(); + AbstractOperatorExtension operator = isLocal() + ? LocallyRunOperatorExtension.builder().waitForNamespaceDeletion(false) + .withReconciler(new WebPageStandaloneDependentsReconciler()).build() + : ClusterDeployedOperatorExtension.builder().waitForNamespaceDeletion(false) + .withOperatorDeployment(client.load(new FileInputStream("k8s/operator.yaml")).items()) + .build(); @Override AbstractOperatorExtension operator() {