Example usage for com.amazonaws.services.route53.model ResourceRecordSet getName

List of usage examples for com.amazonaws.services.route53.model ResourceRecordSet getName

Introduction

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

Prototype


public String getName() 

Source Link

Document

For ChangeResourceRecordSets requests, the name of the record that you want to create, update, or delete.

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()));

    /**/*  w  w w  . j a v  a2 s  .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;
    }//from   w ww . j  a  v  a2s. c  om

    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);/*from w  w w  .j  a  va2 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.EchoPromote.java

License:Open Source License

@Override
boolean traverseStage(DBInstance instance) {

    LOG.info("Reading current DNS records");
    String tld = EchoUtil.getTLD(cfg.promoteCname()) + '.';
    HostedZone hostedZone = route53Find.hostedZone(nameEquals(tld)).get();
    LOG.info("  Found corresponding HostedZone. name: {} id: {}", hostedZone.getName(), hostedZone.getId());

    ResourceRecordSet resourceRecordSet = route53Find
            .resourceRecordSet(hostedZone.getId(), cnameEquals(cfg.promoteCname())).get();
    ResourceRecord resourceRecord = getOnlyElement(resourceRecordSet.getResourceRecords());
    LOG.info("  Found CNAME {} with current value {}", resourceRecordSet.getName(), resourceRecord.getValue());

    Endpoint endpoint = instance.getEndpoint();
    String tagEchoManaged = echo.getTagEchoManaged();
    String dbInstanceId = instance.getDBInstanceIdentifier();
    if (null == endpoint) {
        LOG.info("Echo DB instance {} (id: {}) has no address. Is it still initializing?", tagEchoManaged,
                dbInstanceId);/* ww w  . j  ava  2  s. c  om*/
        return false;
    }
    String instanceAddr = endpoint.getAddress();
    if (resourceRecord.getValue().equals(instanceAddr)) {
        LOG.info("  Echo DB instance {} ({}) lines up with CNAME {}. Nothing to do.", tagEchoManaged,
                instanceAddr, resourceRecordSet.getName());
        return false;
    } else {
        LOG.info("  Echo DB instance {} ({}) differs from CNAME {}.", tagEchoManaged, instanceAddr,
                resourceRecordSet.getName());
    }

    if (cfg.interactive()) {
        String format = "Are you sure you want to promote %s to be the new target of %s? Input %s to confirm.";
        if (!EchoUtil.prompt(dbInstanceId, format, dbInstanceId, cfg.promoteCname(), dbInstanceId)) {
            LOG.info("User declined to proceed. Exiting.");
            return false;
        }
    }

    LOG.info("Updating CNAME {} from {} to {}", cfg.name(), resourceRecord.getValue(), instanceAddr);
    ChangeResourceRecordSetsRequest request = new ChangeResourceRecordSetsRequest()
            .withHostedZoneId(hostedZone.getId())
            .withChangeBatch(new ChangeBatch().withChanges(
                    new Change(ChangeAction.UPSERT, new ResourceRecordSet(cfg.promoteCname(), RRType.CNAME)
                            .withResourceRecords(new ResourceRecord(instanceAddr)).withTTL(cfg.promoteTtl()))));
    route53.changeResourceRecordSets(request);

    Optional<String[]> promoteTags = cfg.promoteTags();
    if (promoteTags.isPresent()) {
        List<Tag> tags = EchoUtil.parseTags(promoteTags.get());
        if (tags.size() > 0) {
            LOG.info("Applying tags on promote: {}", Arrays.asList(tags));
            AddTagsToResourceRequest tagsRequest = new AddTagsToResourceRequest().withResourceName(
                    RdsFind.instanceArn(cfg.region(), cfg.accountNumber(), instance.getDBInstanceIdentifier()));
            tagsRequest.setTags(tags);
            rds.addTagsToResource(tagsRequest);
        }
    }

    LOG.info("Searching for any existing promoted instance to demote.");

    return true;
}

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

License:Open Source License

public static Predicate<ResourceRecordSet> cnameEquals(final String cname) {
    return new Predicate<ResourceRecordSet>() {
        @Override//from ww  w .j ava2s  .com
        public boolean apply(ResourceRecordSet resourceRecordSet) {
            return resourceRecordSet.getName().equals(cname) && resourceRecordSet.getType().equals("CNAME");
        }
    };
}

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());
            }//w  w w  .ja va  2  s.  c  om
            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.msi.dns53.server.query.ListResourceRecordSets.java

License:Apache License

private ListResourceRecordSetsResult listResourceRecordSets(Session sess, ListResourceRecordSetsRequest request)
        throws ErrorResponse {
    ListResourceRecordSetsResult result = new ListResourceRecordSetsResult();
    AccessMySQL sqlaccess = AccessMySQL.getInstance();

    String tableName = sqlaccess.getTableName(request.getHostedZoneId(), this.getAccountId());
    if (tableName.equals("FAILED")) {
        throw DNS53Faults.NoSuchHostedZone(request.getHostedZoneId());
    }/*from   w  w  w. j a v a2  s.co  m*/
    if (request.getStartRecordType() != null && request.getStartRecordName() == null) {
        throw DNS53Faults.InvalidInput();
    }
    logger.debug(
            "Table " + tableName + " is found for hosted zone with id, " + request.getHostedZoneId() + ".");

    String zoneName = sqlaccess.getZoneName(request.getHostedZoneId());
    logger.debug("Target hosted zone: " + zoneName);

    RequestHandler.checkType(request.getStartRecordType());
    List<DNS53ResourceRecord> records = sqlaccess.listResourceRecords(sess, request.getHostedZoneId(),
            request.getStartRecordName(), null, request.getStartRecordType(), null, -1, -1);
    logger.debug("There are " + records.size() + " resource record sets in this hosted zone.");

    int maxItems = -1;
    if (request.getMaxItems() != null) {
        try {
            maxItems = Integer.valueOf(request.getMaxItems());
        } catch (NumberFormatException e) {
            throw DNS53Faults.InvalidArgument("maxitems parameter must be an integer between 1 and 100.");
        }
    }
    if (maxItems == -1) {
        maxItems = 100; // default
    }
    boolean truncated = false;
    if (maxItems < records.size()) {
        truncated = true;
    }

    Collection<ResourceRecordSet> resourceRecordSets = new LinkedList<ResourceRecordSet>();
    /*
     * ResourceRecordSet ns = new ResourceRecordSet(); ns.setName(zoneName);
     * ns.setType("NS"); Collection<ResourceRecord> nsRecords = new
     * LinkedList<ResourceRecord>();
     */

    int i = 0;
    while (i < records.size() && i < maxItems) {
        DNS53ResourceRecord rec = records.get(i);
        ResourceRecordSet temp = new ResourceRecordSet();
        temp.setName(rec.getName());
        temp.setType(rec.getRdtype());
        temp.setTTL(Long.valueOf(rec.getTtl()));
        if (rec.getSid() != null) {
            temp.setSetIdentifier(rec.getSid());
        }
        if (rec.getWeight() != -1) {
            temp.setWeight(rec.getWeight());
        }
        Collection<ResourceRecord> resourceRecords = new LinkedList<ResourceRecord>();
        resourceRecords.add(new ResourceRecord().withValue(rec.getRdata()));
        temp.setResourceRecords(resourceRecords);
        resourceRecordSets.add(temp);

        ++i;
    }

    // now reduce the duplicates
    TreeMap<String, ResourceRecordSet> map = new TreeMap<String, ResourceRecordSet>();
    for (ResourceRecordSet rs : resourceRecordSets) {
        String key = rs.getName() + "::" + rs.getType();
        ResourceRecordSet temp = map.get(key);
        if (temp == null) {
            map.put(key, rs);
        } else {
            temp.getResourceRecords().add(new ResourceRecord(rs.getResourceRecords().get(0).getValue()));
        }
    }

    resourceRecordSets = map.values();

    result.setResourceRecordSets(resourceRecordSets);
    result.setIsTruncated(truncated);
    if (truncated) {
        result.setNextRecordName("UNIMPLEMENTED");
        result.setNextRecordType("UNIMPLEMENTED");
    }
    result.setMaxItems(String.valueOf(maxItems));

    return result;
}

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());
    }/* w  ww .  jav a2s .  c o 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:fr.xebia.cloud.amazon.aws.tools.AmazonAwsUtils.java

License:Apache License

public static void deleteCnameIfExist(Iterable<String> cnames, HostedZone hostedZone, AmazonRoute53 route53) {
    // List all// w  w  w . j a  va 2s.  c  om
    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 boolean containEntry(DnsEntry dnsEntry, boolean stric) {
    if (dnsEntry == null) {
        throw new IllegalArgumentException("dnsEntry must be defined.");
    }/*from w w w. j  a v  a  2s .c  om*/
    HostedZone hostedZone = getHostedZone();
    boolean found = false;
    if (hostedZone != null) {
        Iterator<ResourceRecordSet> iterator = getResourceRecordSet(hostedZone).iterator();
        String dnsEntryName = valideDnsName(dnsEntry.getName());
        while (!found && iterator.hasNext()) {
            ResourceRecordSet recordSet = iterator.next();
            found = recordSet.getName().equals(dnsEntryName)
                    && DnsEntry.Type.valueOf(recordSet.getType()).equals(dnsEntry.getType());
            if (found && stric) {
                Iterator<ResourceRecord> recordIterator = recordSet.getResourceRecords().iterator();
                boolean sameValue = false;
                while (!sameValue && recordIterator.hasNext()) {
                    ResourceRecord record = recordIterator.next();
                    sameValue = dnsEntry.getValue().equals(record.getValue());
                }
                found = sameValue;
            }
        }
    }
    return found;
}