From 4a23c6ba534fdfe958a208f53784e4efddfc7b21 Mon Sep 17 00:00:00 2001 From: Knut-Erik Johnsen Date: Thu, 27 Jun 2024 14:42:40 +0200 Subject: [PATCH] Feature/add size check for resources (#18) * Removed extra = in newVersion. Added target to release action to use the correct branch (#7) (#8) Signed-off-by: Knut-Erik Johnsen * Removed extra = in newVersion. Added target to release action to use the correct branch (#7) (#8) (#9) Signed-off-by: Knut-Erik Johnsen * Release/1.14 (#12) * Removed extra = in newVersion. Added target to release action to use the correct branch (#7) Signed-off-by: Knut-Erik Johnsen * Feature/update workflows (#11) * Removed extra = in newVersion. Added target to release action to use the correct branch Signed-off-by: Knut-Erik Johnsen * Downgraded grpc to same version as the used springboot starter. Added javadoc. Removed componentscan since it's bad practie Signed-off-by: Knut-Erik Johnsen --------- Signed-off-by: Knut-Erik Johnsen --------- Signed-off-by: Knut-Erik Johnsen * Release/1.15 (#13) * Removed extra = in newVersion. Added target to release action to use the correct branch (#7) (#8) Signed-off-by: Knut-Erik Johnsen * Release/1.14 (#12) * Removed extra = in newVersion. Added target to release action to use the correct branch (#7) Signed-off-by: Knut-Erik Johnsen * Feature/update workflows (#11) * Removed extra = in newVersion. Added target to release action to use the correct branch Signed-off-by: Knut-Erik Johnsen * Downgraded grpc to same version as the used springboot starter. Added javadoc. Removed componentscan since it's bad practie Signed-off-by: Knut-Erik Johnsen --------- Signed-off-by: Knut-Erik Johnsen --------- Signed-off-by: Knut-Erik Johnsen --------- Signed-off-by: Knut-Erik Johnsen * Added range check for extra resources Signed-off-by: Knut-Erik Johnsen --------- Signed-off-by: Knut-Erik Johnsen --- .../conversion/CrossplaneExtraResourcesService.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/crossplane-function-springboot-starter/src/main/java/io/crossplane/compositefunctions/starter/conversion/CrossplaneExtraResourcesService.java b/crossplane-function-springboot-starter/src/main/java/io/crossplane/compositefunctions/starter/conversion/CrossplaneExtraResourcesService.java index 13941d8..fde435e 100644 --- a/crossplane-function-springboot-starter/src/main/java/io/crossplane/compositefunctions/starter/conversion/CrossplaneExtraResourcesService.java +++ b/crossplane-function-springboot-starter/src/main/java/io/crossplane/compositefunctions/starter/conversion/CrossplaneExtraResourcesService.java @@ -4,7 +4,6 @@ import com.google.protobuf.util.JsonFormat; import io.crossplane.compositefunctions.protobuf.ResourceSelector; import io.crossplane.compositefunctions.protobuf.Resources; -import io.crossplane.compositefunctions.starter.exception.CrossplaneUnexpectedItemsException; import io.crossplane.compositefunctions.starter.exception.CrossplaneUnmarshallException; import io.fabric8.kubernetes.api.model.HasMetadata; import io.fabric8.kubernetes.client.utils.Serialization; @@ -31,17 +30,19 @@ public class CrossplaneExtraResourcesService { public Optional getExtraResource(Map extraResources, String resourceName, Class clazz) { - return getExtraResources(extraResources, resourceName, 1, clazz).get(0); + List> resources = getExtraResources(extraResources, resourceName, 1, clazz); + + if (resources.isEmpty()) { + return Optional.empty(); + } + return resources.get(0); } public List> getExtraResources(Map extraResources, String resourceName, int expectedResources, Class clazz) { List> result = new ArrayList<>(); Resources resources = extraResources.get(resourceName); - if (resources != null ) { - if (resources.getItemsCount() != expectedResources) { - throw new CrossplaneUnexpectedItemsException("Unexpected number of resources. Expected " + expectedResources + " but got " + resources.getItemsCount() + "."); - } + if (resources != null && resources.getItemsCount() == expectedResources) { for (int i = 0; i < expectedResources; i++) { try { logger.debug("We have an extra resource " + clazz.getSimpleName());