in aws-rds-dbproxytargetgroup/src/main/java/software/amazon/rds/dbproxytargetgroup/DeleteHandler.java [84:114]
private boolean deregisterOldTargets(ResourceModel model) {
DescribeDBProxyTargetsRequest describeDBProxyTargetsRequest = new DescribeDBProxyTargetsRequest()
.withDBProxyName(model.getDBProxyName())
.withTargetGroupName(model.getTargetGroupName());
DescribeDBProxyTargetsResult describeResult = clientProxy.injectCredentialsAndInvoke(describeDBProxyTargetsRequest, rdsClient::describeDBProxyTargets);
List<String> dbClusters = new ArrayList<>();
List<String> dbInstances = new ArrayList<>();
for (DBProxyTarget target: describeResult.getTargets()) {
if (target.getType().equals("TRACKED_CLUSTER")) {
dbClusters.add(target.getRdsResourceId());
} else {
dbInstances.add(target.getRdsResourceId());
}
}
if (dbClusters.size() > 0) {
DeregisterDBProxyTargetsRequest deregisterRequest = new DeregisterDBProxyTargetsRequest()
.withDBProxyName(model.getDBProxyName())
.withDBClusterIdentifiers(dbClusters);
clientProxy.injectCredentialsAndInvoke(deregisterRequest, rdsClient::deregisterDBProxyTargets);
} else if (dbInstances.size() > 0){
DeregisterDBProxyTargetsRequest deregisterRequest = new DeregisterDBProxyTargetsRequest()
.withDBProxyName(model.getDBProxyName())
.withDBInstanceIdentifiers(dbInstances);
clientProxy.injectCredentialsAndInvoke(deregisterRequest, rdsClient::deregisterDBProxyTargets);
}
return true;
}