use of com.globo.globodns.client.model.Record 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.model.Record in project cloudstack by apache.
the class GloboDnsResource method searchRecord.
/**
* Find recordName in domain.
* @param recordName
* @param domainId Id of BindZoneName. Maybe you need use searchDomain before to use BindZoneName.
* @return Record or null if not exists.
*/
private Record searchRecord(String recordName, Long domainId) {
if (recordName == null || domainId == null) {
return null;
}
List<Record> candidates = _globoDns.getRecordAPI().listByQuery(domainId, recordName);
// GloboDns search name in name and content. We need to iterate to check if recordName exists only in name
for (Record candidate : candidates) {
if (recordName.equalsIgnoreCase(candidate.getName())) {
s_logger.debug("Record " + recordName + " in domain id " + domainId + " found in GloboDNS");
return candidate;
}
}
s_logger.debug("Record " + recordName + " in domain id " + domainId + " not found in GloboDNS");
return null;
}
Aggregations