List of usage examples for com.amazonaws.services.route53.model ChangeInfo setStatus
public void setStatus(ChangeStatus status)
The current state of the request.
From source file:com.msi.dns53.client.DNS53Client.java
License:Apache License
public CreateHostedZoneResult createHostedZone(CreateHostedZoneRequest req) throws AmazonServiceException, AmazonClientException { Client c = Client.create();/*from w w w .j a v a 2s . c o m*/ WebResource r = c.resource(this.serverURL); String entity = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<CreateHostedZoneRequest xmlns=\"https://route53.amazonaws.com/doc/2012-02-29/\">" + "<Name>" + req.getName() + "</Name>" + "<CallerReference>" + req.getCallerReference() + "</CallerReference>"; if (req.getHostedZoneConfig() != null && req.getHostedZoneConfig().getComment() != null) { entity += "<HostedZoneConfig>" + "<Comment>" + req.getHostedZoneConfig().getComment() + "</Comment>" + "</HostedZoneConfig>"; } entity += "</CreateHostedZoneRequest>"; ClientResponse response = r .header("X-Amzn-Authorization", "AWS3 AWSAccessKeyId=" + this.accessKey + "," + "Algorithm=HmacSHA256," + "SignedHeaders=Host;X-Amz-Date," + "Signature=THISISANEXAMPLESIGNATURE=") .type(MediaType.APPLICATION_XML_TYPE).accept(MediaType.TEXT_XML).entity(entity) .post(ClientResponse.class); String resultXml = response.getEntity(String.class); if (response.getStatus() > 299 || response.getStatus() < 200) { exceptionMapper(response, resultXml); } CreateHostedZoneResponsePOJO interResult = null; try { StringReader reader = new StringReader(resultXml); JAXBContext context = JAXBContext.newInstance(CreateHostedZoneResponsePOJO.class); Unmarshaller unmarshaller = context.createUnmarshaller(); interResult = (CreateHostedZoneResponsePOJO) unmarshaller.unmarshal(reader); } catch (JAXBException e) { e.printStackTrace(); return null; } if (interResult == null) { return null; } CreateHostedZoneResult result = new CreateHostedZoneResult(); if (interResult.getHostedZone() != null) { HostedZone hostedZone = new HostedZone(); hostedZone.setId(interResult.getHostedZone().getId()); hostedZone.setName(interResult.getHostedZone().getName()); hostedZone.setCallerReference(interResult.getHostedZone().getCallerReference()); if (interResult.getHostedZone().getConfig() != null) { HostedZoneConfig config = new HostedZoneConfig(); config.setComment(interResult.getHostedZone().getConfig().getComment()); hostedZone.setConfig(config); } result.setHostedZone(hostedZone); } if (interResult.getChangeInfo() != null) { ChangeInfo changeInfo = new ChangeInfo(); changeInfo.setId(interResult.getChangeInfo().getId()); changeInfo.setStatus(interResult.getChangeInfo().getStatus()); changeInfo.setSubmittedAt(interResult.getChangeInfo().getSubmittedAt()); changeInfo.setComment(interResult.getChangeInfo().getComment()); result.setChangeInfo(changeInfo); } if (interResult.getDelegationSet() != null) { DelegationSet dSet = new DelegationSet(); dSet.setNameServers(interResult.getDelegationSet().getNameServers()); result.setDelegationSet(dSet); } return result; }
From source file:com.msi.dns53.client.DNS53Client.java
License:Apache License
public DeleteHostedZoneResult deleteHostedZone(DeleteHostedZoneRequest req) throws AmazonServiceException, AmazonClientException { Client c = Client.create();/* w w w. ja v a 2 s . c om*/ WebResource r = c.resource(this.serverURL); ClientResponse response = r.path(req.getId()).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=") .delete(ClientResponse.class); String resultXml = response.getEntity(String.class); if (response.getStatus() != 200) { exceptionMapper(response, resultXml); } DeleteHostedZoneResponsePOJO interResult = null; try { StringReader reader = new StringReader(resultXml); JAXBContext context = JAXBContext.newInstance(DeleteHostedZoneResponsePOJO.class); Unmarshaller unmarshaller = context.createUnmarshaller(); interResult = (DeleteHostedZoneResponsePOJO) unmarshaller.unmarshal(reader); } catch (JAXBException e) { e.printStackTrace(); return null; } if (interResult == null) { return null; } DeleteHostedZoneResult result = new DeleteHostedZoneResult(); if (interResult.getChangeInfo() != null) { ChangeInfo ci = new ChangeInfo(); if (interResult.getChangeInfo().getId() != null) { ci.setId(interResult.getChangeInfo().getId()); } if (interResult.getChangeInfo().getStatus() != null) { ci.setStatus(interResult.getChangeInfo().getStatus()); } if (interResult.getChangeInfo().getSubmittedAt() != null) { ci.setSubmittedAt(interResult.getChangeInfo().getSubmittedAt()); } if (interResult.getChangeInfo().getComment() != null) { ci.setComment(interResult.getChangeInfo().getComment()); } result.setChangeInfo(ci); } return result; }
From source file:com.msi.dns53.client.DNS53Client.java
License:Apache License
public ChangeResourceRecordSetsResult changeResourceRecordSets(ChangeResourceRecordSetsRequest req) throws AmazonServiceException, AmazonClientException { Client c = Client.create();/*from w ww . j av a 2 s . c o m*/ WebResource r = c.resource(this.serverURL); String entity = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<ChangeResourceRecordSetsRequest xmlns=\"https://route53.amazonaws.com/doc/2012-02-29/\">"; if (req.getChangeBatch() != null) { entity += "<ChangeBatch>"; if (req.getChangeBatch().getComment() != null) { entity += "<Comment>" + req.getChangeBatch().getComment() + "</Comment>"; } List<Change> changes = req.getChangeBatch().getChanges(); if (changes != null && changes.size() > 0) { entity += "<Changes>"; for (Change change : changes) { entity += "<Change>"; entity += "<Action>" + change.getAction() + "</Action>"; if (change.getResourceRecordSet() != null) { entity += "<ResourceRecordSet>"; entity += "<Name>" + change.getResourceRecordSet().getName() + "</Name>"; entity += "<Type>" + change.getResourceRecordSet().getType() + "</Type>"; entity += "<TTL>" + change.getResourceRecordSet().getTTL() + "</TTL>"; List<ResourceRecord> records = change.getResourceRecordSet().getResourceRecords(); if (records != null && records.size() > 0) { entity += "<ResourceRecords>"; for (ResourceRecord record : records) { entity += "<ResourceRecord><Value>" + record.getValue() + "</Value></ResourceRecord>"; } entity += "</ResourceRecords>"; } entity += "</ResourceRecordSet>"; } entity += "</Change>"; } entity += "</Changes>"; } entity += "</ChangeBatch>"; } entity += "</ChangeResourceRecordSetsRequest>"; ClientResponse response = r.path(req.getHostedZoneId() + "/rrset") .header("X-Amzn-Authorization", "AWS3 AWSAccessKeyId=" + this.accessKey + "," + "Algorithm=HmacSHA256," + "SignedHeaders=Host;X-Amz-Date," + "Signature=THISISANEXAMPLESIGNATURE=") .type(MediaType.APPLICATION_XML_TYPE).accept(MediaType.TEXT_XML).entity(entity) .post(ClientResponse.class); String resultXml = response.getEntity(String.class); if (response.getStatus() != 200) { exceptionMapper(response, resultXml); } ChangeResourceRecordSetsResponsePOJO interResult = null; try { StringReader reader = new StringReader(resultXml); JAXBContext context = JAXBContext.newInstance(ChangeResourceRecordSetsResponsePOJO.class); Unmarshaller unmarshaller = context.createUnmarshaller(); interResult = (ChangeResourceRecordSetsResponsePOJO) unmarshaller.unmarshal(reader); } catch (JAXBException e) { e.printStackTrace(); return null; } if (interResult == null) { return null; } ChangeResourceRecordSetsResult result = new ChangeResourceRecordSetsResult(); if (interResult.getChangeInfo() != null) { ChangeInfo ci = new ChangeInfo(); ci.setComment(interResult.getChangeInfo().getComment()); ci.setId(interResult.getChangeInfo().getId()); ci.setStatus(interResult.getChangeInfo().getStatus()); ci.setSubmittedAt(interResult.getChangeInfo().getSubmittedAt()); result.setChangeInfo(ci); } return result; }
From source file:com.msi.dns53.client.DNS53Client.java
License:Apache License
public GetChangeResult getChange(GetChangeRequest req) throws AmazonServiceException, AmazonClientException { Client c = Client.create();// w w w . j ava 2 s. co m WebResource r = c.resource(this.changeURL); String resultXml = r.path(req.getId()).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(String.class); GetChangeResponsePOJO interResult = null; try { StringReader reader = new StringReader(resultXml); JAXBContext context = JAXBContext.newInstance(GetChangeResponsePOJO.class); Unmarshaller unmarshaller = context.createUnmarshaller(); interResult = (GetChangeResponsePOJO) unmarshaller.unmarshal(reader); } catch (JAXBException e) { e.printStackTrace(); return null; } if (interResult == null) { return null; } GetChangeResult result = new GetChangeResult(); if (interResult.getChangeInfo() != null) { ChangeInfo ci = new ChangeInfo(); ci.setComment(interResult.getChangeInfo().getComment()); ci.setId(interResult.getChangeInfo().getId()); ci.setStatus(interResult.getChangeInfo().getStatus()); ci.setSubmittedAt(interResult.getChangeInfo().getSubmittedAt()); result.setChangeInfo(ci); } return result; }
From source file:com.msi.dns53.server.query.ChangeResourceRecordSets.java
License:Apache License
private ChangeResourceRecordSetsResult changeResourceRecordSets(Session s, ChangeResourceRecordSetsRequest request) throws ErrorResponse { Date submittedAt = new Date(); ChangeResourceRecordSetsResult result = new ChangeResourceRecordSetsResult(); AccessMySQL sqlaccess = AccessMySQL.getInstance(); String tableName = sqlaccess.getTableName(request.getHostedZoneId(), this.getAccountId()); if (tableName.equals("FAILED")) { throw DNS53Faults.NoSuchHostedZone(request.getHostedZoneId()); }/*from w ww. j a v a 2s. c om*/ String zoneName = sqlaccess.getZoneName(request.getHostedZoneId()); //LinkedList<RRRequest> rrrs = request.getRRRequests(); List<Change> changes = request.getChangeBatch().getChanges(); //check if the ChangeBatch is valid for (Change tmp : changes) { String name = tmp.getResourceRecordSet().getName(); String nameDot = name; if (name.charAt(name.length() - 1) != '.') { nameDot += "."; } else { name = name.substring(0, name.length() - 1); } long weight = -1; if (tmp.getResourceRecordSet().getWeight() != null) { weight = tmp.getResourceRecordSet().getWeight(); if (weight < 0 || weight > 225) { throw DNS53Faults.InvalidArgument("Weight of a resource record must be between 0 and 255."); } } if (tmp.getResourceRecordSet().getType() == null) { throw DNS53Faults.MissingRequiredParameter( "Type parameter is required for each resource record set change request."); } if (tmp.getResourceRecordSet().getTTL() == null) { throw DNS53Faults.MissingRequiredParameter( "TTL parameter is required for each resource record set change request " + "except for the change requests to modify alias resource record sets."); } if (tmp.getAction().equals("CREATE")) { for (ResourceRecord rr : tmp.getResourceRecordSet().getResourceRecords()) { boolean recordExists = sqlaccess.recordExists(s, request.getHostedZoneId(), nameDot, tmp.getResourceRecordSet().getType(), rr.getValue()); DNS53ResourceRecord newRecord = new DNS53ResourceRecord(); newRecord.setZoneId(request.getHostedZoneId()); newRecord.setZoneName(zoneName); newRecord.setName(nameDot); newRecord.setTtl(tmp.getResourceRecordSet().getTTL()); newRecord.setRdata(rr.getValue()); if (tmp.getResourceRecordSet().getWeight() != null) { logger.debug("Request to create a weighted resource record set: " + tmp.getResourceRecordSet().toString()); if (recordExists) { if (sqlaccess.recordExists(s, request.getHostedZoneId(), nameDot, tmp.getResourceRecordSet().getType(), rr.getValue())) { throw DNS53Faults .InvalidChangeBatch("Tried to create a weighted resource record set, " + nameDot + " " + tmp.getResourceRecordSet().getType() + ", but it already exists."); } } if (tmp.getResourceRecordSet().getSetIdentifier() == null) { throw DNS53Faults.MissingRequiredParameter( "SetIdentifier is required for weighted resource" + "record set."); } newRecord.setSid(tmp.getResourceRecordSet().getSetIdentifier()); if (!(tmp.getResourceRecordSet().getType().equals("A") || tmp.getResourceRecordSet().getType().equals("AAAA") || tmp.getResourceRecordSet().getType().equals("CNAME") || tmp.getResourceRecordSet().getType().equals("TXT"))) { throw DNS53Faults.InvalidArgument( "Weighted resource record set must be A, AAAA, CNAME, or TXT type."); } newRecord.setRdtype(tmp.getResourceRecordSet().getType()); newRecord.setWeight(weight); for (int i = 0; i < weight; ++i) { sqlaccess.addResourceRecord(request.getHostedZoneId(), name, tmp.getResourceRecordSet().getTTL(), tmp.getResourceRecordSet().getType(), rr.getValue(), this.getAccountId()); } } else { if (recordExists) { throw DNS53Faults.InvalidChangeBatch("Tried to create resource record set, " + name + " " + tmp.getResourceRecordSet().getType() + ", but it already exists."); } if (!DNS53Constants.RESOURCERECORDSETS_TYPES .contains(tmp.getResourceRecordSet().getType())) { throw DNS53Faults.InvalidArgument("Resource record type is not recognized."); } newRecord.setRdtype(tmp.getResourceRecordSet().getType()); sqlaccess.addResourceRecord(request.getHostedZoneId(), name, tmp.getResourceRecordSet().getTTL(), tmp.getResourceRecordSet().getType(), rr.getValue(), this.getAccountId()); } s.save(newRecord); } } else if (tmp.getAction().equals("DELETE")) { for (ResourceRecord rr : tmp.getResourceRecordSet().getResourceRecords()) { boolean recordExists = sqlaccess.recordExists(s, request.getHostedZoneId(), nameDot, tmp.getResourceRecordSet().getType(), rr.getValue()); if (!recordExists) { throw DNS53Faults.InvalidChangeBatch("Tried to delete resource record set " + name + " " + tmp.getResourceRecordSet().getType() + ", but it was not found."); } List<DNS53ResourceRecord> recordList = ResourceRecordEntity.selectResourceRecords(s, request.getHostedZoneId(), nameDot, rr.getValue(), tmp.getResourceRecordSet().getType(), tmp.getResourceRecordSet().getSetIdentifier(), tmp.getResourceRecordSet().getTTL(), weight); if (recordList == null || recordList.size() == 0) { throw DNS53Faults.InvalidChangeBatch("Tried to delete resource record set " + name + " " + tmp.getResourceRecordSet().getType() + ", but it was not found with " + "weight = " + tmp.getResourceRecordSet().getWeight() + " and " + "SetIdentifier = " + tmp.getResourceRecordSet().getSetIdentifier() + "."); } if (recordList.size() > 1) { logger.debug( "Too many results being returned for DELETE change request. Either duplicate entries exist, NS records are selected for deletion, or other issue. Throwing InternalError!"); throw DNS53Faults.InternalError(); } DNS53ResourceRecord currentRecord = recordList.get(0); if (tmp.getResourceRecordSet().getWeight() != null) { if (tmp.getResourceRecordSet().getSetIdentifier() == null) { throw DNS53Faults.MissingRequiredParameter( "SetIdentifier is required for weighted resource" + "record set."); } List<DNS53ResourceRecord> existing = sqlaccess.listResourceRecords(tableName, tmp.getResourceRecordSet().getType(), name, rr.getValue()); logger.debug("Existing weight of the record resource set is " + existing.size() + ". DELETE is requested" + " with weight, " + tmp.getResourceRecordSet().getWeight()); if (tmp.getResourceRecordSet().getWeight() != Integer.valueOf(existing.size()).longValue() || tmp.getResourceRecordSet().getWeight() != currentRecord.getWeight()) { throw DNS53Faults.InvalidArgument( "Weighted resource record set was found with matching name and value(s). " + "However, the value of weight is different. Existing resource record set has the weight of " + existing.size() + "."); } } else { if (tmp.getResourceRecordSet().getSetIdentifier() != null) { throw DNS53Faults .MissingRequiredParameter("SetIdentifier was received, however, weight was not " + "passed along. Both of these parameters are required for change request against weighted " + "resource record sets."); } if (currentRecord.getWeight() != -1) { throw DNS53Faults.InvalidArgument( "Weighted resource record set was found with matching name and value(s). " + "However, the request did not pass weight parameter."); } } s.delete(currentRecord); sqlaccess.deleteResourceRecord(request.getHostedZoneId(), name, tmp.getResourceRecordSet().getTTL(), tmp.getResourceRecordSet().getType(), rr.getValue(), this.getAccountId()); } } } String changeID = RequestHandler.writeChange(sqlaccess, "INSYNC", submittedAt.toString(), "RRSET", "RRSET"); ChangeInfo ci = new ChangeInfo(); ci.setId(changeID); ci.setStatus("INSYNC"); ci.setSubmittedAt(submittedAt); result.setChangeInfo(ci); return result; }
From source file:com.msi.dns53.server.query.DeleteHostedZone.java
License:Apache License
private DeleteHostedZoneResult deleteHostedZone(DeleteHostedZoneRequest request) throws ErrorResponse { String zoneId = request.getId(); logger.debug("Delete target: " + zoneId); Date submittedAt = new Date(); DeleteHostedZoneResult result = new DeleteHostedZoneResult(); AccessMySQL sqlaccess = AccessMySQL.getInstance(); String tableName = sqlaccess.getTableName(zoneId, this.getAccountId()); if (tableName.equals("FAILED")) { throw DNS53Faults.NoSuchHostedZone(zoneId); } else {//from w w w. j ava 2 s . c o m String callerReference = sqlaccess.getCallerReference(zoneId, this.getAccountId()); sqlaccess.deleteHostedZone(zoneId, tableName, callerReference); String changeID = RequestHandler.writeChange(sqlaccess, "PENDING", submittedAt.toString(), tableName, "DELETE"); ChangeInfo changeInfo = new ChangeInfo(); changeInfo.setId(changeID); changeInfo.setStatus("PENDING"); changeInfo.setSubmittedAt(submittedAt); result.setChangeInfo(changeInfo); } return result; }
From source file:com.msi.dns53.server.query.GetChange.java
License:Apache License
private GetChangeResult getChange(GetChangeRequest request) throws ErrorResponse { AccessMySQL sqlaccess = AccessMySQL.getInstance(); GetChangeResult result = new GetChangeResult(); String[] changeRecord = sqlaccess.getChange(request.getId()); if (changeRecord[0] == null) { //result empty -> changeID not existing -> AccessDenied throw DNS53Faults.NoSuchChange(request.getId()); }//w w w.j a v a 2 s.co m ChangeInfo ci = new ChangeInfo(); ci.setId(changeRecord[0]); ci.setStatus(changeRecord[1]); String date = changeRecord[2]; Date submittedAt = new Date(date); ci.setSubmittedAt(submittedAt); result.setChangeInfo(ci); return result; }