private boolean deregisterOldTargets()

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;
    }