Example usage for com.amazonaws.services.route53.model Change setAction

List of usage examples for com.amazonaws.services.route53.model Change setAction

Introduction

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

Prototype


public void setAction(ChangeAction action) 

Source Link

Document

The action to perform:

  • CREATE: Creates a resource record set that has the specified values.

    Usage

    From source file:com.msi.dns53.client.DNS53MetadataUtil.java

    License:Apache License

    public void populateServiceMetadata(final ServletConfig config, String serviceName) {
        logger.debug("init(): TXT record will be created for this service regarding its port and context path.");
        String contextPath = config.getServletContext().getContextPath();
        String port = Appctx.getBean("TOMCAT_PORT");
        String master_passwd = Appctx.getBean("DB_PASSWORD");
    
        final String fqdn = (String) ConfigurationUtil.getConfiguration(Arrays.asList(new String[] { "FQDN" }));
        final String domain = (String) ConfigurationUtil
                .getConfiguration(Arrays.asList(new String[] { "FQDN_DOMAIN" }));
        String txtRecordValue = ":" + port + contextPath;
        String baseDNSServerURL = "http://localhost:" + port + "/DNS53Server/2012-02-29/";
    
        logger.debug("Tomcat port = " + port + "; FQDN = " + fqdn + "; domain = " + domain + "; TXT Record Value = "
                + txtRecordValue + "; BaseDNSServerUrl = " + baseDNSServerURL);
    
        DNS53Client client = new DNS53Client(baseDNSServerURL + "hostedzone", baseDNSServerURL + "change", "admin",
                master_passwd);/*w ww  .  j a  va 2s .  c  o  m*/
    
        logger.debug("Service name = " + serviceName);
        String recordName = serviceName + "-" + fqdn;
        logger.debug("TXT Record Name: " + recordName);
    
        logger.debug("init(): Calling ListHostedZones to find the target zone!");
        ListHostedZonesRequest lhzReq = new ListHostedZonesRequest();
        lhzReq.setMaxItems("1");
    
        ListHostedZonesResult lhzResult = client.listHostedZones(lhzReq);
    
        HostedZone zone = null;
        List<HostedZone> zones = lhzResult.getHostedZones();
        if (zones != null && zones.size() > 0) {
            for (HostedZone hz : zones) {
                if (hz.getName().equals(domain + ".") || hz.getName().equals(domain)) {
                    zone = hz;
                }
            }
        } else {
            logger.error(
                    "BaseAsyncServlet encountered an error while it was trying to find the target hosted zone.");
            throw ErrorResponse.InternalFailure();
        }
    
        if (zone == null) {
            logger.error("BaseAsyncServlet could not find any zone for this TopStackWeb instance.");
            throw ErrorResponse.InternalFailure();
        }
    
        // TODO (optional) check for the CNAME record for this service before proceeding
    
        logger.debug("init(): Creating a new TXT record for " + recordName + " with \"" + txtRecordValue
                + "\" as its value!");
        String zoneId = zone.getId();
        ChangeResourceRecordSetsRequest crrsReq = new ChangeResourceRecordSetsRequest();
        crrsReq.setHostedZoneId(zoneId);
        ChangeBatch cb = new ChangeBatch();
        cb.setComment(
                "BaseAsyncServlet => init(): Registering " + serviceName + " service for Transcend TopStack.");
        Collection<Change> changes = new LinkedList<Change>();
        Change change = new Change();
        change.setAction(ChangeAction.CREATE);
        ResourceRecordSet rrSet = new ResourceRecordSet();
        rrSet.setName(recordName);
        rrSet.setTTL(900L);
        rrSet.setType(RRType.TXT);
        Collection<ResourceRecord> rr = new LinkedList<ResourceRecord>();
        ResourceRecord record = new ResourceRecord();
        record.setValue(txtRecordValue);
        rr.add(record);
        rrSet.setResourceRecords(rr);
        change.setResourceRecordSet(rrSet);
        changes.add(change);
        cb.setChanges(changes);
        crrsReq.setChangeBatch(cb);
        ChangeResourceRecordSetsResult result = client.changeResourceRecordSets(crrsReq);
        logger.debug("Result for the last ChangeResourceRecordSets request: " + result.toString());
    }
    

    From source file:com.renatodelgaudio.awsupdate.SimpleRecordService.java

    License:Open Source License

    @Override
    public boolean updateRecord(String ip) {
    
        String recordName = config.getRecordName();
    
        ChangeResourceRecordSetsRequest changeRequest = new ChangeResourceRecordSetsRequest();
        changeRequest.setHostedZoneId(config.getZoneId());
        ChangeBatch batch = new ChangeBatch();
        Change change = new Change();
    
        ResourceRecordSet set = getCurrentRecordSet();
        if (set != null) {
            if (!equalsIgnoreCase("A", set.getType())) {
                log.error("Record already exists but not as Type A. No actions were performed.");
                return false;
            }/*from   w  ww  . j  av a2  s . c  o m*/
            change.setAction("UPSERT");
            log.info("Record [" + recordName + "] already present on AWS Route 53. Upating it..");
        } else {
            change.setAction("CREATE");
            log.info("Record [" + recordName + "] not present on AWS Route 53. Creating it..");
            set = new ResourceRecordSet().withName(recordName).withType("A");
        }
    
        set.setTTL(Long.parseLong(config.getTTL()));
        List<ResourceRecord> l = new ArrayList<ResourceRecord>();
        l.add(new ResourceRecord(ip));
        set.setResourceRecords(l);
    
        change.setResourceRecordSet(set);
        batch.withChanges(change);
    
        changeRequest.setChangeBatch(batch);
    
        log.info("Updating DNS " + recordName + " with IP " + ip);
    
        ChangeResourceRecordSetsResult result = config.getAmazonRoute53Client()
                .changeResourceRecordSets(changeRequest);
        log.info(result.toString());
        return true;
    }
    

    From source file:edu.umass.cs.aws.support.Route53.java

    License:Apache License

    private static void createRecordSetFromHostedZone() {
    
        List<ResourceRecord> records = new ArrayList<>();
        ResourceRecord record = new ResourceRecord();
        record.setValue("http://www.marksdevserver.com");
        records.add(record);//  w  w  w .j  a v a 2 s  .co m
    
        ResourceRecordSet recordSet = new ResourceRecordSet();
        recordSet.setName("markstest.domain.com.");
        recordSet.setType(RRType.CNAME);
        recordSet.setTTL(new Long(60));
        recordSet.setResourceRecords(records);
    
        // Create the Change
        List<Change> changes = new ArrayList<>();
        Change change = new Change();
        change.setAction(ChangeAction.CREATE);
        change.setResourceRecordSet(recordSet);
        changes.add(change);
    
        // Create a batch and add the change to it
        ChangeBatch batch = new ChangeBatch();
        batch.setChanges(changes);
    
        // Create a Request and add the batch to it.
        ChangeResourceRecordSetsRequest request = new ChangeResourceRecordSetsRequest();
        request.setHostedZoneId(HOSTED_ZONE_ID);
        request.setChangeBatch(batch);
    
        // send the request
        ChangeResourceRecordSetsResult result = route53.changeResourceRecordSets(request);
        System.out.println(result.toString());
    
    }
    

    From source file:io.kodokojo.service.aws.Route53DnsManager.java

    License:Open Source License

    @Override
    public void createOrUpdateDnsEntries(Set<DnsEntry> dnsEntries) {
        if (dnsEntries == null) {
            throw new IllegalArgumentException("dnsEntries must be defined.");
        }//from www  . ja v  a 2s . c  o  m
    
        HostedZone hostedZone = getHostedZone();
        List<Change> changes = new ArrayList<>();
        if (hostedZone != null) {
            for (DnsEntry dnsEntry : dnsEntries) {
                if (!containEntry(dnsEntry, true)) {
                    List<ResourceRecord> resourceRecords = new ArrayList<>();
    
                    ResourceRecord resourceRecord = new ResourceRecord();
                    String value = dnsEntry.getValue();
                    resourceRecord.setValue(
                            (dnsEntry.getType().equals(DnsEntry.Type.CNAME) ? valideDnsName(value) : value));
                    resourceRecords.add(resourceRecord);
    
                    ResourceRecordSet resourceRecordSet = new ResourceRecordSet();
                    resourceRecordSet.setName(valideDnsName(dnsEntry.getName()));
                    resourceRecordSet.setType(RRType.valueOf(dnsEntry.getType().toString()));
                    resourceRecordSet.setTTL(300L);
    
                    resourceRecordSet.setResourceRecords(resourceRecords);
    
                    Change change = new Change();
                    change.setAction(dnsEntryExist(dnsEntry) ? ChangeAction.UPSERT : ChangeAction.CREATE);
                    change.setResourceRecordSet(resourceRecordSet);
                    changes.add(change);
                }
            }
            if (CollectionUtils.isNotEmpty(changes)) {
                ChangeResourceRecordSetsRequest request = new ChangeResourceRecordSetsRequest();
                ChangeBatch changeBatch = new ChangeBatch();
                changeBatch.setChanges(changes);
                request.setChangeBatch(changeBatch);
                request.setHostedZoneId(getHostedZoneID(hostedZone));
                //ChangeResourceRecordSetsResult result =
                try {
                    client.changeResourceRecordSets(request);
                } catch (PriorRequestNotCompleteException e) {
                    LOGGER.error("Unable to create or update follwing entry in Route53 {}.",
                            StringUtils.join(dnsEntries, ","));
                }
            }
        }
    
    }