List of usage examples for com.amazonaws.services.route53.model ResourceRecordSet getTTL
public Long getTTL()
The resource record cache time to live (TTL), in seconds.
From source file:com.carrotgarden.maven.aws.dns.CarrotRoute53.java
License:BSD License
public void ensureCNAME(final String source, final String target) throws Exception { final HostedZone zone = findZone(source); Util.assertNotNull(zone, "missing zone for " + source); final String zoneId = zone.getId(); final boolean isPresent; final ResourceRecordSet recordOld; {// w w w. j a v a 2 s. c o m final ResourceRecordSet recordFound = findRecord(zoneId, source); if (recordFound == null) { isPresent = false; recordOld = makeRecordCNAME(source, target); } else { isPresent = true; recordOld = recordFound; } } final ResourceRecordSet recordNew = makeRecordCNAME(source, target); recordNew.setTTL(recordOld.getTTL()); // final Collection<Change> changeList = new LinkedList<Change>(); if (isPresent) { changeList.add(new Change(ChangeAction.DELETE, recordOld)); changeList.add(new Change(ChangeAction.CREATE, recordNew)); } else { changeList.add(new Change(ChangeAction.CREATE, recordNew)); } final ChangeBatch changeRequest = new ChangeBatch(); changeRequest.setComment("updated : " + new Date()); changeRequest.setChanges(changeList); final ChangeResourceRecordSetsRequest request = new ChangeResourceRecordSetsRequest(); request.setHostedZoneId(zone.getId()); request.setChangeBatch(changeRequest); final ChangeResourceRecordSetsResult result = amazonClient.changeResourceRecordSets(request); final ChangeInfo changeResult = result.getChangeInfo(); logger.info("changeResult : \n{}", changeResult); }
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 ww . j a v a 2s . c o 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: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 a v a2s.c o 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
ObjectNode toJson(ResourceRecordSet rs) { ObjectNode n = mapper.createObjectNode(); n.put("aws_ttl", rs.getTTL()); n.put("aws_type", rs.getType()); n.put("aws_name", rs.getName()); n.put("id", rs.getType() + "_" + rs.getName()); ArrayNode an = mapper.createArrayNode(); n.set("aws_resourceRecords", an); for (ResourceRecord rr : rs.getResourceRecords()) { an.add(rr.getValue());/*w w w.ja va 2 s . com*/ } return n; }