Skip to content

Commit 58cf299

Browse files
authored
Added range check for extra resources (#15)
Signed-off-by: Knut-Erik Johnsen <[email protected]>
1 parent f25bf16 commit 58cf299

File tree

2 files changed

+7
-30
lines changed

2 files changed

+7
-30
lines changed

crossplane-function-springboot-starter/src/main/java/io/crossplane/compositefunctions/starter/conversion/CrossplaneExtraResourcesService.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import io.crossplane.compositefunctions.protobuf.ResourceSelector;
66
import io.crossplane.compositefunctions.protobuf.Resources;
7-
import io.crossplane.compositefunctions.starter.exception.CrossplaneUnexpectedItemsException;
87
import io.crossplane.compositefunctions.starter.exception.CrossplaneUnmarshallException;
98
import io.fabric8.kubernetes.api.model.HasMetadata;
109
import io.fabric8.kubernetes.client.utils.Serialization;
@@ -31,17 +30,19 @@ public class CrossplaneExtraResourcesService {
3130

3231

3332
public <T> Optional<T> getExtraResource(Map<String, Resources> extraResources, String resourceName, Class<T> clazz) {
34-
return getExtraResources(extraResources, resourceName, 1, clazz).get(0);
33+
List<Optional<T>> resources = getExtraResources(extraResources, resourceName, 1, clazz);
34+
35+
if (resources.isEmpty()) {
36+
return Optional.empty();
37+
}
38+
return resources.get(0);
3539
}
3640

3741
public <T> List<Optional<T>> getExtraResources(Map<String, Resources> extraResources, String resourceName, int expectedResources, Class<T> clazz) {
3842
List<Optional<T>> result = new ArrayList<>();
3943
Resources resources = extraResources.get(resourceName);
4044

41-
if (resources != null ) {
42-
if (resources.getItemsCount() != expectedResources) {
43-
throw new CrossplaneUnexpectedItemsException("Unexpected number of resources. Expected " + expectedResources + " but got " + resources.getItemsCount() + ".");
44-
}
45+
if (resources != null && resources.getItemsCount() == expectedResources) {
4546
for (int i = 0; i < expectedResources; i++) {
4647
try {
4748
logger.debug("We have an extra resource " + clazz.getSimpleName());

crossplane-function-springboot-starter/src/main/java/io/crossplane/compositefunctions/starter/exception/CrossplaneUnexpectedItemsException.java

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)