in aws-rds-dbproxytargetgroup/src/main/java/software/amazon/rds/dbproxytargetgroup/ReadHandler.java [49:86]
private ResourceModel describeDBProxyTargetGroup(final String proxyName,
final String targetGroupName) {
DescribeDBProxyTargetGroupsRequest request = new DescribeDBProxyTargetGroupsRequest()
.withDBProxyName(proxyName)
.withTargetGroupName(targetGroupName);
final DescribeDBProxyTargetGroupsResult result = clientProxy.injectCredentialsAndInvoke(request, rdsClient::describeDBProxyTargetGroups);
if (result != null && result.getTargetGroups() != null && result.getTargetGroups().size() == 1) {
ResourceModel resourceModel = Utility.resultToModel(result.getTargetGroups().get(0));
DescribeDBProxyTargetsRequest targetsRequest = new DescribeDBProxyTargetsRequest()
.withDBProxyName(proxyName)
.withTargetGroupName(targetGroupName);
final DescribeDBProxyTargetsResult targetsResult = clientProxy.injectCredentialsAndInvoke(targetsRequest, rdsClient::describeDBProxyTargets);
if (targetsResult != null) {
List<String> dbClusters = new ArrayList<>();
List<String> dbInstances = new ArrayList<>();
for (DBProxyTarget target: targetsResult.getTargets()) {
if (target.getType().equals("TRACKED_CLUSTER")) {
dbClusters.add(target.getRdsResourceId());
} else {
dbInstances.add(target.getRdsResourceId());
}
}
if (dbClusters.size() > 0) {
resourceModel.setDBClusterIdentifiers(dbClusters);
} else if (dbInstances.size() > 0){
resourceModel.setDBInstanceIdentifiers(dbInstances);
}
}
return resourceModel;
} else {
String name = String.format("%s:%s", proxyName, targetGroupName);
throw new CfnNotFoundException(ResourceModel.TYPE_NAME, name);
}
}