|
11 | 11 | import org.slf4j.LoggerFactory;
|
12 | 12 |
|
13 | 13 | import java.util.ArrayList;
|
| 14 | +import java.util.HashMap; |
14 | 15 | import java.util.List;
|
15 | 16 | import java.util.Map;
|
16 | 17 | import java.util.Optional;
|
17 | 18 |
|
| 19 | + |
18 | 20 | /**
|
19 | 21 | * Class that helps with the extra resources map and also to create ResourceSelector in order to get extra resources
|
20 | 22 | * to the function
|
@@ -56,6 +58,39 @@ public <T> List<Optional<T>> getExtraResources(Map<String, Resources> extraResou
|
56 | 58 | return result;
|
57 | 59 | }
|
58 | 60 |
|
| 61 | + public Map<String, String> getConnectionDetails(Map<String, Resources> extraResources, String resourceName) { |
| 62 | + List<Map<String, String>> resources = getConnectionDetails(extraResources, resourceName, 1); |
| 63 | + |
| 64 | + if (resources.isEmpty()) { |
| 65 | + return new HashMap<>(); |
| 66 | + } |
| 67 | + return resources.get(0); |
| 68 | + } |
| 69 | + |
| 70 | + public List<Map<String, String>> getConnectionDetails(Map<String, Resources> extraResources, String resourceName, int expectedResources) { |
| 71 | + List<Map<String, String>> result = new ArrayList<>(); |
| 72 | + Resources resources = extraResources.get(resourceName); |
| 73 | + |
| 74 | + if (resources != null && resources.getItemsCount() == expectedResources) { |
| 75 | + for (int i = 0; i < expectedResources; i++) { |
| 76 | + try { |
| 77 | + logger.debug("We have connectiondetails " + resourceName); |
| 78 | + Map<String, String> currentDetails = new HashMap<>(); |
| 79 | + resources.getItems(i).getConnectionDetailsMap().forEach((key, value) -> |
| 80 | + currentDetails.put(key, value.toStringUtf8()) |
| 81 | + ); |
| 82 | + result.add(currentDetails); |
| 83 | + } catch (Exception e) { |
| 84 | + throw new CrossplaneUnmarshallException("Error when unmarshalling the connectionDetails", e); |
| 85 | + } |
| 86 | + } |
| 87 | + |
| 88 | + } |
| 89 | + return result; |
| 90 | + } |
| 91 | + |
| 92 | + |
| 93 | + |
59 | 94 | public Map<String, ResourceSelector> createExtraResourcesSelector(String resourceName, HasMetadata type) {
|
60 | 95 | ResourceSelector resourceSelector = ResourceSelector.newBuilder()
|
61 | 96 | .setApiVersion(type.getApiVersion())
|
|
0 commit comments