List of usage examples for com.amazonaws.services.route53.model ChangeAction DELETE
ChangeAction DELETE
To view the source code for com.amazonaws.services.route53.model ChangeAction DELETE.
Click Source Link
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())); /**/* ww w . j a v a 2s . c o m*/ * 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 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; {/*from w w w . j a v a2 s.c om*/ 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: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 av a 2 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:org.ofbiz.tenant.amazonaws.AwsServices.java
License:Apache License
/** * update Amazon Rout53 resource record set * @param ctx/*from www .jav a 2 s. c om*/ * @param context * @return */ public static Map<String, Object> updateAmazonRoute53ResourceRecordSet(DispatchContext ctx, Map<String, Object> context) { String hostedZoneId = (String) context.get("hostedZoneId"); String recordSetName = (String) context.get("recordSetName"); String recordSetType = (String) context.get("recordSetType"); List<String> domainNames = UtilGenerics.checkList(context.get("domainNames")); List<String> newDomainNames = UtilGenerics.checkList(context.get("newDomainNames")); String dNSName = (String) context.get("dNSName"); String resourceRecordSetId = (String) context.get("resourceRecordSetId"); Long weight = (Long) context.get("weight"); Long tTL = (Long) context.get("tTL"); try { AmazonRoute53 route53 = AwsFactory.getAmazonRoute53(); RRType rrType = AwsUtil.getRRType(recordSetType); ResourceRecordSet deleteResourceRecordSet = new ResourceRecordSet(recordSetName, rrType); ResourceRecordSet createResourceRecordSet = new ResourceRecordSet(recordSetName, rrType); // set alias target if (UtilValidate.isNotEmpty(dNSName)) { AliasTarget aliasTarget = new AliasTarget(hostedZoneId, dNSName); deleteResourceRecordSet.setAliasTarget(aliasTarget); createResourceRecordSet.setAliasTarget(aliasTarget); } // set resource record set identifier if (UtilValidate.isNotEmpty(resourceRecordSetId)) { deleteResourceRecordSet.setSetIdentifier(resourceRecordSetId); createResourceRecordSet.setSetIdentifier(resourceRecordSetId); } // set weight if (UtilValidate.isEmpty(weight)) { weight = 0L; } deleteResourceRecordSet.setWeight(weight); createResourceRecordSet.setWeight(weight); // set TTL if (UtilValidate.isEmpty(tTL)) { tTL = 300L; } deleteResourceRecordSet.setTTL(tTL); createResourceRecordSet.setTTL(tTL); //--------- Delete Resource Record Set Change List<ResourceRecord> deleteResourceRecords = FastList.newInstance(); // set delete resource records for (String domainName : domainNames) { ResourceRecord resourceRecord = new ResourceRecord(domainName); deleteResourceRecords.add(resourceRecord); } deleteResourceRecordSet.setResourceRecords(deleteResourceRecords); Change deleteChange = new Change(ChangeAction.DELETE, deleteResourceRecordSet); //-------- Create New Resource Record Set Change List<ResourceRecord> createResourceRecords = FastList.newInstance(); // set create resource records for (String newDomainName : newDomainNames) { ResourceRecord resourceRecord = new ResourceRecord(newDomainName); createResourceRecords.add(resourceRecord); } createResourceRecordSet.setResourceRecords(createResourceRecords); Change createChange = new Change(ChangeAction.CREATE, createResourceRecordSet); // send request List<Change> changes = FastList.newInstance(); changes.add(deleteChange); changes.add(createChange); ChangeBatch changeBatch = new ChangeBatch(changes); ChangeResourceRecordSetsRequest request = new ChangeResourceRecordSetsRequest(hostedZoneId, changeBatch); ChangeResourceRecordSetsResult resourceRecordSetsResult = route53.changeResourceRecordSets(request); ChangeInfo changeInfo = resourceRecordSetsResult.getChangeInfo(); String changeId = changeInfo.getId(); String status = changeInfo.getStatus(); Date submittedAt = changeInfo.getSubmittedAt(); String comment = changeInfo.getComment(); Map<String, Object> results = ServiceUtil.returnSuccess(); results.put("changeId", changeId); results.put("status", status); results.put("submittedAt", submittedAt); results.put("comment", comment); return results; } catch (Exception e) { Debug.logError(e, module); return ServiceUtil.returnError(e.getMessage()); } }
From source file:org.ofbiz.tenant.amazonaws.AwsServices.java
License:Apache License
/** * delete Amazon Rout53 resource record set * @param ctx/*from www .ja va 2 s . c o m*/ * @param context * @return */ public static Map<String, Object> deleteAmazonRoute53ResourceRecordSet(DispatchContext ctx, Map<String, Object> context) { String hostedZoneId = (String) context.get("hostedZoneId"); String recordSetName = (String) context.get("recordSetName"); String recordSetType = (String) context.get("recordSetType"); List<String> domainNames = UtilGenerics.checkList(context.get("domainNames")); String dNSName = (String) context.get("dNSName"); String resourceRecordSetId = (String) context.get("resourceRecordSetId"); Long weight = (Long) context.get("weight"); Long tTL = (Long) context.get("tTL"); try { AmazonRoute53 route53 = AwsFactory.getAmazonRoute53(); RRType rrType = AwsUtil.getRRType(recordSetType); ResourceRecordSet resourceRecordSet = new ResourceRecordSet(recordSetName, rrType); // set alias target if (UtilValidate.isNotEmpty(dNSName)) { AliasTarget aliasTarget = new AliasTarget(hostedZoneId, dNSName); resourceRecordSet.setAliasTarget(aliasTarget); } // set resource record set identifier if (UtilValidate.isNotEmpty(resourceRecordSetId)) { resourceRecordSet.setSetIdentifier(resourceRecordSetId); } // set resource records List<ResourceRecord> resourceRecords = FastList.newInstance(); for (String domainName : domainNames) { ResourceRecord resourceRecord = new ResourceRecord(domainName); resourceRecords.add(resourceRecord); } resourceRecordSet.setResourceRecords(resourceRecords); // set weight if (UtilValidate.isEmpty(weight)) { weight = 0L; } resourceRecordSet.setWeight(weight); // set TTL if (UtilValidate.isEmpty(tTL)) { tTL = 300L; } resourceRecordSet.setTTL(tTL); Change change = new Change(ChangeAction.DELETE, resourceRecordSet); List<Change> changes = FastList.newInstance(); changes.add(change); ChangeBatch changeBatch = new ChangeBatch(changes); ChangeResourceRecordSetsRequest request = new ChangeResourceRecordSetsRequest(hostedZoneId, changeBatch); ChangeResourceRecordSetsResult resourceRecordSetsResult = route53.changeResourceRecordSets(request); ChangeInfo changeInfo = resourceRecordSetsResult.getChangeInfo(); String changeId = changeInfo.getId(); String status = changeInfo.getStatus(); Date submittedAt = changeInfo.getSubmittedAt(); String comment = changeInfo.getComment(); Map<String, Object> results = ServiceUtil.returnSuccess(); results.put("changeId", changeId); results.put("status", status); results.put("submittedAt", submittedAt); results.put("comment", comment); return results; } catch (Exception e) { Debug.logError(e, module); return ServiceUtil.returnError(e.getMessage()); } }