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();
}
}
}
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());
}
}
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();
}
}
}
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();
}
}
}
Aggregations