private NeptuneClusterMetadata addAnnotations()

in neptune-endpoints-info-lambda/src/main/java/software/amazon/lambda/NeptuneEndpointsInfoLambda.java [138:177]


    private NeptuneClusterMetadata addAnnotations(NeptuneClusterMetadata clusterMetadata) {

        List<String> suspended = Arrays.stream(suspendedEndpoints.split(","))
                .map(String::trim)
                .collect(Collectors.toList());

        for (NeptuneInstanceMetadata instance : clusterMetadata.getInstances()) {
            for (String suspendedEndpoint : suspended) {

                if (suspendedEndpoint.equals("all")) {
                    setSuspended(instance);
                } else if (suspendedEndpoint.equals("writer") && instance.isPrimary()) {
                    setSuspended(instance);
                } else if (suspendedEndpoint.equals("reader") && instance.isReader()) {
                    setSuspended(instance);
                } else if (suspendedEndpoint.equalsIgnoreCase(instance.getAddress())) {
                    setSuspended(instance);
                } else if (suspendedEndpoint.equalsIgnoreCase(instance.getInstanceId())) {
                    setSuspended(instance);
                }
            }

            if (instance.hasTag(SUSPENDED_KEY, SUSPENDED_VALUE)) {
                setSuspended(instance);
            }
        }

        for (String suspendedEndpoint : suspended) {
            if (suspendedEndpoint.equals("all")) {
                setSuspended(clusterMetadata.getClusterEndpoint());
                setSuspended(clusterMetadata.getReaderEndpoint());
            } else if (suspendedEndpoint.equals("writer")) {
                setSuspended(clusterMetadata.getClusterEndpoint());
            } else if (suspendedEndpoint.equals("reader")) {
                setSuspended(clusterMetadata.getReaderEndpoint());
            }
        }

        return clusterMetadata;
    }