Example usage for com.amazonaws.services.route53.model ChangeInfo setStatus

List of usage examples for com.amazonaws.services.route53.model ChangeInfo setStatus

Introduction

In this page you can find the example usage for com.amazonaws.services.route53.model ChangeInfo setStatus.

Prototype


public void setStatus(ChangeStatus status) 

Source Link

Document

The current state of the request.

Usage

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;
}