Example usage for com.amazonaws.services.route53.model ListResourceRecordSetsResult isTruncated

List of usage examples for com.amazonaws.services.route53.model ListResourceRecordSetsResult isTruncated

Introduction

In this page you can find the example usage for com.amazonaws.services.route53.model ListResourceRecordSetsResult isTruncated.

Prototype

Boolean isTruncated

To view the source code for com.amazonaws.services.route53.model ListResourceRecordSetsResult isTruncated.

Click Source Link

Document

A flag that indicates whether more resource record sets remain to be listed.

Usage

From source file:com.carrotgarden.maven.aws.dns.CarrotRoute53.java

License:BSD License

public List<String> listZone(final String source) {

    final List<String> nameList = new LinkedList<String>();

    final HostedZone zone = findZone(source);

    if (zone == null) {
        return nameList;
    }/*from ww  w.  j  av a  2  s .co m*/

    final ListResourceRecordSetsRequest request = new ListResourceRecordSetsRequest();

    request.setHostedZoneId(zone.getId());

    while (true) {

        final ListResourceRecordSetsResult result = amazonClient.listResourceRecordSets(request);

        final List<ResourceRecordSet> recordList = result.getResourceRecordSets();

        for (final ResourceRecordSet record : recordList) {
            nameList.add(record.getName());
        }

        if (!result.isTruncated()) {
            break;
        }

        request.setStartRecordName(result.getNextRecordName());

    }

    return nameList;

}

From source file:com.github.blacklocus.rdsecho.utl.Route53Find.java

License:Open Source License

public Iterable<ResourceRecordSet> resourceRecordSets(final String hostedZoneId,
        final Predicate<ResourceRecordSet> predicate) {
    return new PagingIterable<ResourceRecordSet>(new Supplier<Iterable<ResourceRecordSet>>() {

        String nextRecordName = null;
        boolean isTruncated = true;

        @Override/* w ww. j  ava  2  s .  c  o  m*/
        public Iterable<ResourceRecordSet> get() {
            if (isTruncated) {
                ListResourceRecordSetsRequest request = new ListResourceRecordSetsRequest()
                        .withHostedZoneId(hostedZoneId).withStartRecordName(nextRecordName);
                ListResourceRecordSetsResult result = route53.listResourceRecordSets(request);
                nextRecordName = result.getNextRecordName();
                isTruncated = result.isTruncated();
                return Iterables.filter(result.getResourceRecordSets(), predicate);

            } else {
                return Collections.emptyList();
            }
        }
    });
}

From source file:fr.xebia.cloud.amazon.aws.tools.AmazonAwsUtils.java

License:Apache License

public static void deleteCnameIfExist(Iterable<String> cnames, HostedZone hostedZone, AmazonRoute53 route53) {
    // List all//from   w w  w  . jav a  2s . co  m
    ListResourceRecordSetsRequest listResourceRecordSetsRequest = new ListResourceRecordSetsRequest()
            // .withStartRecordType(RRType.CNAME)
            .withHostedZoneId(hostedZone.getId());
    ListResourceRecordSetsResult listResourceRecordSetsResult = route53
            .listResourceRecordSets(listResourceRecordSetsRequest);

    if (listResourceRecordSetsResult.isTruncated()) {
        logger.warn("truncated result");
    }

    Function<ResourceRecordSet, String> cnameExtractor = new Function<ResourceRecordSet, String>() {
        @Override
        public String apply(@Nullable ResourceRecordSet resourceRecordSet) {
            if (resourceRecordSet == null) {
                return null;
            }
            if (!RRType.CNAME.equals(RRType.fromValue(resourceRecordSet.getType()))) {
                return null;
            }
            return resourceRecordSet.getName();
        }
    };

    Iterable<ResourceRecordSet> existingCnamesAsResourceRecordSet = Iterables
            .filter(listResourceRecordSetsResult.getResourceRecordSets(), new Predicate<ResourceRecordSet>() {
                @Override
                public boolean apply(@Nullable ResourceRecordSet resourceRecordSet) {
                    return RRType.CNAME.equals(RRType.fromValue(resourceRecordSet.getType()));
                }
            });

    final ImmutableMap<String, ResourceRecordSet> existingCnames = Maps
            .uniqueIndex(existingCnamesAsResourceRecordSet, cnameExtractor);

    Sets.SetView<String> cnamesToDelete = Sets.intersection(Sets.newHashSet(cnames), existingCnames.keySet());

    Function<String, Change> cnameToDeleteCnameChange = new Function<String, Change>() {
        @Override
        public Change apply(@Nullable String cname) {
            ResourceRecordSet existingResourceRecordSet = existingCnames.get(cname);

            return new Change().withAction(ChangeAction.DELETE)
                    .withResourceRecordSet(new ResourceRecordSet().withType(RRType.CNAME).withName(cname)
                            .withTTL(existingResourceRecordSet.getTTL())
                            .withResourceRecords(existingResourceRecordSet.getResourceRecords()));
        }
    };

    List<Change> changes = Lists.newArrayList(Iterables.transform(cnamesToDelete, cnameToDeleteCnameChange));
    if (changes.isEmpty()) {
        logger.debug("No CNAME to delete");
        return;
    }

    logger.info("Delete CNAME changes {}", changes);
    ChangeResourceRecordSetsRequest changeResourceRecordSetsRequest = new ChangeResourceRecordSetsRequest()
            .withHostedZoneId(hostedZone.getId()).withChangeBatch(new ChangeBatch().withChanges(changes));
    route53.changeResourceRecordSets(changeResourceRecordSetsRequest);
}

From source file:org.lendingclub.mercator.aws.Route53Scanner.java

License:Apache License

protected void projectHostedZoneResult(GetHostedZoneResult hostedZoneResult) {

    HostedZone hz = hostedZoneResult.getHostedZone();
    ObjectNode n = toJson(hostedZoneResult);

    getNeoRxClient().execCypher(/* w w w.  j  ava  2 s .co  m*/
            "merge (a:AwsRoute53HostedZone {aws_id:{aws_id}}) set a+={props}, a.updateTs=timestamp() return a",
            "aws_id", n.get("aws_id").asText(), "props", n);

    ListResourceRecordSetsRequest request = new ListResourceRecordSetsRequest();
    request.setHostedZoneId(hz.getId());
    ListResourceRecordSetsResult result;

    int i = 0;
    long timestamp = System.currentTimeMillis();

    do {
        result = getClient().listResourceRecordSets(request);
        request.setStartRecordName(result.getNextRecordName());

        for (ResourceRecordSet rs : result.getResourceRecordSets()) {

            projectResourceRecordSet(hz.getId(), rs, timestamp);

        }

    } while (result.isTruncated());

    getNeoRxClient().execCypher(
            "match (z:AwsRoute53HostedZone {aws_id:{aws_id}})--(r:AwsRoute53RecordSet) where r.updateTs<{ts} detach delete r",
            "ts", timestamp, "aws_id", hz.getId());
    getNeoRxClient().execCypher(
            "match (a:AwsRoute53RecordSet) where not (a)-[:CONTAINS]-(:AwsRoute53HostedZone) detach delete a");
}