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

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

Introduction

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

Prototype


public java.util.List<ResourceRecordSet> getResourceRecordSets() 

Source Link

Document

Information about multiple resource record sets.

Usage

From source file:br.com.ingenieux.mojo.beanstalk.cmd.dns.BindDomainsCommand.java

License:Apache License

protected void assignDomain(BindDomainsContext ctx, String record, String zoneId) {
    ChangeBatch changeBatch = new ChangeBatch();

    changeBatch.setComment(format("Updated for env %s", ctx.getCurEnv().getCNAME()));

    /**//from  ww w .  j  a  v  a 2s.c  om
     * Look for Existing Resource Record Sets
     */
    {
        ResourceRecordSet resourceRecordSet = null;

        ListResourceRecordSetsResult listResourceRecordSets = r53
                .listResourceRecordSets(new ListResourceRecordSetsRequest(zoneId));

        for (ResourceRecordSet rrs : listResourceRecordSets.getResourceRecordSets()) {
            if (!rrs.getName().equals(record)) {
                continue;
            }

            boolean matchesTypes = "A".equals(rrs.getType()) || "CNAME".equals(rrs.getType());

            if (!matchesTypes) {
                continue;
            }

            if (isInfoEnabled()) {
                info("Excluding resourceRecordSet %s for domain %s", rrs, record);
            }

            changeBatch.getChanges().add(new Change(ChangeAction.DELETE, rrs));
        }
    }

    /**
     * Then Add Ours
     */
    ResourceRecordSet resourceRecordSet = new ResourceRecordSet();

    resourceRecordSet.setName(record);
    resourceRecordSet.setType(RRType.A);

    if (ctx.singleInstance) {
        final String address = ctx.getCurEnv().getEndpointURL();
        ResourceRecord resourceRecord = new ResourceRecord(address);

        resourceRecordSet.setTTL(60L);
        resourceRecordSet.setResourceRecords(asList(resourceRecord));

        if (isInfoEnabled()) {
            info("Adding resourceRecordSet %s for domain %s mapped to %s", resourceRecordSet, record, address);
        }
    } else {
        AliasTarget aliasTarget = new AliasTarget();

        aliasTarget.setHostedZoneId(ctx.getElbHostedZoneId());
        aliasTarget.setDNSName(ctx.getCurEnv().getEndpointURL());

        resourceRecordSet.setAliasTarget(aliasTarget);

        if (isInfoEnabled()) {
            info("Adding resourceRecordSet %s for domain %s mapped to %s", resourceRecordSet, record,
                    aliasTarget.getDNSName());
        }
    }

    changeBatch.getChanges().add(new Change(ChangeAction.CREATE, resourceRecordSet));

    if (isInfoEnabled()) {
        info("Changes to be sent: %s", changeBatch.getChanges());
    }

    ChangeResourceRecordSetsRequest req = new ChangeResourceRecordSetsRequest(zoneId, changeBatch);

    r53.changeResourceRecordSets(req);
}

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;
    }/* www  . j a v  a2 s .c o 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.carrotgarden.maven.aws.dns.CarrotRoute53.java

License:BSD License

public ResourceRecordSet findRecord(final String zoneId, final String source) {

    final ListResourceRecordSetsRequest request = new ListResourceRecordSetsRequest();

    request.setHostedZoneId(zoneId);//www .jav  a2 s  . c o m

    final ListResourceRecordSetsResult result = amazonClient.listResourceRecordSets(request);

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

    for (final ResourceRecordSet record : recordList) {

        final String name = record.getName();

        if (name.equals(source)) {
            return record;
        }

    }

    return null;

}

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  a va2 s.  c om*/
        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:com.msi.dns53.server.query.ListResourceRecordSets.java

License:Apache License

@Override
public String marshall(MarshallStruct<ListResourceRecordSetsResult> input, HttpServletResponse resp)
        throws Exception {
    ListResourceRecordSetsResult result = input.getMainObject();

    XMLNode response = new XMLNode(DNS53Constants.LISTRESOURCERECORDSETSRESPONSE);
    response.addAttr(DNS53Constants.XMLNS, DNS53Constants.XMLNS_VALUE);
    if (result.getResourceRecordSets() != null) {
        XMLNode rrSet = QueryUtil.addNode(response, DNS53Constants.RESOURCERECORDSETS);
        for (ResourceRecordSet rrs : result.getResourceRecordSets()) {
            XMLNode rr = QueryUtil.addNode(rrSet, DNS53Constants.RESOURCERECORDSET);
            QueryUtil.addNode(rr, DNS53Constants.NAME, rrs.getName());
            QueryUtil.addNode(rr, DNS53Constants.TYPE, rrs.getType());
            QueryUtil.addNode(rr, DNS53Constants.TTL, rrs.getTTL());
            if (rrs.getSetIdentifier() != null) {
                QueryUtil.addNode(rr, DNS53Constants.SETIDENTIFIER, rrs.getSetIdentifier());
            }/* www .j  a  v a2 s  . co  m*/
            if (rrs.getWeight() != null && rrs.getWeight() != -1) {
                QueryUtil.addNode(rr, DNS53Constants.WEIGHT, rrs.getWeight());
            }
            if (rrs.getResourceRecords() != null && rrs.getResourceRecords().size() > 0) {
                XMLNode records = QueryUtil.addNode(rr, DNS53Constants.RESOURCERECORDS);
                for (ResourceRecord record : rrs.getResourceRecords()) {
                    XMLNode r = QueryUtil.addNode(records, DNS53Constants.RESOURCERECORD);
                    QueryUtil.addNode(r, DNS53Constants.VALUE, record.getValue());
                }
            }
        }
    }
    QueryUtil.addNode(response, DNS53Constants.ISTRUNCATED, result.getIsTruncated());
    QueryUtil.addNode(response, DNS53Constants.MAXITEMS, result.getMaxItems());
    if (result.getIsTruncated() && result.getNextRecordName() != null) {
        QueryUtil.addNode(response, DNS53Constants.NEXTRECORDNAME, result.getNextRecordName());
    }
    if (result.getIsTruncated() && result.getNextRecordType() != null) {
        QueryUtil.addNode(response, DNS53Constants.NEXTRECORDTYPE, result.getNextRecordType());
    }
    if (result.getIsTruncated() && result.getNextRecordIdentifier() != null) {
        QueryUtil.addNode(response, DNS53Constants.NEXTRECORDIDENTIFIER, result.getNextRecordIdentifier());
    }
    return response.toString();
}

From source file:com.renatodelgaudio.awsupdate.SimpleRecordService.java

License:Open Source License

public ResourceRecordSet getCurrentRecordSet() {

    if (log.isDebugEnabled()) {
        log.debug("zoneId:" + config.getZoneId());
        log.debug("recordName:" + config.getRecordName());
    }//from   www  .  j a  va 2 s .  co  m
    ListResourceRecordSetsRequest request = new ListResourceRecordSetsRequest();
    request.setHostedZoneId(config.getZoneId());

    ListResourceRecordSetsResult result = config.getAmazonRoute53Client().listResourceRecordSets(request);
    List<ResourceRecordSet> recordSets = result.getResourceRecordSets();

    for (ResourceRecordSet recordSet : recordSets) {

        String currName = recordSet.getName();

        if (currName == null)
            continue;
        currName = currName.trim();

        // AWS ends name with dot.
        if (currName.endsWith("."))
            currName = currName.substring(0, currName.length() - 1);

        if (equalsIgnoreCase(config.getRecordName(), currName)) {
            return recordSet;
        }
    }

    return null;
}

From source file:edu.umass.cs.aws.support.Route53.java

License:Apache License

private static void listRecordSetsForHostedZone() {

    ListResourceRecordSetsRequest request = new ListResourceRecordSetsRequest();
    request.setHostedZoneId(HOSTED_ZONE_ID);

    ListResourceRecordSetsResult result = route53.listResourceRecordSets(request);
    List<ResourceRecordSet> recordSets = result.getResourceRecordSets();

    for (ResourceRecordSet recordSet : recordSets) {

        System.out.println(recordSet.toString());
    }/* ww  w  .j  a  v  a  2  s . c o m*/
}

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  .j  av a2  s . 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:io.kodokojo.service.aws.Route53DnsManager.java

License:Open Source License

private List<ResourceRecordSet> getResourceRecordSet(HostedZone hostedZone) {
    ListResourceRecordSetsRequest listResourceRecordSetsRequest = new ListResourceRecordSetsRequest();
    listResourceRecordSetsRequest.setHostedZoneId(getHostedZoneID(hostedZone));
    ListResourceRecordSetsResult recordSetsResult = client
            .listResourceRecordSets(listResourceRecordSetsRequest);
    return recordSetsResult.getResourceRecordSets();
}

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(/*from w w  w  .  j ava  2 s .c  o 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");
}