Search in sources :

Example 1 with GloboDnsException

use of com.globo.globodns.client.GloboDnsException in project cloudstack by apache.

the class GloboDnsResource method execute.

public Answer execute(RemoveRecordCommand cmd) {
    boolean needsExport = false;
    try {
        if (removeRecord(cmd.getRecordName(), cmd.getRecordIp(), cmd.getNetworkDomain(), false, cmd.isOverride())) {
            needsExport = true;
        }
        // remove reverse
        String reverseGloboDnsName = generateReverseDomainNameFromNetworkIp(cmd.getRecordIp());
        String reverseRecordName = generateReverseRecordNameFromNetworkIp(cmd.getRecordIp());
        String reverseRecordContent = cmd.getRecordName() + '.' + cmd.getNetworkDomain();
        if (removeRecord(reverseRecordName, reverseRecordContent, reverseGloboDnsName, true, cmd.isOverride())) {
            needsExport = true;
        }
        return new Answer(cmd, true, "Record removed");
    } catch (GloboDnsException e) {
        return new Answer(cmd, false, e.getMessage());
    } finally {
        if (needsExport) {
            scheduleExportChangesToBind();
        }
    }
}
Also used : ReadyAnswer(com.cloud.agent.api.ReadyAnswer) Answer(com.cloud.agent.api.Answer) MaintainAnswer(com.cloud.agent.api.MaintainAnswer) GloboDnsException(com.globo.globodns.client.GloboDnsException)

Example 2 with GloboDnsException

use of com.globo.globodns.client.GloboDnsException in project cloudstack by apache.

the class GloboDnsResource method execute.

public Answer execute(RemoveDomainCommand cmd) {
    try {
        Domain domain = searchDomain(cmd.getNetworkDomain(), false);
        if (domain != null) {
            if (!cmd.isOverride()) {
                for (Record record : _globoDns.getRecordAPI().listAll(domain.getId())) {
                    if (record.getTypeNSRecordAttributes().getId() == null) {
                        s_logger.warn("There are records in domain " + cmd.getNetworkDomain() + " and override is not enable. I will not delete this domain.");
                        return new Answer(cmd, true, "Domain keeped");
                    }
                }
            }
            _globoDns.getDomainAPI().removeDomain(domain.getId());
            scheduleExportChangesToBind();
        } else {
            s_logger.warn("Domain " + cmd.getNetworkDomain() + " already been deleted.");
        }
        return new Answer(cmd, true, "Domain removed");
    } catch (GloboDnsException e) {
        return new Answer(cmd, false, e.getMessage());
    }
}
Also used : ReadyAnswer(com.cloud.agent.api.ReadyAnswer) Answer(com.cloud.agent.api.Answer) MaintainAnswer(com.cloud.agent.api.MaintainAnswer) GloboDnsException(com.globo.globodns.client.GloboDnsException) Record(com.globo.globodns.client.model.Record) Domain(com.globo.globodns.client.model.Domain)

Example 3 with GloboDnsException

use of com.globo.globodns.client.GloboDnsException in project cloudstack by apache.

the class GloboDnsResource method execute.

public Answer execute(CreateOrUpdateRecordAndReverseCommand cmd) {
    boolean needsExport = false;
    try {
        Domain domain = searchDomain(cmd.getNetworkDomain(), false);
        if (domain == null) {
            domain = _globoDns.getDomainAPI().createDomain(cmd.getNetworkDomain(), cmd.getReverseTemplateId(), DEFAULT_AUTHORITY_TYPE);
            s_logger.warn("Domain " + cmd.getNetworkDomain() + " doesn't exist, maybe someone removed it. It was automatically created with template " + cmd.getReverseTemplateId());
        }
        boolean created = createOrUpdateRecord(domain.getId(), cmd.getRecordName(), cmd.getRecordIp(), IPV4_RECORD_TYPE, cmd.isOverride());
        if (!created) {
            String msg = "Unable to create record " + cmd.getRecordName() + " at " + cmd.getNetworkDomain();
            if (!cmd.isOverride()) {
                msg += ". Override record option is false, maybe record already exist.";
            }
            return new Answer(cmd, false, msg);
        } else {
            needsExport = true;
        }
        String reverseRecordContent = cmd.getRecordName() + '.' + cmd.getNetworkDomain();
        if (createOrUpdateReverse(cmd.getRecordIp(), reverseRecordContent, cmd.getReverseTemplateId(), cmd.isOverride())) {
            needsExport = true;
        } else {
            if (!cmd.isOverride()) {
                String msg = "Unable to create reverse record " + cmd.getRecordName() + " for ip " + cmd.getRecordIp();
                msg += ". Override record option is false, maybe record already exist.";
                return new Answer(cmd, false, msg);
            }
        }
        return new Answer(cmd);
    } catch (GloboDnsException e) {
        return new Answer(cmd, false, e.getMessage());
    } finally {
        if (needsExport) {
            scheduleExportChangesToBind();
        }
    }
}
Also used : ReadyAnswer(com.cloud.agent.api.ReadyAnswer) Answer(com.cloud.agent.api.Answer) MaintainAnswer(com.cloud.agent.api.MaintainAnswer) GloboDnsException(com.globo.globodns.client.GloboDnsException) Domain(com.globo.globodns.client.model.Domain)

Example 4 with GloboDnsException

use of com.globo.globodns.client.GloboDnsException in project cloudstack by apache.

the class GloboDnsResource method execute.

public Answer execute(CreateOrUpdateDomainCommand cmd) {
    boolean needsExport = false;
    try {
        Domain domain = searchDomain(cmd.getDomainName(), false);
        if (domain == null) {
            // create
            domain = _globoDns.getDomainAPI().createDomain(cmd.getDomainName(), cmd.getTemplateId(), DEFAULT_AUTHORITY_TYPE);
            s_logger.info("Created domain " + cmd.getDomainName() + " with template " + cmd.getTemplateId());
            if (domain == null) {
                return new Answer(cmd, false, "Unable to create domain " + cmd.getDomainName());
            } else {
                needsExport = true;
            }
        } else {
            s_logger.warn("Domain " + cmd.getDomainName() + " already exist.");
        }
        return new Answer(cmd);
    } catch (GloboDnsException e) {
        return new Answer(cmd, false, e.getMessage());
    } finally {
        if (needsExport) {
            scheduleExportChangesToBind();
        }
    }
}
Also used : ReadyAnswer(com.cloud.agent.api.ReadyAnswer) Answer(com.cloud.agent.api.Answer) MaintainAnswer(com.cloud.agent.api.MaintainAnswer) GloboDnsException(com.globo.globodns.client.GloboDnsException) Domain(com.globo.globodns.client.model.Domain)

Aggregations

Answer (com.cloud.agent.api.Answer)4 MaintainAnswer (com.cloud.agent.api.MaintainAnswer)4 ReadyAnswer (com.cloud.agent.api.ReadyAnswer)4 GloboDnsException (com.globo.globodns.client.GloboDnsException)4 Domain (com.globo.globodns.client.model.Domain)3 Record (com.globo.globodns.client.model.Record)1