List of usage examples for com.amazonaws.services.route53.model ResourceRecordSet getName
public String getName()
For ChangeResourceRecordSets
requests, the name of the record that you want to create, update, or delete.
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; }