List of usage examples for com.amazonaws.services.route53.model ResourceRecordSet setSetIdentifier
public void setSetIdentifier(String setIdentifier)
Resource record sets that have a routing policy other than simple: An identifier that differentiates among multiple resource record sets that have the same combination of name and type, such as multiple weighted resource record sets named acme.example.com that have a type of A.
From source file:com.msi.dns53.client.DNS53Client.java
License:Apache License
public ListResourceRecordSetsResult listResourceRecordSets(ListResourceRecordSetsRequest req) throws AmazonServiceException, AmazonClientException { Client c = Client.create();/* w w w . j a v a 2 s. c om*/ WebResource r = c.resource(this.serverURL); MultivaluedMap<String, String> paramMap = new MultivaluedMapImpl(); if (req.getStartRecordName() != null) { paramMap.add("name", req.getStartRecordName()); } if (req.getStartRecordType() != null) { paramMap.add("type", req.getStartRecordType()); } if (req.getStartRecordIdentifier() != null) { paramMap.add("identifier", req.getStartRecordIdentifier()); } if (req.getMaxItems() != null) { paramMap.add("maxitems", req.getMaxItems()); } ClientResponse response = r.path(req.getHostedZoneId() + "/rrset").queryParams(paramMap) .type(MediaType.APPLICATION_XML_TYPE).accept(MediaType.TEXT_XML) .header("X-Amzn-Authorization", "AWS3 AWSAccessKeyId=" + this.accessKey + "," + "Algorithm=HmacSHA256," + "SignedHeaders=Host;X-Amz-Date," + "Signature=THISISANEXAMPLESIGNATURE=") .get(ClientResponse.class); String resultXml = response.getEntity(String.class); if (response.getStatus() != 200) { exceptionMapper(response, resultXml); } ListResourceRecordSetsResponsePOJO interResult = null; try { StringReader reader = new StringReader(resultXml); JAXBContext context = JAXBContext.newInstance(ListResourceRecordSetsResponsePOJO.class); Unmarshaller unmarshaller = context.createUnmarshaller(); interResult = (ListResourceRecordSetsResponsePOJO) unmarshaller.unmarshal(reader); } catch (JAXBException e) { e.printStackTrace(); return null; } if (interResult == null) { return null; } ListResourceRecordSetsResult result = new ListResourceRecordSetsResult(); result.setMaxItems(interResult.getMaxItems()); result.setIsTruncated(interResult.isTruncated()); if (interResult.getResourceRecordSets() != null) { Collection<ResourceRecordSet> rrSets = new LinkedList<ResourceRecordSet>(); for (ResourceRecordSetPOJO p : interResult.getResourceRecordSets()) { ResourceRecordSet temp = new ResourceRecordSet(); temp.setName(p.getName()); temp.setSetIdentifier(p.getSetIdentifier()); temp.setTTL(p.getTTL()); temp.setType(p.getType()); temp.setWeight(p.getWeight()); if (p.getResourceRecords() != null) { Collection<ResourceRecord> resourceRecords = new LinkedList<ResourceRecord>(); for (ResourceRecordPOJO record : p.getResourceRecords()) { ResourceRecord newRec = new ResourceRecord(); newRec.setValue(record.getValue()); resourceRecords.add(newRec); } temp.setResourceRecords(resourceRecords); } rrSets.add(temp); } result.setResourceRecordSets(rrSets); } return result; }
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()); }/* ww w. j a v a 2s . 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:org.ofbiz.tenant.amazonaws.AwsServices.java
License:Apache License
/** * create Amazon Rout53 resource record set * @param ctx// w w w . j a v a 2 s .co m * @param context * @return */ public static Map<String, Object> createAmazonRoute53ResourceRecordSet(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.CREATE, 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()); } }
From source file:org.ofbiz.tenant.amazonaws.AwsServices.java
License:Apache License
/** * update Amazon Rout53 resource record set * @param ctx// 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 w w w. j a v a 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()); } }